rengwu/chartr
GitHub: rengwu/chartr
一款带有星图可视化任务规划能力的 Agent 多路复用器,帮助开发者以地图驱动的方式编排多个 AI 编程 agent 的工作会话。
Stars: 116 | Forks: 3
# chartr
**带有工作视图的 Agent 多路复用器。**
[下载 macOS 应用](https://github.com/rengwu/chartr/releases/latest/download/chartr_darwin_arm64.dmg)
(Apple silicon,未签名)
[下载 Linux AppImage](https://github.com/rengwu/chartr/releases/latest/download/chartr_linux_amd64.AppImage)
(`amd64` 或 `arm64`)
[更多平台](https://github.com/rengwu/chartr/releases)
在 chartr 中绘制一张探路地图,然后驱动它直至完成。计划会渲染为星图;从边界(frontier)中取出一个 ticket,选择一个 agent,会话打开时,地图、ticket 及其阻碍者的答案都已经处于缓冲区中。
如果没有地图,它就是一个纯粹的多路复用器:项目位于侧边栏中,而 shell 和 agent CLI 则位于标签页中。
## 核心功能
- **无需离开即可绘制地图。** 从侧边栏启动一个规划 agent,无论它向 `.plan/maps/` 写入什么,一旦触及磁盘,就会立刻渲染为星图。
- **从边界派生(Spawn)。** 获取一个已解除阻碍的 ticket,选择一个角色和一个 agent,会话将在该 agent 自身的 TUI 中打开,并已提交完整的上下文。
- **运行任何你想要的 CLI。** 适配器只对一件事进行建模,即一个二进制程序如何接收其开场白,因此 `PATH` 中的任何内容都会被注册,并且 claude、codex、opencode、kimi、grok 和 pi 都会被自动检测到。
- **区分受阻与思考中。** 标签页状态来源于 agent 广播和绘制的内容,因此侧边栏会标记出任何正在等待你的空间。
- **磁盘上的地图即为状态。** 当 ticket 的 `## Answer` 出现时,该 ticket 即视为已解决,而 chartr 唯一的写入操作是对 ticket 文件的认领(claim)和释放(release)提交。
- **技能(Skills)即文件。** 纯粹的 `SKILL.md` 目录,你可以按仓库或按机器进行覆盖(shadow),并且你自己的可启动技能会显示在侧边栏中。
- **通过一个 TOML 配置终端。** 支持预设、21 种颜色槽位、字体、光标、内边距和快捷键。
## 安装
从[发布页面](https://github.com/rengwu/chartr/releases)获取你所属平台的压缩包并运行:
```
chartr # http://127.0.0.1:8787
chartr -addr :9000
chartr -data-dir ~/w # session root (default: cwd)
```
安装你自己的 agent CLI;chartr 本身不内置任何此类工具。
### Linux 桌面应用
下载 `chartr_linux_amd64.AppImage`(或 `arm64`),赋予其可执行权限,然后运行它:
```
chmod +x chartr_linux_amd64.AppImage
./chartr_linux_amd64.AppImage
```
无需安装,无需依赖 —— WebKitGTK 已被捆绑。它只借用必须来自你机器上的东西:GPU 驱动、你的字体配置以及你的合成器(compositor)。
在 Linux 上,也可以通过源码执行 `make appimage` 来构建。
### macOS 首次启动
该 `.dmg` 是未签名的,因此 macOS 会拦截它一次:
1. 打开 chartr,点击 **Done**(_不要_点击 **Move to Trash**)。
2. 进入 **System Settings → Privacy & Security → Security → Open Anyway**。
或者执行 `xattr -d com.apple.quarantine /Applications/chartr.app`。
### 从源码构建
需要 Go 1.26+,Node 22+。
```
make build # → bin/chartr
make check
make test
make dmg # the macOS app
```
## 文档
- [新手入门](docs/getting-started.md) — 从全新机器到第一张星图
- [设计系统](docs/design-system.md) — token、基础组件、chrome/island 风格分割
- [架构决策记录 (ADR)](docs/adr/) — 为什么它的形态会是这样
## 项目状态
**`v0.2.1` 已发布** — 从[发布页面](https://github.com/rengwu/chartr/releases)获取二进制文件。chartr 被用于构建 chartr 自身,但它仍处于 alpha 阶段:在 1.0 版本之前,其形态会发生变化,预计会有破坏性更新。
`v0.2.1` 中已发布:
- [x] 空间、标签页、活动检测
- [x] 地图:星图、派生(spawn)、认领/释放(claim/release)
- [x] 发布流水线 — 带校验和的二进制文件、macOS `.dmg`、Linux `.AppImage`
- [x] 新手入门,基于全新机器撰写
- [x] **Linux 桌面应用** — 捆绑了 WebKitGTK 的 `.AppImage`,并已针对未安装 WebKit 的主机通过了渲染检查门禁。
尚未支持:
- [ ] **Shift+Enter 作为字面换行符** — 解决方案接缝处及其测试已就绪,但该按键并未在实际终端中生效。属于功能损坏,而非缺失。
- [ ] **拖拽重排侧边栏** — 空间将保留在你放置的位置,并且随着与其冲突的最近时间排序(recency sort)一起,移除了 `pinned` 功能。
[规范](.plan/maps/sidebar-order/spec.md)。
- [ ] **“已完成”通知** — 工作时间超过可配置 _n_ 秒的会话,在停止时(无论成功、受阻还是消亡,即使控制台已关闭)会通知你。
[规范](.plan/maps/session-notifications/spec.md)。
未规划:托管服务、账号,或任何会回传数据(phone home)的内容。
## 平台支持
一个**受支持**的构建产物:无 cgo 的二进制文件,可在你的浏览器中提供控制台,在任何 tag 发布前均会在三大操作系统上亮绿灯。Linux 的 `.AppImage` 会作为发布门禁进行构建和冒烟测试,因此只要受支持的二进制文件发布,它就会同步发布。macOS 的 `.dmg` 是尽力而为的额外产物:它需要 cgo 和系统 webview 库,且可能直接缺失
([ADR 0011](docs/adr/0011-one-supported-artifact-tiered-extras.md))。
| 平台 | Binary | Desktop app |
| ------------------------- | ------ | --------------------------------------- |
| macOS `arm64` | ✅ | `.dmg`,[未签名](#macos-first-launch) |
| macOS `amd64` | ✅ | 无(cgo 无法交叉编译) |
| Linux `amd64` / `arm64` | ✅ | `.AppImage`,已捆绑 WebKitGTK |
| Windows `amd64` / `arm64` | ✅ | 无 |
Linux `.AppImage` 自带了所需的 WebKitGTK,因此它并不关心你的发行版自带的是 `webkit2gtk-4.1`、旧版的 `4.0`,还是两者皆无。每个 tag 构建时都会在一个**未安装 WebKit 和 GTK** 的容器中运行它,通过对窗口进行截图来证明控制台已渲染,而不是仅仅信任退出代码——并且这项检查会作为发布的门禁
([ADR 0011](docs/adr/0011-one-supported-artifact-tiered-extras.md))。
Windows 没有打包的应用,也没有计划提供;可以在本地使用 `make webview` 构建
([ADR 0013](docs/adr/0013-webview-shell-architecture.md))。
尽管 Windows 已被构建,并且其 ConPTY 层在每次改动时都会进行冒烟测试,但它并未被日常使用,因此 **WSL2 是最稳妥的路径**。
## 相关项目
- [herdr](https://github.com/ogulcancelik/herdr) — 启发本项目的 agent 多路复用器,在你的终端中运行,而不是在窗口中
- [wayfinder-maps](https://github.com/rengwu/wayfinder-maps) — 我的只读地图 CLI 和查看器;星图的起点
- [mattpocock/skills](https://github.com/mattpocock/skills) — 原始的 `/wayfinder` 技能以及地图侧所驱动的方法
## 演示
https://github.com/user-attachments/assets/60c335bb-5d9d-44c6-9798-654b1c70c626
**带有工作视图的 Agent 多路复用器。**
[下载 macOS 应用](https://github.com/rengwu/chartr/releases/latest/download/chartr_darwin_arm64.dmg)
(Apple silicon,未签名)
[下载 Linux AppImage](https://github.com/rengwu/chartr/releases/latest/download/chartr_linux_amd64.AppImage)
(`amd64` 或 `arm64`)
[更多平台](https://github.com/rengwu/chartr/releases)
在 chartr 中绘制一张探路地图,然后驱动它直至完成。计划会渲染为星图;从边界(frontier)中取出一个 ticket,选择一个 agent,会话打开时,地图、ticket 及其阻碍者的答案都已经处于缓冲区中。
如果没有地图,它就是一个纯粹的多路复用器:项目位于侧边栏中,而 shell 和 agent CLI 则位于标签页中。
## 核心功能
- **无需离开即可绘制地图。** 从侧边栏启动一个规划 agent,无论它向 `.plan/maps/` 写入什么,一旦触及磁盘,就会立刻渲染为星图。
- **从边界派生(Spawn)。** 获取一个已解除阻碍的 ticket,选择一个角色和一个 agent,会话将在该 agent 自身的 TUI 中打开,并已提交完整的上下文。
- **运行任何你想要的 CLI。** 适配器只对一件事进行建模,即一个二进制程序如何接收其开场白,因此 `PATH` 中的任何内容都会被注册,并且 claude、codex、opencode、kimi、grok 和 pi 都会被自动检测到。
- **区分受阻与思考中。** 标签页状态来源于 agent 广播和绘制的内容,因此侧边栏会标记出任何正在等待你的空间。
- **磁盘上的地图即为状态。** 当 ticket 的 `## Answer` 出现时,该 ticket 即视为已解决,而 chartr 唯一的写入操作是对 ticket 文件的认领(claim)和释放(release)提交。
- **技能(Skills)即文件。** 纯粹的 `SKILL.md` 目录,你可以按仓库或按机器进行覆盖(shadow),并且你自己的可启动技能会显示在侧边栏中。
- **通过一个 TOML 配置终端。** 支持预设、21 种颜色槽位、字体、光标、内边距和快捷键。
## 安装
从[发布页面](https://github.com/rengwu/chartr/releases)获取你所属平台的压缩包并运行:
```
chartr # http://127.0.0.1:8787
chartr -addr :9000
chartr -data-dir ~/w # session root (default: cwd)
```
安装你自己的 agent CLI;chartr 本身不内置任何此类工具。
### Linux 桌面应用
下载 `chartr_linux_amd64.AppImage`(或 `arm64`),赋予其可执行权限,然后运行它:
```
chmod +x chartr_linux_amd64.AppImage
./chartr_linux_amd64.AppImage
```
无需安装,无需依赖 —— WebKitGTK 已被捆绑。它只借用必须来自你机器上的东西:GPU 驱动、你的字体配置以及你的合成器(compositor)。
在 Linux 上,也可以通过源码执行 `make appimage` 来构建。
### macOS 首次启动
该 `.dmg` 是未签名的,因此 macOS 会拦截它一次:
1. 打开 chartr,点击 **Done**(_不要_点击 **Move to Trash**)。
2. 进入 **System Settings → Privacy & Security → Security → Open Anyway**。
或者执行 `xattr -d com.apple.quarantine /Applications/chartr.app`。
### 从源码构建
需要 Go 1.26+,Node 22+。
```
make build # → bin/chartr
make check
make test
make dmg # the macOS app
```
## 文档
- [新手入门](docs/getting-started.md) — 从全新机器到第一张星图
- [设计系统](docs/design-system.md) — token、基础组件、chrome/island 风格分割
- [架构决策记录 (ADR)](docs/adr/) — 为什么它的形态会是这样
## 项目状态
**`v0.2.1` 已发布** — 从[发布页面](https://github.com/rengwu/chartr/releases)获取二进制文件。chartr 被用于构建 chartr 自身,但它仍处于 alpha 阶段:在 1.0 版本之前,其形态会发生变化,预计会有破坏性更新。
`v0.2.1` 中已发布:
- [x] 空间、标签页、活动检测
- [x] 地图:星图、派生(spawn)、认领/释放(claim/release)
- [x] 发布流水线 — 带校验和的二进制文件、macOS `.dmg`、Linux `.AppImage`
- [x] 新手入门,基于全新机器撰写
- [x] **Linux 桌面应用** — 捆绑了 WebKitGTK 的 `.AppImage`,并已针对未安装 WebKit 的主机通过了渲染检查门禁。
尚未支持:
- [ ] **Shift+Enter 作为字面换行符** — 解决方案接缝处及其测试已就绪,但该按键并未在实际终端中生效。属于功能损坏,而非缺失。
- [ ] **拖拽重排侧边栏** — 空间将保留在你放置的位置,并且随着与其冲突的最近时间排序(recency sort)一起,移除了 `pinned` 功能。
[规范](.plan/maps/sidebar-order/spec.md)。
- [ ] **“已完成”通知** — 工作时间超过可配置 _n_ 秒的会话,在停止时(无论成功、受阻还是消亡,即使控制台已关闭)会通知你。
[规范](.plan/maps/session-notifications/spec.md)。
未规划:托管服务、账号,或任何会回传数据(phone home)的内容。
## 平台支持
一个**受支持**的构建产物:无 cgo 的二进制文件,可在你的浏览器中提供控制台,在任何 tag 发布前均会在三大操作系统上亮绿灯。Linux 的 `.AppImage` 会作为发布门禁进行构建和冒烟测试,因此只要受支持的二进制文件发布,它就会同步发布。macOS 的 `.dmg` 是尽力而为的额外产物:它需要 cgo 和系统 webview 库,且可能直接缺失
([ADR 0011](docs/adr/0011-one-supported-artifact-tiered-extras.md))。
| 平台 | Binary | Desktop app |
| ------------------------- | ------ | --------------------------------------- |
| macOS `arm64` | ✅ | `.dmg`,[未签名](#macos-first-launch) |
| macOS `amd64` | ✅ | 无(cgo 无法交叉编译) |
| Linux `amd64` / `arm64` | ✅ | `.AppImage`,已捆绑 WebKitGTK |
| Windows `amd64` / `arm64` | ✅ | 无 |
Linux `.AppImage` 自带了所需的 WebKitGTK,因此它并不关心你的发行版自带的是 `webkit2gtk-4.1`、旧版的 `4.0`,还是两者皆无。每个 tag 构建时都会在一个**未安装 WebKit 和 GTK** 的容器中运行它,通过对窗口进行截图来证明控制台已渲染,而不是仅仅信任退出代码——并且这项检查会作为发布的门禁
([ADR 0011](docs/adr/0011-one-supported-artifact-tiered-extras.md))。
Windows 没有打包的应用,也没有计划提供;可以在本地使用 `make webview` 构建
([ADR 0013](docs/adr/0013-webview-shell-architecture.md))。
尽管 Windows 已被构建,并且其 ConPTY 层在每次改动时都会进行冒烟测试,但它并未被日常使用,因此 **WSL2 是最稳妥的路径**。
## 相关项目
- [herdr](https://github.com/ogulcancelik/herdr) — 启发本项目的 agent 多路复用器,在你的终端中运行,而不是在窗口中
- [wayfinder-maps](https://github.com/rengwu/wayfinder-maps) — 我的只读地图 CLI 和查看器;星图的起点
- [mattpocock/skills](https://github.com/mattpocock/skills) — 原始的 `/wayfinder` 技能以及地图侧所驱动的方法
## 演示
https://github.com/user-attachments/assets/60c335bb-5d9d-44c6-9798-654b1c70c626标签:AI代理调度, EVTX分析, Python安全, SOC Prime, 任务管理, 多路复用器, 开发工具, 日志审计, 桌面应用