kabane
A terminal issue tracker that your coding agents use too.
You keep issues on a kanban board in a terminal pane. Claude Code, Codex and Gemini CLI read, claim, comment on and close the same issues through an MCP server on your machine, and every change records who made it. It all lives in one SQLite file, ~/.kabane/kabane.db.
It’s built for one person and their agents. Team work stays in Linear or GitHub; Kabane links to those issues instead of copying them.
bun add -g kabaneJMYA-2 is in next, assigned to claude, with a note from Alex. Alex asks Claude Code, in the same repo, for the next kabane issue. The agent finds it and reads the description and every comment in one kabane_context call.
Try it on one machine
Kabane is a Bun program, not a Node one, so install Bun first. Then run kabane inside a project. The first run asks for your name, which signs everything you write, and lists the coding agents it finds on your PATH.
Enter adds a kabane MCP server to each agent you left checked, through that agent’s own mcp add. That is the only change outside ~/.kabane. It also files a first issue for your agent: add a short tracker section to CLAUDE.md, AGENTS.md or GEMINI.md, because agents only use the tracker reliably when the project tells them to.
Open a new agent session there and say “take the next kabane issue”. You can also press A on the board to send a request to the copilot, a Claude Code, Codex or Gemini session that gets the selected issue and anything you’ve marked as context.
Getting started guideSync goes through a hub you host
- Each machineSQLite, the board, the CLI, and
kabane mcpfor the agents on that machine. This alone is a complete setup. - Your hub, optionalA Worker on your Cloudflare account, behind Access. A Durable Object relays the append-only log; the same core serves MCP over HTTP.
- Everything elseYour other machines pull the log. ChatGPT and Claude.ai connect to the hub as MCP connectors.
Each machine’s database stays the source of truth, and the hub joins as one more device that has a public URL. The same core package runs in both places, on bun:sqlite locally and on Durable Object SQLite in the Worker. Setting it up is a manual runbook: the Worker, a Cloudflare Access application, a service token per agent, then each client.
Rough edges
IDs carry an old prefix
Kabane was extracted from a planner called Jake, so IDs start with J plus the scope’s first letters (
JMYA-2inmyapp). Packages and actor URIs still use its earlier name, Cabane.Add the git remote before filing
A repo with no remote is scoped by its first commit. Add a remote later and the issues filed under the old scope stop showing on that repo’s board.
Two machines means running a hub
There is no hosted service. Sync needs the Cloudflare hub, on your own account and domain.
The copilot can’t answer permission prompts
It runs your harness with your settings. In an ask-first permission mode its tool requests are declined, and the transcript says so.
Sources
Last checked .
- Status
- Released, v0.1.0. MIT licensed. kabane 0.1.0 was published to npm on Sep 28, 2026, from commit f3e1c22.
Kabane READMEREADME at f3e1c22
What it is, the install command, the board and its copilot, one core on Bun and Workers, the optional hub, the earlier name Cabane.
Unchanged since 79385d5. It describes the hub; no hub was run for this page.
Getting starteddocs/getting-started.md at f3e1c22
The setup screen and what it changes, the MCP tools, the tracker rules agents follow, the rough edges.
Setup's harness wiring was not run for this page.
Self-hosting the hubdocs/deploy.md at f3e1c22
The hub's parts: the oplog relay, MCP over HTTP behind Cloudflare Access, ChatGPT and Claude.ai as connectors.
Its local checks ran against wrangler dev on Sep 7; Access, OAuth and the browser connectors are marked manual and unverified there.
Kabane PRODUCT.mdPRODUCT.md at f3e1c22
Who it's for: one person and their agents, not a team; links to Linear and GitHub issues instead of copying them.
A statement of intent, not usage.
kabane 0.1.0 from npmrun Oct 2, 2026, in a throwaway KABANE_HOME
The walkthrough's board and detail screens and its tool results, captured from that run.
No coding agent was connected: a script sent the MCP calls as claude. The agent's prompt, edits and reply are written for the example.