Kanbini:本地优先、AI 可操控的开源看板应用
Jigglyy/kanbini
Kanbini 是一款离线优先的开源看板应用,数据存于本地 SQLite 文件并导出为 Markdown + JSON,无账号、无云端、无遥测。它内置本地 MCP 服务器,提供 30 个读写工具,Claude、ChatGPT、Cursor 等 MCP 客户端可实时读取并移动卡片。采用 MIT 许可,Windows 为主要测试平台,并提供 Claude Code 插件。
A kanban board that lives on your machine - and lets your AI move the cards. Offline-first. Plain text on disk. No cloud, no accounts, no telemetry.
Kanbini is a Trello-style kanban app built for one person and their AI. Your boards live in a local SQLite file and export to plain Markdown + JSON, so you own your data outright. A built-in local MCP server lets any AI that speaks MCP - Claude, ChatGPT, Cursor, or your own agent - read and rearrange your board while you watch the cards move in real time.
The pitch is simple: your tasks shouldn't need an internet connection, a login, or a monthly fee just to exist. Kanbini keeps your whole board in a local file you fully own, runs as a fast native app, and - when you want a hand - lets an AI pull up a chair and move the cards in real time while you watch.
The name mashes kanban with konbini, the Japanese corner store that never closes: a board that's yours, local, and always on.
Why Kanbini
- Offline by default. No accounts, no network, no telemetry. The only
things that ever leave your machine are the ones you explicitly turn on
- link previews and one-way Obsidian export - both off by default.
- You own your data. Everything is a local SQLite file with first-class, lossless plain-text export (Markdown + JSON), verified byte-identical by a round-trip test.
- AI-native. A token-gated local MCP server exposes read/write tools; the AI's edits stream into the live UI as it works.
- Free and open source under the MIT license.
Screenshots
| All your boards in one place | Card detail with checklists + comments |
|---|---|
![]() |
![]() |
| Swimlanes - group by priority | Cross-board command palette |
![]() |
![]() |
Features
- Boards, lists, cards with drag-and-drop (live cross-list reorder), labels, due dates, priorities, per-list colours, and swimlanes (group by priority).
- Card depth - WYSIWYG description (saved as Markdown), checklists, comments, local attachments (paste an image straight in), cover images, and a per-card activity log. Cards with a description show a small marker in the list.
- Long boards stay readable - each list scrolls on its own, a card can be collapsed to a one-line summary (or a whole list set to compact), and a list can show just its first 10 / 20 / 50 cards with a "Show more" button.
- Multi-select - Ctrl/Cmd-click cards (or Shift-click for a range) to pick several at once, then complete, set priority, re-label, move, or delete them in bulk from a floating action bar (or a right-click menu) - and drag the whole group between lists.
- Local MCP server - a token-gated 127.0.0.1 control channel + stdio
server (
@kanbini/mcp) with 30 read/write tools: cards, lists, boards, labels, comments, checklists, attachments, archiving, list settings (card limit, sort, colour, compact cards, how many to show), "waiting on" links, search, and a cross-board agenda. Edits stream into the open UI live. Seedocs/MCP.md. - Claude Code plugin -
/plugin marketplace add Jigglyy/kanbini, then/plugin install kanbini@kanbini. Adds/kanbini:agenda,/kanbini:new-card, and/kanbini:log(write up this session's work as a finished card), and needs no token or path: it finds the Kanbini app you installed. Seeplugins/kanbini. - Scriptable HTTP API - the same token-gated 127.0.0.1 control channel
is also a plain local HTTP API (REST routes for reads + writes, plus a
batch endpoint that lands as one undo step) for non-MCP tools, scripts,
and automation. Loopback only. See
docs/MCP.md. - Own your data - lossless plain-text export/import (
kanbini.json+cards/*.md+ attachment files); Backup + Restore live in Settings. - Cross-board search via a Ctrl/Cmd+F command palette.
- Repeating cards - make a card repeat daily, weekly, monthly, yearly, or every N of those. Completing it adds the next one with its due date moved on, labels and checklist carried over (unticked).
- Waiting on - mark that a card can't start until another is done, even one on a different board. The card shows "Blocked" until then.
- Agenda on the home screen - what's overdue, due today, coming up this week, and recently completed, across every board. Tick a card off right there, or click it to jump to the card.
- Templates for boards and lists.
- Undo / redo with full snapshot restore on delete.
- Customizable keyboard shortcuts.
- Board backgrounds (colour / gradient / image) and continuous zoom.
- Trello import - bring an exported Trello board JSON in as a new board.
- Opt-in integrations (off by default): link previews and one-way push to an Obsidian vault.
Install
Windows: download Kanbini-X.Y.Z-win-x64.zip from the
Releases page, extract it
anywhere, and run Kanbini.exe inside. It's portable: nothing is
installed and nothing goes in the registry; your boards live in
%APPDATA%\Kanbini. To update, replace the folder with the new one.
Builds are unsigned, so Windows SmartScreen warns on the first run
("More info", then "Run anyway").
Or run it from source:
pnpm install pnpm --filter @kanbini/desktop dev
It opens on a seeded sample board. After a fresh clone or any Electron version bump, run the native rebuild once:
pnpm --filter @kanbini/desktop rebuild:native
To build it yourself, see docs/PACKAGING.md
(Windows portable .zip; macOS .dmg; and a Linux AppImage,
built from a Linux host or WSL2 - see Building for
Linux). Windows is the primary
tested target; the macOS and Linux recipes build from the same Electron
source but haven't been smoke-tested yet.
Wire up an AI
The MCP server speaks the standard Model Context Protocol, so any
MCP-capable client can drive your board while it's open. Claude Desktop
and Claude Code are what we test against, but ChatGPT desktop, Cursor, or
your own agent work the same way - one config shape covers them all. The
snippet + token live in the app under Settings → AI integration;
details in docs/MCP.md.
Develop
pnpm verify # typecheck + unit tests + launch smoke (~20 s) pnpm e2e # Playwright end-to-end suite against the real Electron app
Exercise the MCP surface end-to-end (desktop app must be running):
pnpm --filter @kanbini/mcp run build # one-time / after MCP changes pnpm --filter @kanbini/mcp run smoke # read-tool check pnpm --filter @kanbini/mcp run smoke:write # create → update → comment → checklist → delete
Prove the export/import round-trip is lossless (no live app needed):
pnpm --filter @kanbini/desktop run test:roundtrip
Layout
/apps
/desktop Electron main + hardened preload + control channel
/renderer React + Vite + Tailwind v4 + ShadCN
/mcp @kanbini/mcp - stdio MCP server
/desktop-e2e Playwright end-to-end suite
/packages
/shared zod schemas, channel names, id/order utils
/db Drizzle schema + migrations + data access
/docs DESIGN.md, MCP.md, PACKAGING.md
- Design & architecture →
docs/DESIGN.md - MCP integration →
docs/MCP.md - Packaging →
docs/PACKAGING.md
Contributing
Issues and pull requests are welcome. pnpm verify should be green before
you push. New features in @kanbini/shared, @kanbini/db, or
@kanbini/renderer should land with tests in the same change; bug fixes
should come with a regression test.
License
MIT © Jigglyy and Kanbini contributors.
来源:GitHub · github.com




