Wenlan
Wenlan is a source-backed AI knowledge base and LLM wiki for AI work: organize documents and decisions into pages you can find, inspect, and review.
翻訳待ち
Self-hosted, sharable kanban for humans and agents. One 4.5 MB binary, 4.5 MB of RAM, 10 to 60 tokens per agent reply, starts in 2 ms, zero setup.
翻訳待ち
生産性Rust · JavaScriptGitHub @emanuele-em自分でインストール所有者未確認
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Kanzo is a kanban board in your browser and an MCP server in one 4.7 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:
kanzo command, for the terminal and scripts.[!TIP] Just ask your agent: "install Kanzo from github.com/emanuele-em/kanzo."
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 -ExecutionPolicy Bypass -c "irm https://github.com/emanuele-em/kanzo/releases/latest/download/kanzo-installer.ps1 | iex"
Both add Kanzo to your PATH, for terminals you open from then on. To use it in the one you installed from, run source $HOME/.cargo/env (env.fish in fish), or open a new one.
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:
cargo install kanzo
[!TIP] Just ask your agent: "start Kanzo and keep it running at login."
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.
| Key | Does |
|---|---|
n | New task |
/ or ⌘K | Search every project |
f | Filter the board; ↵ keeps the filter |
Tab | Move to the description |
⌘↵ | Save and close |
Esc | Keep what you typed in a description or tags; cancel other fields |
[!TIP] Just ask your agent: "mark kanzo#12 as human, and set its URL to github.com/acme/api/pull/482."
⌘-click them, or drag on empty board space, then move, tag or delete them together. Drag one and the rest follow.url.[name](file:///path) in a description or comment opens in your editor.⌘1–⌘8 pick a project, ⌘9 the last one, ⌘0 all of them. On macOS, kanzo then opens it instead of a tab, on the default port.[!TIP] Just ask your agent: "add Kanzo as your MCP server," then restart it.
claude mcp add kanzo --scope user -- kanzo mcp # Claude Code
codex 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:
doing and comments as it works;review, comments how to resume its session.Turn on Backlog in Settings for a column agents leave alone, until you move its tasks to todo.
[!TIP] Just ask your agent: "make kanzo#12 wait on #10 and #11."
waits_on.next_task skips it, and its card is dimmed and says what it waits on. You can still move it yourself.done. A task in review still blocks.is:waiting.[!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:
- negates a qualifier: tag:billing -status:done.| Qualifier | Finds | Example |
|---|---|---|
tag: | that exact tag | tag:bug, tag:"needs review" |
status: | a column | status:doing |
project: | a project | project:api |
title:, description:, url:, comment: | text in that field | title:login, comment:"on hold" |
id:, comments:, images: | a number, or a range | id:12, comments:>2, images:1..3 |
created:, updated: | a date, or a range | created:2026-11-05, updated:<2026-01-31 |
is:human | tasks for you, not agents | -is:human |
is:waiting | tasks waiting on unfinished ones | -is:waiting |
has:, no: | description, tags, url, comments or images | has: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.
Two ways, neither with any setup: share one board live, or sync it between machines.
This is the beginning of the README. Read the rest at the original. Read the full README ↗