chartr
一个友好的 AI 代理多路复用器:在带标签的终端空间里运行你的 CLI 代理,并用一张实时星图规划、跟踪你的工作。
证据显示:过去曾报告的 localhost 信任边界漏洞(跨源 WebSocket 控制、DNS rebinding、CORS 写入)已通过严格 Origin/Host 校验、owner-only 状态、验证过的构建工具链修复,并在 README 中公开致谢;CI 权限收敛为 contents:read;deb/rpm 将 WebKitGTK 交给发行版安全更新。扣分点:没有源代码或文档展示对 agent 会话操作的用户确认机制、敏感数据处理、回滚路径,以及终端/PTY 带来的实际外部副作用边界,均只能得 1。
README 与 CI 相互一致:alpha 状态、已知 bug、通知覆盖限制都被如实披露;依赖可用性方面证据充分(WebKitGTK 4.0→4.1 pin 腐化导致整版无 Linux 产物的事故促成了 linux-shell-build 门禁,ConPTY 冒烟测试作为发布门);扣分点:self_consistency 停在 2,因 'Fixed Claude spinner' 等表述无法在提供文件中核实,failure_messages 只见到对通知回退机制的文字描述而无代码佐证。
目标用户(CLI agent 重度使用者)、场景(规划→票据→会话)清楚,且 known-limits 部分极为详尽(ticket 渲染、zenity/kdialog 依赖、通知回退、Claude 状态误报),故 capability_boundaries 给 3;扣分点:trigger_precision 仅 1,因为通知准确性被自认依赖可读的 transcript,不可读 agent 回退到屏幕计时会迟到或不触发;环境覆盖中 Windows 原生 app 仍是 best-effort/未交付。
信息架构优秀(README、getting-started、CLI/source builds、ADR 目录、SECURITY.md 分工明确),安装说明覆盖 macOS/Linux 各发行版并含未签名 app 的 Gatekeeper 处理,known_limitations 详尽,MIT LICENSE 完整,故多项给 3;扣分点:naming_stability 仅 1(alpha,文件格式可能变更,无兼容承诺),examples_and_faq 仅 1(提供文件中未见具体示例),versioning_changelog 为 2(有版本号与发布说明链接但无仓库内 CHANGELOG),maintenance_responsibility 为 2(单维护者 alpha 如实声明,但无后备维护安排)。
定位为 agent 多路复用器,差异点(星图、票据上下文注入、自命名标签、状态一览)在同类工具(tmux+脚本)之上提供了真实边际价值;no-hosted-service、无遥测降低了使用成本;扣分点:所有可用性证据均为 UI 截图与文字描述,本静态审查未执行,无 token/资源消耗数据支撑 cost_benefit 的高分,故均停在中档。
多数声明可追溯:ADR 引用、致谢中的具体漏洞与 PR(#5)、CI 注释解释每个门禁存在的原因,v0.2.3 Linux 资产缺失事故被公开复盘,声明与工作流文件相互印证;扣分点:go.mod 中 go 1.26 及部分依赖伪版本(2026 时间戳)无法在本次范围内独立核实,若干 README 功能声明(自命名标签、canvas 渲染)在提供源文件中无对应代码,故各项给 2 而非 3。
- macOS 构建未签名,首次启动需手动放行;企业环境可能禁止运行。
- 对不可读 transcript 的 agent,完成通知回退到屏幕计时,可能迟到或不触发,不要依赖它作为完成信号。
- Linux 文件夹选择器依赖 zenity/kdialog,缺失时需手动输入绝对路径。
- alpha 阶段:文件格式可能变更,不建议作为关键工作流的唯一承载。
- 单维护者项目,漏洞修复无回移(back-port)承诺,升级需自行验证。
这个 Agent 能做什么,适合哪些场景?
chartr 是一个用 Rust 编写的代理多路复用器,定位为“带有工作地图的 AI 工作区”。它把终端会话组织成可以过滤和排序的空间(spaces),每个空间包含多个标签页,代理和命令以标签页形式运行。它的核心工作流是:先用代理制定计划,然后把工作绘制成一张交互式星图(star-map),再逐个工单(ticket)驱动完成——每个工单会生成一个已加载相应上下文的会话。它支持注册你已有的 CLI 代理(如 claude、codex、grok、kimi、pi)和来自本地或远程 git 仓库的技能,并提供会话状态一览、自命名标签页和系统通知。当前版本为 v0.2.4,仍处于 alpha 阶段,功能和文件格式在 1.0 前可能变化。项目明确承诺不做托管服务、不要账号、不发送遥测数据。
chartr 以桌面应用(macOS dmg、Linux AppImage/deb/rpm)加本地服务器的方式运行。你先注册已在使用的 CLI 代理和技能(本地文件夹或远程 git 仓库),然后打开一个 space,在标签页式终端会话中运行代理和命令。它读取代理的会话转录(transcript)来判定完成状态——v0.2.4 支持从 claude、codex、grok、kimi 和 pi 的转录中准确读取完成事件——并据此显示工作/空闲/等待输入状态,在会话需要你时发送系统通知。标签页利用 harness 标题或首个完成回合自动命名,可在设置中配置。你可以在交互式星图上规划任务并跟踪实时进度,从工单一键生成已加载上下文的代理会话;按 Ctrl+Shift+F 可在当前会话中搜索,拖拽可重排会话,Ctrl+C 或 /exit 会保留 shell 和回滚缓冲。终端外观和提示词可在 terminal.toml 和设置中定制,Linux 上渲染器默认 canvas 并有 DOM 回退。
- 同时运行多个 CLI 编码代理(如 Claude Code、Codex)的开发者,需要一个统一界面查看哪些会话在工作、哪些在等待输入。
- 使用“规划后逐工单执行”方法的工程师:先用代理制定计划,在星图上可视化,再逐个从工单生成带上下文的代理会话完成工作。
- 在 monorepo 或多项目环境中工作的开发者,需要按文件夹把终端会话分组为可过滤、可排序的空间。
- 希望为长期运行任务收到系统通知的用户,不必反复轮询代理是否完成。
- 想复用现有技能库的团队,可从本地文件夹或远程 git 仓库注册技能,无需迁移。
- 关注隐私、不愿使用托管服务或遥测的个人开发者。
这个 Agent 有哪些优点和局限?
- 代理无关设计:直接注册并驱动你已有的 CLI 代理(claude、codex、grok、kimi、pi),不被绑定到单一厂商。
- 星图工作流是具体差异化能力:把计划可视化为交互式地图,并从工单生成预载上下文的会话。
- 通过读取代理转录实现准确的完成通知(v0.2.4 支持 claude、codex、grok、kimi、pi),配自命名、可搜索的标签页。
- 明确的隐私立场:无托管服务、无账号、无遥测。
- 完整的多渠道 Linux 分发(AppImage、deb、rpm)及 macOS Apple silicon 构建,还有 ADR 文档说明架构决策。
- 项目仍处 alpha(v0.2.4),README 明示功能和文件格式在 1.0 前可能改变,存在迁移风险。
- 不支持 Windows 桌面应用(WebView2 版尚在开发中),这是明确的平台限制。
- Linux 上的文件夹选择器依赖 zenity 或 kdialog,缺失时只能手动输入绝对路径。
- 无法读取转录的代理会退回基于屏幕的完成计时,通知可能延迟或缺失;Claude 在等待权限提示以外的选择器时仍显示空闲。
- 已知 bug:工单详情的 Markdown 渲染不干净,点击工单引用无法打开对应工单。
如何安装或部署这个 Agent?
macOS(Apple silicon):从 https://github.com/rengwu/chartr/releases/latest/download/chartr_darwin_arm64.dmg 下载 dmg。应用未签名,首次启动若被阻止:打开 chartr 点击 Done,然后到 系统设置 → 隐私与安全性 → 安全性 点击“仍要打开”。Linux:AppImage 方式:chmod +x chartr_linux_amd64.AppImage && ./chartr_linux_amd64.AppImage(也可选 arm64,WebKitGTK 已捆绑)。Debian/Ubuntu 24.04+ 或 Debian 13+:sudo apt install ./chartr_linux_amd64.deb(使用发行版的 WebKitGTK)。Fedora:sudo dnf install ./chartr_linux_amd64.rpm。CLI 用法和源码构建见 docs/cli-and-source-builds.md。
如何使用这个 Agent?
启动应用后:1) 注册你要用的 CLI 代理和技能(来自本地文件夹或远程 git 仓库);2) 通过输入绝对路径注册一个文件夹作为 space(Linux 上若无 zenity/kdialog,文件夹选择器不可用);3) 打开 space,在标签页式会话中运行代理或命令;4) 用代理制定计划,在星图上绘制任务地图,然后从工单生成会话逐个完成——每个会话自动加载相应上下文;5) 观察状态指示(工作/空闲/等待输入),会话需要你时会收到系统通知。终端外观和提示词可在 Settings 与 terminal.toml 中定制;Ctrl+Shift+F 在当前会话中搜索。
这个 Agent 与同类方案有什么区别?
README 明确把 chartr 与 herdr(ogulcancelik/herdr)关联——herdr 是启发 chartr 的代理多路复用器,运行在终端而非窗口中。如果你想要纯终端体验可选 herdr;如果想要图形化的星图规划与工单驱动工作流,chartr 更合适。wayfinder-maps 是作者独立维护的只读地图 CLI,是 chartr 星图的起源。