kanban for ai coding agents

Many hands.
One board.

A Kanban board that orchestrates AI coding agents — Claude Code, Codex, and Copilot — as zellij sessions. Each ticket gets its own isolated git worktree, driven from a terminal UI or a live browser board, both in sync over one daemon.

$ curl -fsSL https://raw.githubusercontent.com/alveflo/kamaji/main/install.sh | sh

features

Built for running agents in parallel

Two front-ends, one daemon

A terminal UI and a browser board at 127.0.0.1:8755, both backed by the same kamajid daemon and kept in sync live over Server-Sent Events.

Terminals in the browser

Click a ticket on the board to open its agent's zellij session, streamed straight into the page. Watch agents work without leaving the tab.

One worktree per ticket

Every ticket runs in its own isolated git worktree. Agents work side by side without ever touching each other's files.

A zellij session each

Moving a ticket to In Progress launches the agent in a dedicated zellij session and drops you in. Detach with Ctrl+o d — it keeps running.

Bring your own agent

Claude Code, Codex, and Copilot out of the box via configurable command templates. Point it at any CLI you like.

Auto-move to Review

The daemon watches in-progress sessions and moves a ticket to Review on its own when its agent goes idle. A live indicator shows what each agent is up to.

Sandboxed container mode

kamaji up runs the daemon, zellij, and every agent inside one container — agents get root in the box, never on your host. Rootless Podman or Docker.

Persistent across reboots

A single SQLite database, owned by the daemon, keeps your board intact. Sessions survive reboots — re-attach and the agent resumes its conversation.

Self-updating

Kamaji checks for new releases on launch. When one's available, press u to download and replace both binaries in place, then restart.

how it works

Drag a ticket. Get an agent.

  1. Todo

    Create a ticket

    Press c. Add a title, optional description, an initial prompt, and pick the agent.

  2. In Progress

    Kamaji spins it up

    A git worktree is created, a zellij layout generated, and the agent launches with your prompt — auto-attached.

  3. Review

    Check the work

    Re-attach any time with . Move it to Review yourself — or let the daemon do it when the agent goes idle.

  4. Done

    Clean up

    Move to Done and Kamaji offers to kill the session, remove the worktree, and delete the branch.

quick start

Up and running in a minute

You'll need

  • zellij ≥ 0.43 on $PATH
  • git on $PATH; project roots must be git repos
  • at least one of claude, codex, copilot
  • a modern browser — only for the browser board
  • rootless Podman or Docker — only for kamaji up
~/code/acme-api
# Linux / macOS — prebuilt binary to ~/.local/bin
$ curl -fsSL https://raw.githubusercontent.com/alveflo/kamaji/main/install.sh | sh
# Windows (PowerShell)
> irm https://raw.githubusercontent.com/alveflo/kamaji/main/install.ps1 | iex
# launch the TUI — the browser board comes up too
$ kamaji
# seed a ticket without opening the TUI
$ kamaji ticket create --prompt "Fix GitHub issue #123"
# or sandbox everything in a container
$ kamaji up

Many hands. One board.