Quickstart
1. Run Vaka
git clone https://github.com/ErikHellman/vaka && cd vaka
cp .env.example .env # set VAKA_ADMIN_EMAIL, VAKA_ADMIN_PASSWORD and VAKA_PUBLIC_URL
docker compose up -d
curl http://localhost:8080/health # {"ok":true,...}
This starts Vaka and ClickHouse, with metadata in SQLite. See self-hosting for Postgres, TLS and other options.
2. Create an API token
Sign in at http://localhost:8080/ui with the admin account from .env, open Tokens and
create a token. Pick write and all projects for an agent that will set up projects.
Tokens start with vt_ and are shown once.
3. Connect your coding agent
Add Vaka as an MCP server (Streamable HTTP) with the token as a bearer token. For Claude Code:
claude mcp add --transport http vaka http://localhost:8080/mcp \
--header "Authorization: Bearer vt_..."
Then ask the agent: "Create a Vaka project for this app and install the SDK." It uses the
create_project and get_install_instructions tools and follows the install guide.
4. Or do it by hand
export VAKA_URL=http://localhost:8080 VAKA_TOKEN=vt_...
curl -s -X POST $VAKA_URL/api/v1/projects -H "Authorization: Bearer $VAKA_TOKEN" \
-H 'Content-Type: application/json' -d '{"name": "My web app", "platform": "javascript"}'
The response has the project's ingest_key (vk_...) and an install_instructions_url that
returns Markdown with the key and endpoint filled in. Follow it, or see the SDK pages:
JavaScript, Android, iOS, Rust,
HTTP.
5. Check that data arrives
vaka send-test-event --key vk_... # or: VAKA_KEY=vk_... vaka send-test-event
vaka issues -p my-web-app
Install the CLI with cargo install --git https://github.com/ErikHellman/vaka vaka, or use the
binary inside the Docker image: docker compose exec vaka vaka --help.