// terminal kanban · ai agent orchestrator

Many hands.
One board.

A terminal Kanban board that orchestrates AI coding agents — Claude Code, Codex, and Copilot — as zellij sessions. Each ticket gets its own isolated git worktree, so agents never step on each other.

$ curl -fsSL https://raw.githubusercontent.com/alveflo/kamaji/main/install.sh | sh
An illustrated many-armed steampunk operator reading 'Vibe coding for dummies' while working a ring of terminals and keyboards at once — the spirit of Kamaji running many coding agents in parallel.
one operator · many terminals · zero collisions

The board

kamaji — board
project: acme-api [↵]attach [e]dit [c]reate [m]ove [d]elete [/]search [t]heme [p]roject [?]help [q]uit

┌─ features

Built for running agents in parallel

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.

Seed the prompt

Give a ticket an initial prompt and the agent starts working the moment its session opens. Create tickets from the CLI, too.

SQLite persistence

A single global database keeps your board intact across projects, restarts, and reboots. No services to run.

Live colorschemes

Catppuccin, Tokyo Night, Gruvbox, Nord, or your terminal's own 16 colors — switch live in-app with t.

Self-updating

Kamaji checks for new releases on launch. When one's available the status bar prompts you — press u to download and replace the binary 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 is generated, and the agent launches with your prompt — auto-attached.

  3. Review

    Check the work

    Re-attach any time with . When it's ready for eyes, move it to Review.

  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 Rust toolchain — only to build from source
~/code/acme-api
$ curl -fsSL https://raw.githubusercontent.com/alveflo/kamaji/main/install.sh | sh
$ kamaji
# installs a prebuilt binary to ~/.local/bin (override with KAMAJI_INSTALL_DIR)
# or build from source:
$ cargo build --release && ./target/release/kamaji
# seed a ticket without opening the TUI:
$ kamaji ticket create --prompt "Fix GitHub issue #123"