Getting Started
Gavin can run locally with Bun or in Docker.
Why Gavin exists?
Gavin makes setting up an AI agent as easy as running a WordPress site — self-hosted and managed without a team of engineers.
Where OpenClaw and Hermes serve personal assistants, Gavin is built for team assistants — agents that work alongside a whole team, not a single person.
Multi-tenant by default: each organization is an isolated boundary with its own profiles, members, tools, and memory. One deployment can serve many clients — agencies and service companies get a separate org, agents, and data per client.
Before you start
You need:
- An LLM provider API key
- Bun if you want to run from source
Run locally
Clone the repository and install dependencies:
git clone https://github.com/roh00t/gavin_ai.git
cd gavin
bun install
bun run dev:webOpen:
- Dashboard:
http://localhost:3000 - API server:
http://127.0.0.1:4310 - API docs:
http://127.0.0.1:4310/docs
If you only want the API server:
bun run dev:serverOn first run, Gavin asks for your provider and API key if they are not configured yet. Settings are saved in ~/.gavin/config.ini.
Docker
If you want a simpler deployment path, run Gavin with Docker.
Quickest option:
docker pull ghcr.io/roh00t/gavin_ai:latest
docker run -d -p 4310:4310 -v gavin-config:/root/.gavin ghcr.io/roh00t/gavin_ai:latestBuild it yourself:
docker build --platform=linux/amd64 -t gavin .
docker run -d -p 4310:4310 -v gavin-config:/root/.gavin gavinWith Docker, the app is available at http://localhost:4310.
First-time setup
After Gavin is running:
- Open the dashboard
- Create the first admin account and first organization
- Configure your model provider
- Create or review profiles
- Invite other users if needed
What you configure in Gavin
Most operators only need to think about four things:
- Organization: the tenant boundary
- Members: who can access that org
- Profiles: the bots people talk to
- Tools: what each profile is allowed to do
Integrations
Gavin can expose the same agent runtime through:
- Web dashboard
- CLI
- Telegram
Enable Telegram or WhatsApp from the web app settings when you are ready.
Telegram group setup
If you want to use Gavin in Telegram groups:
- Link your Telegram account to the bot in a private chat first.
- In
@BotFather, disable Group Privacy for the bot if you want@mentionsto work reliably. - If you changed Group Privacy, remove the bot from the group and add it back so Telegram applies the new setting.
Gavin still filters group messages locally, so even with privacy disabled it only responds to slash commands, replies to the bot, and real bot mentions.
For the full Telegram guide, see Telegram.
Next steps
- Overview — what Gavin is and how to think about it
- Telegram — use cases, setup, groups, and troubleshooting
- Multi-tenancy — how orgs, members, and roles work
- Profiles — how to define each bot
- Builtin tools — what bots can do
- MCP servers — extend bots with external tools
