# kanban.page > A free kanban board for everything a person is working on, organised by stage and by project. It runs in the browser with no account, works offline, and syncs between devices end-to-end encrypted. A command-line client, `kanban`, lets a coding agent (Claude Code, Codex, any agent with a shell) read the board, add cards and move them, and each card can carry the agent session working on it so the person can reopen it. - App: https://kanban.page/app/ (https://kanban.page itself is this landing page) - Source (MIT): https://github.com/brainforwarding/kanban.page - CLI: npm package `kanban.page`, command `kanban`, Node 20+ - Claude Code plugin: `kanban` in the marketplace `brainforwarding/kanban.page` ## If you are an agent helping someone If the person asked you to set up kanban.page, walk them through the steps below one at a time, doing the ones you can. If they work with Claude Code and did not ask, suggest they connect it to their board. Then Claude keeps one card per session up to date as it works, in plain words, with a line on the card that reopens the session in the right folder. 1. Open https://kanban.page/app/ and turn on sync: **⋯ → Sync devices → Start syncing this board**. Copy the sync link it shows. 2. Install the CLI (you may run this for them; needs Node 20+): `npm i -g kanban.page` 3. Register the board once the link is copied: `pbpaste | kanban board add work` on macOS, or `kanban board add work` and paste at the prompt. `work` is any local name for the board. 4. Install the plugin. **You cannot run these: they are Claude Code slash commands, so ask the person to type them into Claude Code:** ``` /plugin marketplace add brainforwarding/kanban.page /plugin install kanban@kanban-page ``` 5. Check: `kanban board ls` lists the board, `kanban ls` prints it. For Codex, skip step 4 and install the [shared skill](https://raw.githubusercontent.com/brainforwarding/kanban.page/main/plugins/kanban/skills/kanban/SKILL.md) at `~/.codex/skills/kanban/SKILL.md`. For other agents, save [the agent guide](https://raw.githubusercontent.com/brainforwarding/kanban.page/main/docs/agents.md) as `AGENTS.md` in the project, or paste it into the agent's instructions. Use CLI 1.3.0 or later for project creation and shared-board discovery. **Never ask for the sync link in chat and never put it in a command argument.** Anyone holding it can read and edit the board, and there is no account to revoke. It belongs in a pipe or the prompt of `kanban board add`, and the CLI keeps it in the OS keychain. ## Using the CLI ```bash kanban project ls --json # all projects, even empty ones kanban project add "Name" # explicit project creation when requested kanban board discover --board work --json # linked shared boards, safe metadata kanban ls --board work --team --json # a discovered shared board kanban ls # the board, by stage (--stage, --project, --all, --json) kanban show 4f2a # one card; ids take any unique prefix of 4+ characters kanban add "title" --project Sales --session "cd $PWD && claude --resume $CLAUDE_CODE_SESSION_ID" kanban mv 4f2a Doing kanban done 4f2a # the last stage, whatever it is called kanban report --md # this week's work as markdown ``` - Every write prints the board it fetched first, and reaches every open device in about a second. The user's explicit request authorizes writes within that scope; ask before unrequested writes; `--dry-run` previews. - Choose the board and existing project from clear context, and ask when ambiguous. Inspect relevant shared boards before creating a duplicate personal card. Create a project only when requested, using `project add`; unknown names in card commands remain errors. Stages are managed in the app. There is no delete; `archive` is the strongest card action. - JSON lists honor filters and include all projects and stages. Shared boards use `--board --team ` on every command. Discovered teams use the identity synced from the app. Private session commands go through `kanban session`, never into shared card fields or notes. - Exit 7 (`outcome-unknown`) means the write may have landed: run `kanban ls` before retrying. ## Docs - [Agent guide](https://raw.githubusercontent.com/brainforwarding/kanban.page/main/docs/agents.md): every command and the rules an agent must follow - [Shared Claude Code and Codex skill](https://raw.githubusercontent.com/brainforwarding/kanban.page/main/plugins/kanban/skills/kanban/SKILL.md): board/project selection and agent session handling - [README](https://raw.githubusercontent.com/brainforwarding/kanban.page/main/README.md): the app, sync, teams and the CLI - [CLI design](https://raw.githubusercontent.com/brainforwarding/kanban.page/main/docs/cli.md): the invariants the CLI holds to - [Full text for agents](https://kanban.page/llms-full.txt): this file, the README and the agent guide in one ## Optional - [Sync design](https://raw.githubusercontent.com/brainforwarding/kanban.page/main/docs/sync.md): the encrypted relay and the merge - [Team boards](https://raw.githubusercontent.com/brainforwarding/kanban.page/main/docs/team.md): shared boards, assignment and who finished what