lichdotdev/lich has 46 GitHub stars and 6 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-09 13:48 UTC. Last push 2026-11-02.
A terminal-first ADE for the coding agents you already use: real PTYs, git worktrees, diffs and pull requests in one window
可以做什么
- Agents side by side Put sessions on a wall and lich lays out the panes for you. See at a glance which one is busy, which one is waiting on you and how much context it has left.
实测星标增长
- 24小时
- 0
- 7天
- 正在收集历史
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README.zh-CN.md
原文lich
English · Português (Brasil) · Español · 简体中文 · 日本語 · 한국어 · Русский
让编程智能体并排运行,各自在自己的分支上。
Claude Code、Codex、opencode,或者你已经在用的智能体,各自在独立的 worktree 里,全都在同一个窗口中。
下载 lich · lichdotdev.github.io/lich
功能
智能体并排运行把会话放到同一个分屏里,lich 替你排好各个面板。哪个在忙、哪个在等你、还剩多少上下文,一眼就能看出来。 |
![]() |
每个任务一个 worktree,无需准备从任意基础分支开出一个会话,lich 会复制你的 |
![]() |
审查 diff,逐行评论在会话旁边看智能体改了什么,给需要返工的行写评论,再把所有评论合成一条 prompt 发回去。 |
![]() |
指着页面,告诉代理代理在会话旁边的标签页里操作浏览器,你也在用同一个页面。指出哪里不对,在上面留下备注,再把所有备注作为一条提示发回去。 |
![]() |
不开浏览器也能处理 Pull Request创建 Pull Request,请该分支的智能体来写,直接在 diff 里审查,再合并,全程不离开这个窗口。 |
![]() |
做成你喜欢的样子可以导入 JSON 主题,也可以从 git 仓库安装。 |
![]() |
此外还有:
- 会话之间互派任务。 一个智能体把任务交给另一个会话,再拿回答案。在 shell 里用
lich命令也能做到同样的事(文档)。 - 沙箱里的智能体。 让智能体在沙箱里跳过权限确认,沙箱看不到你的密钥、凭据和其他仓库(限制)。
- 开发服务器就在侧栏。 保存项目需要一直开着的东西,一键启动或停止。
- 什么都找得到。
Ctrl/Cmd+K可以按名称或聊过的内容跳到会话。 - 需要你时会知会你。 会话在等你回复时,弹出桌面通知。
安装
curl -fsSL https://raw.githubusercontent.com/lichdotdev/lich/main/install.sh | sh
一行命令即可:脚本会识别你的发行版、校验下载内容,再通过包管理器安装 lich。
| 平台 | 获取方式 |
|---|---|
| Linux | 上面的 install.sh,或 AUR 的 lich-bin(yay -S lich-bin)。需要 zenity 和 glibc 2.34 或更高版本(Debian 12、Ubuntu 22.04、RHEL 9 及以上)。 |
| macOS | brew install --cask lichdotdev/tap/lich |
| Windows | 从 Releases 下载安装程序或便携版 zip,或用 scoop install https://github.com/lichdotdev/lich/releases/latest/download/lich.json |
macOS 和 Windows 的构建还没有签名,所以从 Releases 下载时 Gatekeeper 和 SmartScreen 会弹出警告;用 Homebrew 安装则不会触发 Gatekeeper 提示。各发行版的软件包、Linux tarball、清除隔离标记,以及从旧的 Homebrew formula 升级,见 INSTALL.md。
快速上手
- 打开项目。 标签栏里的
+会列出最近关闭的项目,并打开文件夹选择器。选一个 git 仓库即可。 - 选择智能体。 首次启动会列出在你机器上找到的智能体。设置 › 提供商里可以设置默认智能体, 以及每个可执行文件的路径。
- 开启会话。 新建会话会在项目里打开你的智能体。每个检出目录标题栏上的
+, 可以在该检出目录里打开任意智能体或普通终端。 - 给它一个 worktree (可选)。从任意基础分支创建,lich 会在其中打开一个新会话。
各智能体支持情况
每个智能体都在真实终端里运行,都能恢复对话,都能在沙箱里工作,也都能访问你的其他会话。 区别在于 lich 能从会话里读出什么,因为每个 CLI 记录的内容都不一样。
查看各智能体支持什么
| 功能 | Claude Code | Codex | Antigravity | opencode | oh-my-pi | Crush | Cursor CLI | Kiro CLI |
|---|---|---|---|---|---|---|---|---|
| 底栏显示上下文窗口 | 有 | 有 | 无 | 无 | 无 | 无 | 无 | 有 |
| 在底栏显示上一轮有多少来自提示缓存 | 有 | 有 | 无 | 在费用提示框中 | 在费用提示框中 | 无 | 无 | 无 |
| 卡片提示显示正在运行的模型,若与打开时不同也显示打开时的模型 | 有 | 有 | 无 | 无 | 无 | 无 | 无 | 有 |
| 底栏显示花费 | 有 | 有 | 无 | 有 | 有 | 有 | 无 | 按点数计 |
| 套餐剩余额度 | 有 | 有 | 有 | 仅 OpenCode Go | 无 | 无 | 有 | 无 |
| 因套餐用量上限中断的一轮,在额度重置后自动继续 | 有 | 有 | 无 | 由其自身重试 | 由其自身重试 | 无 | 无 | 无 |
| 一轮运行中显示转圈,结束时显示圆环 | 有 | 有 | 有 | 有 | 有 | 无 | 有 | 有 |
| 卡片以对话命名 | 有 | 取自你的第一条提示 | 取自你的第一条提示 | 有 | 有,从第二轮起 | 无 | 有,第一轮结束时 | 取自你的第一条提示,第一轮结束时 |
| 智能体开的 PR 在一轮结束时显示在卡片上 | 有 | 有 | 有 | 有 | 有 | 无,等窗口重新获得焦点时显示 | 有 | 有 |
| lich 在浅色和深色主题间切换时,按新主题重绘 | 有 | 无 | 无 | 有 | 有 | 无 | 有 | 无 |
| 智能体等你处理时响铃 | 有 | 有 | 无 | 有 | 无 | 无 | 无 | 无 |
| Ctrl+Shift+Y 跳到下一个等你处理的会话 | 有 | 有 | 无 | 有 | 无 | 无 | 无 | 无 |
| 对话正在压缩时,卡片上会显示 | 有 | 无 | 无 | 无 | 无 | 无 | 无 | 无 |
| 侧栏按状态筛选:等待中、运行中、未读 | 有 | 有 | 无“等待中” | 有 | 无“等待中” | 无,始终为“空闲” | 无“等待中” | 无“等待中” |
由你的智能体在另一个会话里调用(claude -p、cursor-agent -p)时,不会算到那个会话的卡片上 |
有 | 有 | 有 | 有 | 有 | 有 | 有 | 无 |
| 一轮运行时阻止机器空闲休眠 | 有 | 有 | 有 | 有 | 有 | 无 | 有 | 有 |
| “审查”标签页的 上一轮,附智能体自己的总结 | 有 | 有 | 有 | 有 | 有 | 无 | 有 | 有 |
| 在命令面板里搜索对话内容 | 有 | 有 | 有 | 有 | 有 | 有 | 无 | 有 |
| 在命令面板的“历史”标签页恢复在 lich 之外开始的对话 | 有 | 有 | 有 | 有 | 有 | Linux;macOS 和 Windows 未测试 | 有 | 有 |
| 长文本粘贴可以作为可编辑的文本出现,不折叠成占位符(设置 › 提供商,默认关闭) | 有 | 无 | 无 | 有 | 未测量 | 无,会变成 paste_N.txt 附件 |
无 | 有 |
| 把对话分叉到新的 worktree,也可以分叉到原检出目录 | 有 | 有 | 无 | 有 | 无 | 无 | 无 | 无 |
| 在智能体自己的应用里恢复另一张卡片已打开的对话时会发出警告 | 有 | 在你下一次发提示词时 | 在你下一次发提示词时,未测试 | 无 | 有 | 在它下一次调用工具时 | 无 | 有 |
| 以指定的推理强度打开会话 | 有 | 有 | 有 | 无 | 有 | 无 | 写在模型名里 | 有 |
| 以 ultracode 模式打开会话 | 有 | 无 | 无 | 无 | 无 | 无 | 无 | 无 |
| 多个账号以配置档案并存,各自独立完整登录;会话换到另一个账号后仍在同一张卡片里继续(设置 › 提供商) | 有 | 有,每个配置档案有自己的插件,“个人”的设置由所有配置档案共用 | 无 | 有,在终端卡片里登录;会话不能换到另一个配置档案,因为对话和登录信息存在同一个数据库里 | 有,在终端卡片里登录,所有配置档案共用设置 | 未测量 | Linux 和 Windows(macOS 上登录信息在钥匙串里),在终端卡片里登录,mcp.json、hooks 和 skills 由所有配置档案共用 |
仅 Linux(macOS 把登录信息放在钥匙串里,Windows 上没有办法迁移),在终端卡片里登录,对话由所有配置档案共用 |
| 主账号里信任过的文件夹,在其他配置档案里打开时都不再问“trust this folder?” | 有 | 有 | 无配置档案 | 本来就不问 | 本来就不问 | 未测量 | 有 | 本来就不问 |
| 沙箱会话打开时不问“trust this folder?” | 有 | 有 | 有 | 本来就不问 | 本来就不问 | 有,也不再问是否初始化项目 | 有 | 本来就不问 |
| 信任过的文件夹,其 worktree 打开时不问“trust this folder?” | 有 | 有 | 有 | 本来就不问 | 本来就不问 | 有,也不再问是否初始化项目 | 有 | 本来就不问 |
用 lich control 或智能体操控运行中的会话:发提示词、停止、换模型、换推理强度、斜杠命令 |
有 | 无 | 无 | 无 | 无 | 无 | 无 | 无 |
| 其他会话发来的消息直接送达,不经终端输入 | 有 | 无 | 无 | 无 | 无 | 无 | 无 | 无 |
| 智能体启动的子智能体作为 lich 会话运行:有自己的卡片,在发起会话的检出目录里工作,交回完整报告后自动关闭;子智能体再启动的子智能体也有卡片,多一层为止 | 有 | 无 | 无 | 无 | 无 | 无 | 无 | 无 |
不打断运行中的会话,顺带问它一个问题(lich ask) |
有 | 无 | 无 | 无 | 无 | 无 | 无 | 无 |
| 上下文、花费和套餐用量直接采用 CLI 自己的统计 | 有 | 无 | 无 | 无 | 无 | 无 | 无 | 无 |
| 终端状态栏显示该会话欠谁一个回复、在等谁,以及有哪些回复可以收取 | 有 | 无 | 无 | 无 | 无 | 无 | 无 | 无 |
| 从子智能体或工作流步骤私下委派任务 | 有 | 有 | 有 | 有 | 有 | 有 | 有 | 有 |
| 恢复的会话保留原来的模型和推理强度 | 仅模型 | 有 | 无 | 模型 | 有 | 无 | 模型 | 模型;推理强度未测试 |
| 中断等待后,结果仍会留着等你收取 | 有 | 有 | 有 | 有 | 无 | 有 | 有 | 有 |
| 交给另一个会话的任务,对方一轮结束却没回复时,立即报告“未回复” | 有 | 有 | 有 | 有 | 有 | 无,要等到截止时间 | 有 | 有 |
| lich 发给智能体的消息(派出的任务、结果已就绪、通知)使用你选的提示词语言 | 有 | 有 | 有 | 有 | 有 | 有 | 有 | 有 |
| 启动时用提示词语言告诉智能体,要把工作分派成 lich 会话,而不是看不见的子智能体 | 有 | 无 | 无 | 无 | 有 | 无 | 无 | 无 |
| 会话卡片在会话旁的标签页中打开一个由智能体操作的浏览器 | 有 | 有 | 有 | 有 | 有 | 有 | 有 | 有 |
每一处差异都是有意为之,每一处背后实测了什么,见 docs/ceilings.md。
配置
- 智能体。 在设置 › 提供商里设置每个智能体的可执行文件路径,以及所有项目的默认智能体;
项目也可以选自己的。没有设置路径时,lich 会运行登录 shell 的
PATH里找到的第一个可执行文件,PATH里有多个版本时lich doctor会发出警告。 - 底栏。 在设置 › 外观里拖动各项,选择底栏显示什么。花费默认隐藏,因为只有按 token 计费时 这个数字才有意义。
- Worktree。 项目里的
.worktreeinclude文件决定哪些被 gitignore 忽略的文件会被复制到新 worktree。 - 会话钩子。 在设置里安装 lich 插件后, 会话会自动给自己的卡片起标题,并在写入文件时立即刷新 git 状态。
- 脚本调用。 docs/stability.md 说明了 lich 的哪些部分可以放心用脚本调用。
隐私与更新
一切都在你的机器上运行:不需要账号,不需要登录,没有遥测。lich 只会为下面这几件事联网:
- 更新:启动时和之后每小时向 GitHub Releases 检查一次新版本,启动时还会读取 lich 插件的发布列表。
- 套餐用量:使用智能体已有的登录,查询各提供商自己的用量接口(Anthropic、OpenAI、Cursor、
OpenCode Go),最多每五分钟一次。Antigravity 的套餐信息直接从
agy读取。 - 价格:GitHub 上 LiteLLM 的公开价格表,只在内置价格表里没有某个模型时下载一次。
Windows 安装程序装的版本会原地更新;通过 Homebrew、Scoop、AUR 或 Linux 软件包安装的,
则通过对应的包管理器更新,lich 会给出要执行的命令。
出了问题?lich doctor 会检查你的环境,lich rage 会把 bug 报告打包成一个压缩文件,不会上传
任何内容。在你把日志附上去之前,设置 › 帮助会说明日志里有哪些内容(路径、项目名和分支名、
你的 gh 登录名,绝不包含会话 token)。bug 和功能需求请提交到
Issues;各版本的改动见
CHANGELOG.md。
从源码构建
lich 由两个二进制文件组成:lich 是静态的纯 Go 后端,lich-native 是窗口,在 native/
下用 cgo 构建。你需要 Go 1.27.0+ 和 Task;窗口另需 C 工具链、
Gio 的系统软件包,以及用 native/GHOSTTY_COMMIT 记录的提交构建的 libghostty-vt。
构建方法见 native/slice.sh,窗口说明见
docs/native-window.md。
task build # 后端二进制文件 -> bin/lich
task build:native # 窗口 -> bin/lich-native
task run # 构建并运行
task test # Go 测试套件
task package # bin/ 下生成 .deb + .rpm + Arch .pkg.tar.zst(需要 nfpm)
再接入一个智能体,要改两个仓库里的十几个文件:
docs/adding-a-provider.md 是完整的清单。
赞助
lich 由一个人开发和维护。你的赞助用来支付投入的时间,也让项目保持独立:这个应用没有 付费版,将来也不会有。
支持者
暂时还没有。
许可
AGPL-3.0-only © 2026 omartelo
lich 是自由软件:你可以按照 GNU Affero 通用公共许可证第 3 版的条款使用、研究、修改和 再分发它。任何分发出去或通过网络提供服务的衍生作品,都必须以同一许可证发布。v0.9.0 及更早的版本仍采用 MIT 许可证。





