Docs
Everything you need to drive Angi from your first chat to a paid SaaS workspace.
Quickstart
- Sign in at /login (magic link, password, or GitHub OAuth).
- Create or pick a workspace from the sidebar switcher.
- Add at least one provider key in Settings → API Keys.
- Start a chat from the New Chat button. Switch the model in the composer footer.
Swarm topologies
- 4 engines: hierarchical, mesh, hierarchical-mesh, adaptive.
- Adaptive auto-picks: ≤4 → mesh, ≤9 → hierarchical, ≥10 → hierarchical-mesh.
- Cap is 15 agents per swarm. Free plan limits to 3 active.
- Coordinate via one Supabase Realtime channel per swarm with in-payload routing.
Tools (MCP)
- 14 default tools registered: swarm/{init,status,list,destroy}, agent/{spawn,list,kill}, memory/{store,search,list,forget}, task/{orchestrate,status,update}.
- HTTP transport at /api/mcp/v1 — JSON-RPC 2.0 over POST.
- stdio transport for spawning under MCP hosts (Claude Code, Cursor).
Bring your own keys
- Each provider key is encrypted with AES-256-GCM, scoped to your row, and decrypted only inside the request that needs it.
- Rotate by pasting a new value over the masked preview at /settings/api-keys.
- Server falls back to platform env vars when a per-user key is absent.
Security model
- RLS on every public table. Helpers live in a private schema so PostgREST cannot expose them.
- Service-role key never touches the browser bundle; used only inside server routes and edge functions.
- Stripe webhook verifies signature with createSubtleCryptoProvider before mutating workspace plan.
CLI
- npm i -g @angi/cli (or use `pnpm --filter @angi/cli dev`).
- angi config set-base-url https://yourdomain && angi config set-token <token>
- angi swarm init --name demo, angi agent spawn --swarm <id> --type coder
- angi memory search "vector index" --mode hybrid