[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-78395":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},78395,"kanbots","leodavinci1\u002Fkanbots","leodavinci1","Local collaboration interface for working on a kanban board where each task is either a Claude Code or Codex agent.","https:\u002F\u002Fkanbots.dev",null,"TypeScript",481,38,71,4,0,32,140,278,96,94.77,"MIT License",false,"main",[],"2026-06-12 04:01:23","\u003Cp align=\"left\">\n  \u003Cimg src=\"docs\u002Fassets\u002Fbrand\u002Fkanbots-icon-256.png\" alt=\"kanbots\" width=\"96\" height=\"96\">\n\u003C\u002Fp>\n\n# kanbots\n\n> **A kanban board that runs Claude Code and Codex agents in parallel.**\n> Drop a folder. Get a board. Dispatch agents on every card — at the\n> same time, each in its own worktree. Or hit autopilot and let them\n> split tasks, run them in parallel slots, and check their own work\n> while you sleep.\n\n![Kanbots board overview](docs\u002Fassets\u002Fboard-overview.png)\n\n## Highlights\n\n- **Kanban with five columns** (Backlog → Done) plus an Inbox for\n  unlabeled cards. Drag to move; in GitHub mode the move is mirrored\n  as `status:*` label edits.\n- **Local-first issues** by default — stored in SQLite. Switch to\n  GitHub mode to drive real issues on a repo.\n- **Claude Code or Codex agents** per run, isolated in per-run\n  worktrees. A pre-push hook prevents agents from pushing.\n- **Live agent thread** — every `tool_use`\u002F`tool_result` streams in.\n  Decision prompts pop into the UI; click an option, the run\n  continues.\n- **Branch preview** — start the worktree's dev server in one click\n  and open a live URL.\n- **Promote** — land an agent's worktree as a real commit, or open a\n  draft PR (GitHub mode).\n- **Sentry import** — auto-pull error groups onto the board for\n  triage; one click hands the issue to an agent.\n- **MCP server** — `kanbots-mcp-server` exposes the board over Model\n  Context Protocol so Cursor, Claude Desktop, or anything MCP-aware\n  can drive it.\n\n## Getting started\n\n### Install a packaged build\n\nLatest binaries: [releases page](https:\u002F\u002Fgithub.com\u002Fleodavinci1\u002Fkanbots\u002Freleases).\n\n**macOS** — builds are currently unsigned, so Gatekeeper rejects the\n.dmg on first launch with *\"kanbots is damaged and can't be opened\"*.\nUse the one-line install script — it grabs the right .dmg for your\narchitecture, clears the quarantine flag, and copies the app into\n`\u002FApplications`:\n\n```sh\ncurl -fsSL https:\u002F\u002Fkanbots.dev\u002Finstall-mac.sh | bash\n```\n\nIf you'd rather install by hand: download the .dmg, drag the app\ninto `\u002FApplications`, then run\n`xattr -d com.apple.quarantine \u002FApplications\u002Fkanbots.app` once.\n\n**Linux** — `.AppImage` (`chmod +x` and run) or `.tar.xz`.\n\n**Windows** — `.exe` installer. SmartScreen warns on first launch —\n*More info → Run anyway*. Like macOS, the build is unsigned.\n\n### Or run from source\n\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002Fleodavinci1\u002Fkanbots.git\ncd kanbots\npnpm install\npnpm desktop          # build everything, open Electron\n# or, for hot-reload:\npnpm desktop:dev      # Vite + tsup --watch + electronmon\n```\n\nYou'll need **Node 20+**, **pnpm 10+**, **git**, and `claude` (the\nClaude Code CLI) on `PATH`. Sign in once with `claude \u002Flogin`. Add\n`codex` on PATH if you want Codex agents, and `gh` + `gh auth login`\nif you'll be driving GitHub issues.\n\n### First run\n\nA workspace picker opens. Pick any folder that contains a git\nrepository — kanbots creates `.kanbots\u002F` (db + config + worktrees)\ninside it and drops you on the board.\n\nFull walkthrough: [docs\u002Fgetting-started.md](docs\u002Fgetting-started.md).\n\n## The `.kanbots\u002F` directory\n\n```\n.kanbots\u002F\n├── db.sqlite        # all issues, threads, runs, providers, settings\n├── config.json      # workspace mode + defaults (see docs\u002Fconfiguration.md)\n├── worktrees\u002F       # one subdir per agent run\n├── attachments\u002F     # files dragged into chats \u002F cards\n├── mcp-runtime\u002F     # transient MCP configs handed to claude \u002F codex\n└── promote\u002F         # staging area when promoting a worktree to a commit\n```\n\nNothing is written outside this directory or the worktrees it creates.\n\n## Workspace modes\n\n| Mode | Source of issues | Use it for |\n| --- | --- | --- |\n| `local` | SQLite in `.kanbots\u002Fdb.sqlite` | Solo work, side projects, anywhere you don't want GitHub Issues |\n| `github` | GitHub REST via Octokit | When the repo's issues already live on GitHub |\n\nSee [docs\u002Fissues.md](docs\u002Fissues.md) for auth setup and the\n`IssueSource` contract.\n\n## How an agent run works\n\n1. Click **Dispatch** on a card.\n2. kanbots creates `.kanbots\u002Fworktrees\u002Fissue-\u003Cn>-\u003CrunId>\u002F`, branched\n   from the repo's default branch.\n3. It spawns `claude -p` (or `codex` exec mode) against that worktree\n   with stream-JSON output, parses every event, and forwards it to the\n   UI.\n4. If the agent requests a decision, the run pauses and a card pops\n   up. You answer it; the run continues.\n5. When the run finishes (or you stop it), the worktree stays on disk:\n   - **Branch preview** — start its dev server.\n   - **Promote commit** — land it on your real branch.\n   - **Open draft PR** — GitHub mode only.\n   - **Discard** — remove worktree + branch.\n\nA pre-push hook is installed in every worktree so agents can't push\nto remote on their own. Promotion is always an explicit user step.\n\n![Run detail with awaiting-decision prompt](docs\u002Fassets\u002Frun-detail-awaiting-decision.png)\n\n*Issue detail: live agent thread, decision prompt with numbered\noptions, run stats (model, elapsed, tokens, cost), check buttons,\nworktree\u002Fbranch info, and a Reply box that accepts slash commands\n(`\u002Fspec`, `\u002Freview`, `\u002Fsplit`).*\n\nDetails: [docs\u002Fagents.md](docs\u002Fagents.md).\n\n## Autopilot\n\nAutopilot turns dispatch from a one-shot click into a loop.\n\n- **`feature-dev`** — Multi-persona, parallel slots (up to 4). Round-robin\n  through your persona roster on the parent issue; agents split into\n  subtasks as they go. Stops on completion, stop button, or session\n  cost budget.\n- **`qa`** — Runs configurable check commands\n  (`typecheck` \u002F `tests` \u002F `lint` \u002F `build` \u002F `e2e`), optionally\n  starts a dev server and watches it, and dispatches fix runs against\n  whatever fails.\n\nBoth write to `autopilot_sessions` so you can watch the cycle history,\nsee every child run, and stop the whole tree from a single button.\n\nDetails: [docs\u002Fagents.md#autopilot](docs\u002Fagents.md#autopilot).\n\n## Documentation\n\n| Topic | What's there |\n| --- | --- |\n| [Getting started](docs\u002Fgetting-started.md) | Install, first run, picking a workspace |\n| [Agents](docs\u002Fagents.md) | Claude Code & Codex runs, decision prompts, containment, costs, autopilot, personas |\n| [Providers](docs\u002Fproviders.md) | AI providers modal — picking the agent CLI, API key storage |\n| [Issues](docs\u002Fissues.md) | Local mode, GitHub mode, auth, Sentry import |\n| [MCP server](docs\u002Fmcp-server.md) | Wiring `kanbots-mcp-server` into Cursor or Claude Desktop |\n| [Configuration](docs\u002Fconfiguration.md) | `.kanbots\u002Fconfig.json`, env vars, check command overrides |\n| [Architecture](docs\u002Farchitecture.md) | Packages, IPC bridge, database, dependency graph |\n\n## Packages\n\n| Package | Purpose |\n| --- | --- |\n| [`@kanbots\u002Fcore`](packages\u002Fcore) | Domain types, GitHub client, `IssueSource` contract |\n| [`@kanbots\u002Flocal-store`](packages\u002Flocal-store) | SQLite schema, migrations, repos, `LocalIssueSource` |\n| [`@kanbots\u002Fdispatcher`](packages\u002Fdispatcher) | Agent runtime — spawns Claude Code \u002F Codex, parses stream-json, manages worktrees |\n| [`@kanbots\u002Fllm`](packages\u002Fllm) | CLI adapters and provider catalogue |\n| [`@kanbots\u002Fapi`](packages\u002Fapi) | Pure handler library + agent supervisor (no HTTP server) |\n| [`@kanbots\u002Fmcp`](packages\u002Fmcp) | MCP server (`kanbots-mcp-server` bin) |\n| [`@kanbots\u002Fweb`](packages\u002Fweb) | React + Vite UI |\n| [`@kanbots\u002Fdesktop`](packages\u002Fdesktop) | Electron shell, IPC bridge, workspace picker |\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","kanbots 是一个支持本地协作的看板工具，其中每个任务都可以配置为 Claude Code 或 Codex 代理。该项目的核心功能包括五列看板（待办事项到完成）和一个收件箱用于未标记卡片，支持 SQLite 存储本地问题或切换至 GitHub 模式管理实际仓库中的问题。它允许同时运行多个隔离的工作树中的代理，并提供实时代理线程、分支预览及自动提交等功能。此外，还支持 Sentry 错误组导入以进行快速分发处理。此工具适用于需要高效并行开发与自动化测试的软件项目场景，特别是那些希望利用 AI 辅助代码编写和问题解决的团队。",2,"2026-06-11 03:56:47","CREATED_QUERY"]