Alloy is a headless project tracker with a REST API. Manage tickets, sprints, and time from your terminal, your scripts, or your AI assistant.
# Start the server (SQLite, zero config) $ alloy serve Listening on 0.0.0.0:3000 # Onboard — creates admin user, org, and API key $ curl -s -X POST localhost:3000/api/v1/onboard \ -H "Content-Type: application/json" \ -d '{"email":"admin@acme.dev","password":"changeme", "org_name":"Acme","org_slug":"acme"}' | jq . { "org_id": "d3f1...", "api_key": "alloy_live_sBk9..." } # Authenticate $ TOKEN=$(curl -s -X POST localhost:3000/api/v1/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"admin@acme.dev","password":"changeme"}' \ | jq -r .access_token) # Create a project, then a ticket $ P=$(curl -s -X POST localhost:3000/api/v1/projects \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"org_id":"'$ORG_ID'","key":"ACME","name":"Acme Platform"}' \ | jq -r .id) $ curl -s -X POST localhost:3000/api/v1/projects/$P/tickets \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"title":"Ship the feature","priority":"high"}' | jq .key "ACME-1"
"Every feature in Alloy is an API endpoint first. The CLI, TUI, and MCP server are all just clients — build your own."
Every action is a curl command. Create tickets, run sprints, log time — all from your terminal or scripts.
curl -X POST /api/v1/tickets -d '{"title":"Ship it"}'
When you want convenience. Vim-style keybindings, interactive prompts, smart ticket resolution by key.
alloy ticket create "Fix the thing" --priority high
Built-in MCP server. Your AI assistant creates tickets, updates statuses, and queries your backlog natively.
"Create a ticket for the auth bug" → ACME-42
SQLite for solo use — zero setup. PostgreSQL for teams — multi-tenant with row-level security. Same binary.
alloy serve # SQLite, just works
Slack commands, GitHub webhooks, Okta SSO, SCIM provisioning. Fits into your stack, not the other way around.
/alloy create "Deploy fix" --priority urgent
Built-in time tracking with capitalization reporting. Engineering effort data for finance, without a separate tool.
curl /api/v1/reports/capitalization?period=2026-Q1
Alloy is the server. Your data stays behind the API.
| Alloy | Traditional PM Tools | |
|---|---|---|
| Interface | API first, clients optional | GUI first, API bolted on |
| Automation | curl + jq + cron | Zapier / webhook plugins |
| AI integration | Native MCP server | Third-party connectors |
| Deployment | Single binary, your infra | SaaS, their cloud |
| Data ownership | Your database, your control | Their servers, their terms |
| Config | Zero config SQLite start | Workspace setup wizard |
Install, run, curl. That's it.
# Install and run $ cargo install alloy-cli $ alloy serve # You're live $ curl http://localhost:3000/health {"status":"ok"}