KanVibe
面向 AI 编码代理的键盘优先看板工作区,把分支任务、终端会话与代理状态统一到一块实时看板上。
- Star 数
- ★ 150
- 最近更新
- 今天
- License
- AGPL-3.0
- 主语言
- TypeScript
- FA 评分
- 45/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配Codex · Claude Code
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 同时推进多个仓库分支的开发者,希望在一个看板上看到每个分支对应的终端与代理进度
- 不适合
- 不在 macOS/桌面环境、也不愿自建 tmux/git 工作流的团队
- 需要纯网页云端托管、完全不想安装本地依赖的用户
- 要求多平台移动端正式发布版本的用户(目前需自行从源码构建)
- 源码审查
- 45/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
KanVibe 是一个以键盘操作为核心的看板工作区,用来收拢散落在各个终端标签页中的 AI 编码工作。它在 Next.js 16 + React 19 之上提供实时看板,任务以 git 分支为单位,创建时自动准备 git worktree、tmux 窗口或 zellij 标签页,并把终端会话绑定到任务。终端通过 xterm.js 与 WebSocket 在浏览器内串流,也支持基于 ~/.ssh/config 的 SSH 远程终端。Claude Code、Gemini CLI、Codex CLI 与 OpenCode 的钩子会在用户提交、提问、结束时自动推动 TODO→PROGRESS→PENDING→REVIEW→DONE 的状态流转,任务进入 DONE 时自动清理分支、worktree 与会话。分发方式包括 Homebrew Cask 安装的 Electron 桌面应用,以及可自托管的本地服务;另有一个需自行构建的 Flutter 移动客户端。
注册项目时会扫描本地或远程 git 仓库,识别已有 worktree 分支并安装各代理的钩子文件(.claude/hooks/、.gemini/hooks/、.codex/hooks/ 与 .opencode/plugins/kanvibe-plugin.ts)。创建带分支名的任务时,它执行 git worktree 创建、启动 tmux 窗口或 zellij 标签页,并把会话与任务关联;任务详情页通过 xterm.js + WebSocket + node-pty 渲染终端,支持单屏、水平/垂直二分、左右 TB 与四宫格等 6 种窗格布局及每窗格自定义命令。钩子调用 /api/hooks/start 与 /api/hooks/status,按 branchName + projectName 更新状态并触发浏览器通知。此外还提供 Monaco Editor 的 GitHub 风格 diff 视图、从本地 CLI 登录态读取 Claude/Codex/Gemini 剩余额度的用量面板,以及通过配对码连接、镜像任务窗格的 Flutter 移动端。
- 同时推进多个仓库分支的开发者,希望在一个看板上看到每个分支对应的终端与代理进度
- 使用 Claude Code 或 Codex CLI 长时间跑任务,想让状态自动从 PROGRESS 走到 REVIEW 而不手动拖卡片
- 习惯 Vim 键位、希望用 h/j/k/l、:move progress、dd 操作看板而不离开键盘的用户
- 需要远程开发机上跑 tmux 会话、通过 SSH 在本地浏览器里操作终端的团队
- 想随时用手机查看任务状态并输入到任务终端里的个人开发者
- 在一个界面里同时核对多个 Claude/Codex/Gemini 账号剩余额度的重度用户
如何安装或部署这个 Agent?
README 推荐使用 Homebrew Cask 从项目自有 tap 安装(macOS):
brew install --cask rookedsysc/kanvibe/kanvibe
open -a KanVibe升级与卸载:
brew update
brew upgrade --cask kanvibebrew uninstall --cask kanvibe
brew untap rookedsysc/kanvibe安装前需准备以下依赖:
brew install git tmux gh
gh auth loginzellij 为可选项:
brew install zellijFlutter 移动客户端需从 mobile/ 目录自行构建;README 未给出具体构建命令。
如何使用这个 Agent?
首次使用先注册项目:在主看板工具栏点击放大镜扫描按钮(位于项目筛选与 + New Task 之间),选择本地或远程 git 仓库路径后点击 Scan & Register,KanVibe 会登记仓库、识别已有 worktree 分支并安装受支持的代理钩子。随后在看板上新建 TODO 任务并填写分支名,它会自动创建 worktree、启动 tmux/zellij 会话并绑定终端。常用快捷键:
Cmd/Ctrl+Shift+O 全局快速任务搜索
Cmd/Ctrl+Shift+P 打开项目筛选
Cmd/Ctrl+Shift+I 打开通知面板
Cmd/Ctrl+0 任务详情页切换 AI 用量面板
Cmd+1/2/3 任务详情页切换信息 / 状态与钩子 / AI 聊天在 Settings → Keyboard 中开启 Vim 风格控制后可使用 h/j/k/l 移动、/ 查找、n 新建、:move progress 改状态、dd 删除。移动端在 Settings → Mobile Connection → Create pairing code 生成 5 分钟有效的配对码,并在 App 内填入桌面端地址、端口 9736 与 6 位码完成配对。
这个 Agent 有哪些优点和局限?
- 以 git 分支为任务单元,创建任务即自动生成 worktree 与 tmux/zellij 会话,任务完成后自动清理,避免手工维护分支与终端
- 同时支持 Claude Code、Gemini CLI、Codex CLI 与 OpenCode 的钩子,并由看板实时反馈 PROGRESS/PENDING/REVIEW 状态;Gemini CLI 因缺少 AskUserQuestion 而明确不支持 PENDING
- 键盘优先设计覆盖快速搜索、项目筛选、通知、任务详情 dock 编号快捷键与 Vim 风格看板操作
- 终端能力完整:xterm.js 串流、6 种窗格布局、每窗格自定义命令、SSH 远程终端与 Nerd Font 渲染
- 内置 AI 账号与用量面板,直接复用各 CLI 已存储的登录态,不额外需要 API key,也不改写凭据
- 桌面(Electron + Homebrew Cask)与浏览器自托管两条路径,并有可自行构建的 Flutter 移动端镜像终端
- 依赖栈较重:必须安装 git、tmux 与已登录的 gh,Node.js/Next.js 16 运行时、Electron 以及可选 zellij 都会影响上手成本
- 主要围绕 tmux/zellij 设计,不在多路复用器中的会话只能靠转录活动判断,等待输入时可能被误判为空闲
- Codex 的 PENDING 仅代表 Bash 相关的权限等待,且生成的工作树需在 Codex 中手动信任后本地钩子才会触发
- Gemini CLI 无 PENDING 状态,子任务计数对 OpenCode 依版本而定、对 Gemini CLI 不可用
- AGPL-3.0 授权,README 明确不允许商业 SaaS 分发
- 移动端需自行从源码构建,README 未提供构建步骤
这个 Agent 与同类方案有什么区别?
README 自述受 workmux(tmux 工作区管理器)与 vibe-kanban(AI 驱动的看板)启发,可视为同类工具;它在此基础上的区别是同时集成 git worktree、tmux/zellij 会话、多家 CLI 钩子与用量面板。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| KanVibe 当前 | 45 · 缺口较多 | 桌面应用免费 | ★ 150 | 今天 | TypeScript | Codex · Claude Code |
| nodeterm | 65 · 存在缺口 | 桌面应用免费 | ★ 2.4k | 今天 | TypeScript | Codex · Claude Code |
| Collie | 84 · 表现良好 | 命令行工具免费 | ★ 1.6k | 今天 | TypeScript | — |
| Pi Subagents 多智能体编排框架 | 62 · 存在缺口 | Agent 插件 / 技能免费 + 模型费 | ★ 136 | 1 个月前 | TypeScript | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README 描述了大量高权限行为:自动创建/删除 git worktree 与分支、启动 tmux/zellij 会话、通过 SSH 执行远程命令、读取各 CLI 已存储的登录凭据、安装 agent hooks。但仓库只提供了 README、LICENSE、package.json 和 CI 配置,没有源码可核验这些行为是否最小权限、是否有确认步骤、是否透明。任务移到 DONE 会自动删除分支/worktree/会话,README 未说明删除前是否有确认或恢复路径,扣分。凭据方面声称不重写 CLI 存储的凭据,但无代码佐证。依赖安全仅见 pnpm onlyBuiltDependencies 白名单,无审计或锁定证据。source_attribution 因 README 明确标注 Inspired By 与 AGPL 许可,给 2。
CI 配置显示 type check、vitest、build 三道门禁,且 package.json 有大量 qa 脚本,说明项目对自洽性有投入,给 2。但依赖可用性仅靠 engines node 24.x 与 pnpm 10.34.5 声明,无 lockfile 证据,且依赖 tmux/gh/zellij 等外部二进制,给 1。失败信息方面 README 仅提到 hook 端点返回 404 并发送通知,无系统性错误处理说明,给 1。
README 清晰界定受众(使用 AI 编码 agent 的开发者)与场景(多项目、多 agent、键盘优先),给 2。能力边界有说明(如 Gemini 无 PENDING、Codex 仅 Bash 范围、zellij 会话仅靠 transcript 判断),给 2。触发精度方面 hook 状态映射依赖各 CLI 版本与信任路径,README 承认 Codex 需手动信任 worktree,存在误触发风险,给 1。环境适配仅覆盖 macOS(Homebrew cask、DMG),Linux 仅提快捷键,给 1。
README 信息架构完整,有前置依赖、快速开始、使用流程、功能、快捷键表,给 2。安装说明具体(Homebrew tap、更新卸载命令),给 2。命名稳定性无版本化 API 或命名约定说明,给 1。示例以截图和视频为主,缺少文字 FAQ 与故障排查,给 1。已知限制有专门段落(Gemini/Codex/OpenCode 差异、zellij 限制),给 2。LICENSE 为完整 AGPL-3.0 文本,给 2。版本号 1.5.0 但无 CHANGELOG,给 1。维护责任仅指向个人作者与贡献文档,发布者未经验证,给 1。
输出可用性方面,产品提供看板、终端、diff、AI 用量面板,README 描述具体,给 2。边际价值相对 vibe-kanban/workmux 有差异化(hook 驱动状态、AI 用量、移动端),给 2。成本效益方面需安装 tmux/gh/zellij、Node 24、Electron 打包,且自动删除分支带来风险,给 1。
README 的声明(hook 端点、状态映射、SSH ControlMaster 池)无源码或测试文件可交叉核验,仅 CI 配置佐证存在测试,给 1。跨源佐证仅 README 与 package.json 脚本、CI 之间部分一致,给 1。事实与推断分离方面 README 区分了各 agent 能力差异,但部分性能与行为声明(如并发上限 4x CPU)无依据,给 1。
- 任务移到 DONE 会自动删除分支、worktree 和终端会话,README 未说明删除前确认或恢复机制,存在数据丢失风险。
- 应用会读取各 AI CLI 已存储的登录凭据并执行其登录命令,且通过 SSH 执行远程命令,权限范围较大,需在源码层面核验最小权限。
- 仓库仅提供 README、LICENSE、package.json 与 CI 配置,缺少源码与测试文件,无法静态核验安全与可靠性声明。
- 发布者身份未经验证,维护责任仅指向个人作者,更新路径依赖个人 Homebrew tap。
- 仅支持 macOS 打包,Linux 支持有限,跨平台用户需谨慎评估。