Kanzo

io.github.emanuele-emPublished by GitHub account emanuele-emv0.1.3Updated Oct 29, 2026

Self-hosted kanban for humans and agents. One 4 MB binary, starts in 2 ms, zero setup.

Overview

AI-generated overview

Self-hosted kanban board that also runs as an MCP server, letting agents take tasks, move cards and comment on the same board you use in the browser.

What you can do
  • Take the next task from the board and move cards between columns
  • Comment on tasks as work progresses and set a task's URL
  • List and filter tasks with GitHub-style qualifiers such as tag, status, project, date and text fields
  • Find the right project automatically from the git remote of the repository being worked in
  • Share one board live across computers on a network, or sync it through a private git repo
When to use it
Useful when you want coding agents and yourself to work from one shared task board without a hosted service, account or database setup, including across several machines or a Raspberry Pi.
Requirements
A local binary installed on macOS, Linux or Windows (installer script, release zip or cargo install); it runs as a local process over stdio or at the local board's MCP endpoint. No account or API key. The first run creates a data folder, by default ~/kanzo, which can be changed with --home or KANZO_HOME.
Before you install
Agents can move cards, comment and change task data on the board. Sharing opens the board to your network with no logins, so only share on a trusted network and use a VPN for remote access. Sync pushes the board to a private git repository you own, so that repo holds your task data.

Installation

In SourceWeft

  1. Open Kanzo in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[kanzo: a tiny kanban board for you and your coding agents]

[CI] [crates.io] [AGPL-3.0]

Kanzo is a kanban board in your browser and an MCP server in one 4.5 MB program, so you and your coding agents work on the same tasks: on one computer, or on one board shared by all of them. No account, no server, no setup: run kanzo and it works.

You never edit a file. Everything is done in one of three places:

  • the board, in your browser, for you;
  • MCP, for your agents: they take tasks, move cards and comment;
  • the kanzo command, for the terminal and scripts.
[The Kanzo board: agents move cards while you watch, ⌘K finds a task in any project, Laptop A shares the board and Laptop B joins it]

Install

[!TIP] Just ask your agent: "install Kanzo from github.com/emanuele-em/kanzo."

sh
curl -LsSf https://github.com/emanuele-em/kanzo/releases/latest/download/kanzo-installer.sh | sh

For macOS and Linux, including every Raspberry Pi. On Windows, in PowerShell:

powershell
powershell -ExecutionPolicy Bypass -c "irm https://github.com/emanuele-em/kanzo/releases/latest/download/kanzo-installer.ps1 | iex"

Or download the Windows zip from the latest release and put kanzo.exe in a folder named bin on your PATH, like %USERPROFILE%\.cargo\bin: the board updates itself only there.

Every release is signed by GitHub: check a download with gh attestation verify <file> --repo emanuele-em/kanzo. Or with Cargo:

sh
cargo install kanzo

Start

[!TIP] Just ask your agent: "start Kanzo and keep it running at login."

sh
kanzo

The board opens at http://localhost:4242. That's all the setup there is: the first run creates ~/kanzo, and the whole board lives in it.

n adds a task, / or ⌘K searches every project, f filters the board and ↵ keeps the filter, Tab moves to the description, ⌘↵ saves and closes, Esc cancels. Mark a task Human and agents leave it to you; the person icon shows only those. Paste or drop an image into a task or a comment to attach it. Give a task a URL, like its pull request on any site, and click the link on its card to open it; agents set it with url. When a new version is out, the sidebar offers it: one click installs it.

Connect your agents

[!TIP] Just ask your agent: "add Kanzo as your MCP server," then restart it.

sh
claude mcp add kanzo --scope user -- kanzo mcp   # Claude Codecodex mcp add kanzo -- kanzo mcp                 # Codex

Other MCP clients: run kanzo mcp (apps like Raycast need the full path, from which kanzo), or use the running board at http://localhost:4242/mcp.

Then ask: "take the next task from kanzo and do it." The agent moves the card to doing and comments as it works. It finds the right project from the git remote of the repo it works in; link more repos to a project from its ⋯ menu.

[A task open on the board, with Claude Code's comments and a reply]

Park ideas in a backlog

Turn on Backlog in Settings for a column agents leave alone, until you move its tasks to todo.

[The board with the Backlog column on, left of Todo]

Filter and search

[!TIP] Just ask your agent: "take the next kanzo task tagged billing," or "list what's left in kanzo with tag:billing."

The board's filter (f), search (/) and the filter of list_tasks and next_task all understand the same words, like on GitHub. Every part must match, and - before a qualifier negates it: tag:billing -status:done. Qualifiers turn blue as you type them, so you can see what will filter.

[The board filtered by a saved tag:backend chip and -status:todo in the filter box, with the two matching tasks and their tag highlighted]
QualifierFindsExample
tag:that exact tagtag:bug, tag:"needs review"
status:a columnstatus:doing
project:a projectproject:api
title:, description:, url:, comment:text in that fieldtitle:login, comment:"on hold"
id:, comments:, images:a number, or a rangeid:12, comments:>2, images:1..3
created:, updated:a date, or a rangecreated:2026-11-05, updated:<2026-01-31
is:humantasks for you, not agents-is:human
has:, no:description, tags, url, comments or imageshas:url, no:tags

Anything else is plain text. Use quotes for a phrase, "on hold", or to look for text that reads like a qualifier, "tag:bug". Agents can't filter through a property you've hidden in Settings.

Use it on several computers

Two ways, neither with any setup: share one board live, or sync it between machines.

Share it live

[!TIP] Just ask your agent: "share my Kanzo board" on one computer, and "join the Kanzo board at 192.168.1.20" on the others.

Several computers, one board, at the same time: everyone sees the same tasks, and every agent works on them.

  1. On the computer with the board, click the share icon next to New task and turn on Share this board. Copy an address it shows.
[The share popover on the computer with the board: sharing is on, with its addresses to copy and the computers connected]
  1. On each other computer, click the share icon, paste the address and click Join.
[The share popover on another computer: connected to the shared board, with a Leave button]

Nothing restarts and nothing needs configuring. Their board shows the shared one, and their agents use it through the same kanzo mcp, still finding the project from the repo they work in. Turn sharing off, or click Leave, at any time.

From a terminal, or for an agent, it's kanzo share on and kanzo join <address>, then kanzo share off and kanzo leave.

The same two commands work wherever the board lives; only the address changes:

Your computer shares its board. Others join it from theirs, on the same network.

mermaid
flowchart LR  B["💻 Laptop B<br><code>kanzo#nbsp;join#nbsp;192.168.1.20</code>"] -- home network --> A["💻 Laptop A<br><i>192.168.1.20</i><br><code>kanzo#nbsp;share#nbsp;on</code>"]

A Raspberry Pi keeps the board. Every computer joins it, and none has to stay on.

mermaid
flowchart LR  A["💻 Laptop A<br><code>kanzo#nbsp;join#nbsp;192.168.1.50</code>"] -- home network --> pi["🍓 Raspberry Pi<br><i>192.168.1.50</i><br><code>kanzo#nbsp;share#nbsp;on</code>"]  B["💻 Laptop B<br><code>kanzo#nbsp;join#nbsp;192.168.1.50</code>"] -- home network --> pi

The Raspberry Pi is somewhere else, over the internet. Put a VPN on the Pi and on each computer, like Tailscale, NetBird or WireGuard: kanzo share on then shows the Pi's VPN address too.

mermaid
flowchart LR  A["💻 Laptop A<br><code>kanzo#nbsp;join#nbsp;100.101.32.7</code>"] -- VPN --> net(("🌐 Internet"))  B["💻 Laptop B<br><code>kanzo#nbsp;join#nbsp;100.101.32.7</code>"] -- VPN --> net  net -- VPN --> pi["🍓 Raspberry Pi<br><i>100.101.32.7</i><br><code>kanzo#nbsp;share#nbsp;on</code>"]

On a Pi, kanzo service install keeps the board running after a restart. There are no logins: share only on a network you trust.

Sync it between machines

[!TIP] Just ask your agent: "sync my Kanzo board," or the first time, "set up Kanzo sync with github.com/you/kanzo-data."

To carry the board between machines you use one at a time, a private git repo you own keeps it in step.

  1. Create an empty private repo on GitHub, or anywhere git can push.
  2. Click Settings at the bottom of the sidebar, choose Sync and paste its URL. Kanzo makes ~/kanzo a git repo and pushes the board.
  3. On each other machine, do the same with the same URL: Kanzo offers to use the board that's already there.

From then on, choose Sync, or run kanzo sync, when you switch machines. It commits the board and pulls or pushes it, and it's safe while the board and your agents are running. If both machines changed the board, Kanzo asks which one to keep. To move to another repo, change it in Settings, under Sync.

Commands

CommandDoes
kanzoStarts the board at http://localhost:4242 and opens it; --port for another port, --no-open to not open it
kanzo service installKeeps the board running and starts it at login; uninstall removes it
kanzo mcpThe MCP server for agents: they start it, not you
kanzo share onShares the board with the other computers on your network; off stops, while the board keeps running
kanzo join <ip>Uses the board another computer shares, from this one's board and agents; kanzo leave goes back
kanzo syncCommits the board and pulls or pushes it; --repo <url> sets the repo, --keep-local or --keep-remote when both sides changed
kanzo exportPrints the board as Markdown; -f json for JSON, -p <project> for one project, -o <file> to save it
kanzo updateInstalls the latest release and restarts the board's service; the board offers new versions too
kanzo initCreates the data folder; the first run does this too
kanzo --versionPrints the version

Every command takes --home <dir> to use another data folder.

Settings

[!TIP] Just ask your agent: "run Kanzo on port 4300."

Everything lives in ~/kanzo: the board in kanzo.db, settings in config.toml. You never need to open either; use another folder with --home or KANZO_HOME.

toml
port = 4242listen = "127.0.0.1"   # sharing opens the board to your network; "0.0.0.0" keeps it openmcp_http = true        # MCP at /mcp

Settings on the board lists each task's properties, like tags or comments. Turn one off to hide it there and leave it out of what agents get; nothing is deleted.

Small and fast

Program4.5 MB, SQLite included
Memory4.5 MB idle, 8 MB with 3,000 tasks
Start2 ms
Board of 3,000 tasks17 ms to load in the browser
Agents' tool listabout 1,000 tokens, once per session
Agents' replies10 to 60 tokens of plain text

Measured on an Apple M4.

License

AGPL-3.0: use it, change it and share it; if you offer a changed version over a network, share its source too. To help, see CONTRIBUTING.

mcp-name: io.github.emanuele-em/kanzo

Source: README.md at commit d3402c2

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.3LatestOct 29, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts