Station is a repo-scoped, single-user issue tracker CLI with Beads-like ergonomics and a pluggable backend foundation.
- v1 backend: SQLite (active)
- Stub backends: Linear, Asana (explicitly unsupported in v1)
- MCP interface: stdio (
station mcp) with no daemon (active) - Collaboration/ops command families: intentionally excluded in v1
- Node 20+
- A git repository (Station is repo-scoped)
npm i -g @btraut/station
station --help
station skill install
station mcp installcd /path/to/git/repo
station init
station create --title "Ship v1"
station list
station readyStation stores state in your repository's git common dir so all worktrees share one source of truth.
<git-common-dir>/station/
config.json
station.db
station.lock
Every command supports --json.
Example (station create --title "Ship v1" --json):
{
"ok": true,
"data": {
"issue": {
"id": "station-7f593361-8b58-4dd0-a5af-8bf8f80a6ff5",
"type": "task",
"priority": 2,
"status": "open",
"title": "Ship v1",
"description": null,
"design": null,
"notes": null,
"acceptance": null,
"createdAt": "2026-03-01T09:00:00.000Z",
"updatedAt": "2026-03-01T09:00:00.000Z",
"closedAt": null
}
}
}Example error (station sync --json):
{
"ok": false,
"error": {
"code": "V1_SCOPE_EXCLUDED",
"message": "'sync' is intentionally out of scope in Station v1",
"details": {
"family": "sync",
"deferredFamilies": [
"admin",
"agents",
"chemistry",
"daemon",
"export",
"gates",
"import",
"migrate",
"sync",
"worktrees"
]
}
}
}station initstation infostation -v/station --versionstation skill install [--client <id...>]station skill statusstation create --title <title> [--type] [--priority] [--description] [--design] [--notes] [--acceptance] [--status]station list [--status csv] [--priority csv] [--type csv] [--ids csv] [--labels-any csv] [--labels-all csv] [--query text]station show <id>station update <id> [--title] [--type] [--priority] [--status] [--description] [--design] [--notes] [--acceptance]station close <id>station reopen <id>station open <id>(alias forreopen)station readystation mcp [--name <name>] [--version <version>]station mcp installstation mcp status
station dep add <issueId> <dependsOnId> [--type blocks|related|discovered_from|child]station dep remove <issueId> <dependsOnId> [--type ...]station dep list [issueId] [--type ...]station dep tree <issueId> [--type ...]
station label add <issueId> <name>station label remove <issueId> <name>station label list <issueId>station label list-all
Station v1 does not run a background daemon. MCP support is a local stdio server started directly by the station binary:
- Easiest option:
station mcp install - MCP entrypoint:
station mcp - Runtime model: one foreground stdio process per client connection
- No
stationdprocess, no background lifecycle management
MCP tools mirror CLI semantics and aliases. Business logic is shared between CLI and MCP adapters.
Current tool names:
- Core:
init,info,create,list,show,update,close,reopen,open,ready - Dependencies:
dep.add,dep.remove,dep.list,dep.tree - Labels:
label.add,label.remove,label.list,label.list-all
Tool results use the same Station envelope shape as CLI JSON output:
- Success:
{ "ok": true, "data": ... } - Error:
{ "ok": false, "error": { "code", "message", "details?" } }
[mcp_servers.station]
command = "station"
args = ["mcp"]See the full parity table: docs/parity-matrix.md.
Included in v1:
- init/info
- issue lifecycle
- dependency graph + ready queue
- labels + list filters
Excluded in v1:
- sync/daemon/import-export/migrate/admin/agents/worktrees/gates/chemistry
- multi-user collaboration workflows
This repo includes an installable Station agent skill at skills/station.
Recommended:
station skill installManual copy (advanced):
cp -r skills/station ~/.agents/skills/npm run lint
npm run typecheck
npm testTesting pyramid, layer ownership, and runtime budgets: docs/testing.md.