功能

KanVibe 将看板、终端会话、git worktree 与 AI 代理 hooks 连接成一个工作流。

实时看板

KanVibe 主看板
用项目颜色和任务元数据管理 TODO、PROGRESS、PENDING、REVIEW、DONE。
TODOPROGRESSPENDINGREVIEWDONE
  • 通过拖拽在列之间移动卡片,并用排序筛选器决定卡片顺序。
  • 在卡片上直接查看项目颜色、优先级、PR 与会话标签。
  • DONE 列支持分页,适合长期项目。

任务详情工作区

每个任务的终端工作区
每个任务都提供独立终端界面,可在 AI 代理执行、直接命令、构建和测试之间自由切换。
  • 可为每个任务选择会话后端:tmux、zellij,或由 KanVibe 直接启动 shell、不使用多路复用器的 terminal。
  • 每个任务都有自己的终端,因此可把 AI 代理执行的任务随时接回并用 shell 命令继续处理。
  • 用编号 dock 快捷键切换信息、hook 状态、AI 聊天和 PR 操作。
  • 将任务移动到 DONE 时,branch、worktree 和终端会话会被保留。只有删除任务时才会清理资源。

终端标签页

可在同一个任务中打开多个终端,把服务器、测试和代理执行分开。

打开了 claude、dev server、test 三个终端标签页的任务详情界面
用终端上方标签栏右端的 + 按钮新增标签页。前五个标签页还会显示直接跳转的快捷键,所选标签页的终端就在下方展开。
  • 在标签栏中新增、切换、关闭标签页,双击重命名,拖拽调整顺序。
  • 任务信息面板打开时会遮住标签栏左侧的一部分。点击面板外的终端,或再次按 dock 的任务信息按钮将其关闭,即可显示完整标签栏。
  • tmux 和 zellij 会话的标签页与 tmux window、zellij tab 双向同步。在 KanVibe 之外用 tmux new-window 创建的 window 也会出现在标签栏中;点击标签页时,多路复用器的活动对象也会随之切换。
  • 由于 KanVibe 自己绘制标签栏,tmux 状态栏和 zellij 标签栏会被关闭 —— 仅限 KanVibe 创建的会话。tmux 在每次重新连接时都会关闭,因此标签栏上线前创建的会话也会被整理;zellij 的布局在创建会话时就已确定,所以仅对之后新建的会话生效。
  • 在 terminal 会话中,KanVibe 会为每个标签页单独启动 shell。切换标签页时各自的 scrollback 会保留,且只要应用在运行,shell 就会一直存在。

按键组合请参见快捷键文档的终端标签页一节。

任务级 AI 聊天历史

同时选择 Claude 和 Gemini 的 AI 聊天 provider 过滤器
在左侧 provider 图标栏中同时选择多个代理时,会以 OR 条件显示所有匹配会话。
AI 聊天正文搜索结果
搜索不仅匹配会话标题,也会匹配对话正文,并直接打开相关消息上下文。
  • 在任务详情的 AI 聊天面板中按需加载 Claude、Gemini、Codex、OpenCode 历史。
  • Provider 过滤器可同时选择多个图标,已选择的 provider 会先以 OR 条件合并,再由其他过滤器继续缩小范围。
  • 聊天搜索会同时缩小会话列表和消息详情,role chip 可进一步过滤用户输入、AI 回复、系统输入、开发者输入、推理、工具和其他消息。
  • 每个消息气泡都会显示 provider 徽章,便于区分多代理上下文。

运行中的 AI 会话与子任务

看板卡片在 tmux 徽章旁显示运行中的代理图标
tmux 徽章旁会按代理显示图标和数量,可直接在看板上看出哪个任务在运行哪些代理、各有几个。
任务详情面板显示运行中的 claude 会话及两个子任务
会话面板会显示每个会话当前正在处理的工作,以及正在执行的子任务。
  • 将焦点或鼠标停留在看板卡片上片刻即可打开会话面板;快速掠过卡片时不会打开。
  • 每个会话行会显示该会话当前正在做的事,取自最近一次 AI 回复,因此在长对话中也能指向当前任务。
  • 运行中的会话会带有移动的进度条。由于无法得知剩余工作量,它以动态而非比例传达进度;在要求减少动效的环境下会静止显示。
  • 子任务以挂在会话下的分支绘制,可以看出归属哪个会话以及列表在哪里结束。
  • 在任务详情中,dock 的运行中会话项会打开同一个面板:没有 PR 时为 Mod+4,有 PR 时为 Mod+5。
  • 点击会话会切换到该会话所在的 tmux window,并把输入焦点移到终端。
  • 运行判定叠加两个依据:代理挂在 tmux pane 上时,即使在等待输入也算运行中;即使看不到 pane,只要会话记录刚刚更新也算运行中。
  • 只有面板打开时才读取会话记录。看板徽章只需一次 tmux 查询,卡片再多也不会增加开销。

子任务统计依赖各代理记录的内容,因此支持范围不同。

代理子任务统计
Claude Code支持
Codex支持
OpenCode视版本而定
Gemini CLI不支持

不使用 tmux 的 zellij 和 terminal 会话仅依据记录活动判定,因此等待输入的会话可能显示为空闲。

AI 用量

同时显示 Claude、Codex、Gemini 剩余用量的任务详情界面
通过 dock 最下方的图标或 Cmd/Ctrl+0 在一个界面查看各订阅的剩余用量。
  • 直接读取各 CLI 已保存在本地的登录信息,无需另外填写 API Key。
  • 将各 provider 不同的窗口结构(5 小时、7 天、按模型)归一为同样的进度条,并一并显示重置时间与订阅等级。
  • 接近上限时,进度条颜色会变为警告与危险色。
  • 注册了多个账号时会分别查询,并用标签区分是哪个账号的用量。
  • 打开面板会先显示上次的结果并在上方提示正在刷新,重启应用后也不会出现空白界面。

AI 账号

显示 Claude、Codex、Gemini 登录状态、订阅等级与剩余用量的 AI 账号界面
在设置 → AI 账号中按 provider 注册账号,并在同一界面查看剩余用量。
  • 添加账号时,KanVibe 会创建账号目录,并指定该位置在应用内终端中启动各 CLI 自带的登录命令,无需切换到外部终端。
  • 认证过期时,应用会委托对应的 CLI 刷新并重新读取结果,KanVibe 不会直接改写 CLI 保存的凭据。
  • 账号目录沿用主目录的同级目录惯例(如 ~/.claude-work),因此在终端中只需切换一个环境变量即可使用同一账号。
  • 已登出的账号仍保留在列表中,随时可以重新登录。
  • 移除账号时会先通过该 CLI 登出,然后只删除 KanVibe 创建的账号目录,你自己创建的目录会保留。

快速任务搜索

快速任务搜索对话框
按分支名或项目名搜索全部任务,并直接进入任务工作区。

项目过滤、目录扫描与通知

项目过滤
通过键盘切换看板中可见的项目。
通知中心
点击通知即可直接进入关联任务的详情工作区。
  • 项目过滤可快速缩小看板范围,只保留当前要关注的仓库。
  • 位于项目筛选和 + 新任务之间的放大镜按钮会打开用于目录扫描和仓库注册的项目注册对话框。
  • 通知中心和系统通知会集中展示 AI 代理状态变化、PR 事件和后台 Sync 事件。
  • 已关联任务的通知被点击后,会立即打开对应任务详情页。
  • 在通知列表中,Space 只将所选通知标记为已读,Enter 才会打开目标页面。
  • 进入任务详情页后,该任务的通知会自动全部标记为已读。
  • 看板卡片会以徽章显示未读通知数量,可直接在看板上确认。

AI 代理 Hooks

Agent自动状态流安装位置
Claude Code用户提示 → PROGRESS,提问 → PENDING,回复完成 → REVIEW.claude/hooks/, .claude/settings.json
Gemini CLIBeforeAgent → PROGRESS,AfterAgent → REVIEW.gemini/hooks/, .gemini/settings.json
Codex CLIUserPromptSubmit → PROGRESS,PermissionRequest → PENDING,Stop → REVIEW.codex/hooks.json, .codex/config.toml
OpenCodemessage.updated → PROGRESS,question.asked → PENDING,session.idle → REVIEW.opencode/plugins/