Quick start
0. Toolchain (mise)
Python, Node.js, pnpm, and uv versions are pinned in mise.toml and provisioned by mise, so every machine runs the same toolchain. Install mise once:
| OS | Command |
|---|---|
| Windows | winget install jdx.mise |
| macOS | brew install mise |
| Linux | See the installation docs |
Activate it in your shell (see activation docs for bash/zsh/fish; on Windows add (&mise activate pwsh) | Out-String | Invoke-Expression to your PowerShell $PROFILE), then install the tools from the repository root:
mise trust
mise install
On Windows, also put mise's shims directory (%LOCALAPPDATA%\mise\shims) on your PATH, so uv / pnpm / python resolve even outside an activated shell.
Not using mise? The minimum versions are Python 3.11+, Node.js 20+, plus uv and pnpm installed by hand.
1. Backend
The backend itself needs only Python and uv; Node.js is used only to launch stdio MCP servers published as npm packages (npx), and the docker compose image ships it.
cd backend
uv sync
cp .env.example .env
sed -i.bak 's/^GOOGLE_API_KEY=.*/GOOGLE_API_KEY=YOUR_API_KEY/' .env && rm .env.bak
uv run uvicorn main:app --host 0.0.0.0 --port 8000 --timeout-graceful-shutdown 30
.env.example defaults to Google Gemini, so replace YOUR_API_KEY with your own key. To use a different model or provider, see LLM configuration.
The API is now available at http://localhost:8000.
2. Frontend
cd frontend
pnpm install
# Optional: cp .env.local.example .env.local (only needed if backend is not on :8000)
pnpm build
pnpm start
Open http://localhost:3000. To run on a different port, see Changing the port in the frontend README.