Sponsors
Thanks for supporting Nakama and the open source community.
Documentation · Managed hosting
Your next hire will still be human. Nakama runs the agents. Your team keeps the important work.
Nakama is an AI agent platform for your team. You chat in a dashboard that feels like ChatGPT. Behind that, each agent can use tools, skills, memory, and channels (Telegram, WhatsApp, Discord, and Slack) — with its own identity and permissions.
It was built for teams from day one: one server, many orgs, invites and roles, agents isolated from each other. Set it up with managed cloud or one Docker container.
Coming from OpenClaw or Hermes Agent? Same class of capability, without the setup maze, and not limited to one operator on one machine.
Pick an agent from the rail on the left and start a chat. Every agent has its own prompt files, tools, skills, and memory.
| Agent | Control center |
|---|---|
![]() |
![]() |
Open ARCHITECTURE.md for the system design. Open the docs site for the full guide.
macOS downloads are available in desktop releases. Windows has no published installation link here yet; unsigned MSIX files in older releases are Partner Center uploads, not installable downloads. See Windows installation for availability and alternatives.
Installing with Claude Code, Codex, Cursor, or OpenCode? Paste a prompt from Install with an AI agent.
Use Nakama Cloud to try Nakama with the least work.
- Create an account.
- Provision an instance.
- Complete the first-time setup wizard in the browser.
You do not need Bun, Docker, or a VPS.
You need Bun.
# Install dependencies
bun install
# Start the web (starts the server automatically if needed)
bun run dev:webOpen the web dashboard: http://localhost:3003
Or start the server alone:
bun run dev:serverFor a bare host, you need Bun and Node.js 22.12 or later. PM2 and the web build run on Node.
-
Install PM2, build Nakama, and copy the example config:
npm install --global pm2 bun install bun run build cp ecosystem.config.cjs.example ecosystem.config.cjs
-
In
ecosystem.config.cjs, setcwd,script,NAKAMA_SECRETS_KEY, andNAKAMA_WEB_PUBLIC_URL. Keep a copy ofNAKAMA_SECRETS_KEY: secrets saved in Settings need it, and backups do not include it. -
Start Nakama and set it to start after a reboot:
pm2 start ecosystem.config.cjs pm2 startup pm2 save
-
Run the startup command that PM2 prints to enable the system service.
The dashboard and API listen on http://127.0.0.1:4310. Put an HTTPS proxy in front for NAKAMA_WEB_PUBLIC_URL. After an update, run bun run build again, then pm2 restart nakama.
You can also run Nakama with Docker. It runs as one container and needs about 200 MB idle, so 1 vCPU and 1 GB is enough for the server on its own. See Requirements before enabling channel workers.
On a server, use Compose. It pins the version, keeps a daily encrypted backup, and can turn on the Update button in Settings. Set NAKAMA_VERSION to the latest release and put an HTTPS proxy in front (Deployment hardening).
curl -O https://raw.githubusercontent.com/ahmadrosid/nakama/main/docker-compose.yaml
umask 077
printf 'NAKAMA_SECRETS_KEY=%s\n' "$(openssl rand -base64 32)" > nakama-secrets.env
echo NAKAMA_VERSION=0.4.65 > .env
docker compose up -dSee Upgrade.
To try it on your own machine:
# Pull and run the latest image
docker pull ghcr.io/ahmadrosid/nakama:latest
umask 077
printf 'NAKAMA_SECRETS_KEY=%s\n' "$(openssl rand -base64 32)" > nakama-secrets.env
docker run -d -p 4310:4310 -v nakama-data:/nakama/data --env-file nakama-secrets.env --name nakama ghcr.io/ahmadrosid/nakama:latestBuild from source:
./scripts/docker-build-run.shFresh start (destroys data):
./scripts/docker-destroy.sh
./scripts/docker-build-run.shThe reset script also removes every container publishing port 4310, including
unrelated containers. It does not remove the cached
ghcr.io/ahmadrosid/nakama:latest image. See the
Docker reset documentation
for the complete cleanup scope.
Open the dashboard at http://localhost:4310.
Nakama connects to Telegram, WhatsApp, Discord, Slack, and Composio. With Composio, you can connect to more than 1,000 external apps. Enable them in the web app under Integrations.
On the first run, the server asks for a provider and an API key if none is configured.
The server saves settings to ~/.nakama/config.ini.
The server listens on http://127.0.0.1:4310 by default.
Interactive API docs are at http://127.0.0.1:4310/docs.
MIT
Thanks to everyone who helps make Nakama better.



