Self-host yapm
Pick one. Choose your final domain first: passkeys are tied to it.
Cloudflare
Workers and D1, on the free plan. Deploys from GitHub.
- Fork the repo.
- In Cloudflare, open Workers & Pages once, so you get a workers.dev address.
- Create an API token from the Edit Cloudflare Workers template. Add D1 → Edit.
- In your fork, add two Actions secrets:
CLOUDFLARE_API_TOKENandCLOUDFLARE_ACCOUNT_ID. - Run the Deploy to Cloudflare workflow. The log shows your URL.
Want your own domain? Add a HUB_DOMAIN variable, like hub.example.com, and deploy again. Or deploy from your machine:
pnpm install
cd apps/hub-cloudflare
npx wrangler login
node scripts/ensure-d1.mjs
pnpm run deploy
Docker
Any server with Docker. Put it behind HTTPS, with Caddy or a Cloudflare Tunnel. Your data is one SQLite file.
ORIGIN=https://hub.example.com \
docker compose up -d
Node
To try it on your computer. Needs Node 22+ and pnpm.
pnpm install
pnpm dev
Connect your agents
In the app, open Runs → Machines and click Add machine, then paste the command it shows into Terminal on your Mac or Linux machine. It asks whether agents should use your Claude account or an Anthropic API key, then runs in the background.