Runner 是我做的一个管理 CLI agent 的开源桌面工具,之前在 V 站介绍过。可以在同一个 app 里面用 Claude Code 、Codex 等,也可以把不同的 agent 放进一个 crew 里一起做任务,通过 runner 命令互相发消息。
发布日志
在 Runner 的内部用户群中经常会有人问到 mission 和各个 agent 的 chat 应该怎样协作最好,每个人的用法和顾虑都有不同,这次借着版本发布的优化,我简单介绍下自己是如何使用这个工具,以及这次发布解决了什么问题。
之前的版本中,我主要会用一个 claude 的会话来管理多个 mission ,但是 mission 和这个会话的关系比较模糊,当 mission 变多之后容易找不到对应的标签页在什么位置。并且,之前只有在 claude 的会话中有轮询的功能,会不断轮询 mission 的状态,去回答 mission 中可能产生的问题,监督它的完成。
这次的版本更新后,侧边栏展示了 chat 和 mission 的关系,当一个 mission 是由当前的 chat 通过命令行发起时,会记录 chat 和 mission 的关系,并且在侧边栏关联起来。

同时,也可以通过在侧边栏拖拽的方式,将新建的 mission 和 chat 关联或者解绑。

在 chat 和 mission 的通讯上,也从之前的 polling 变成了由 Runner 内部做消息推送,当 mission 有问题需要回答,或者有选择需要 chat 来判断时,都会通过消息推送的机制发送到对应的 chat 会话中。这里推送的机制和 mission 内部沟通的推送机制是相同的,会检查输入框中的状态,只有在没有草稿的时候才会推送,不会影响到具体用户的输入。
![两条 [runner] 提示输入到 chat 里,Claude Code 读完 mission 后分别说明结果](https://raw.githubusercontent.com/yicheng47/runner/314286e413d12be13e22b47f5989fcfafb3af92e/assets/mission-link-reports-0.19.3.png)
这次做了一个 55 秒的 demo:一个 Claude Code chat 启动两个 Codex mission ,等它们回来汇报,再把一个别处启动的 mission 拖进来。字幕里的「对话」和「任务」就是 chat 和 mission 。
https://www.bilibili.com/video/BV1ZFxX6VEFc/
其他改动
- 终端字体:Settings → Terminal → Font family 改成了可以搜索的列表,可以选内置字体和电脑上装的任意等宽字体。之前保存的 SF Mono 、Fira Code 、Monaco 现在会按原字体加载,不再变成 Menlo 。
- 在新文件夹里开 Claude Code chat 或者 mission ,不会再卡在文件夹信任提示上。
- 用
runner role update <role> --runtime <runtime>改完 runtime ,这个 role 的 chat 不会再一启动就退出并提示 "The PTY exited with code 1"。已经受影响的 role 可以用runner role update <role> --permission <mode>修复。 - 如果 shell 启动文件把另一个 Runner 构建的
runner放到了 PATH 最前面,agent 的命令不会再发到那个构建上。 - runnerd 在第一个窗口打开时断开,Runner 不会再直接退出。关闭当前 tab 以后,新 tab 启动器也可以正常关掉了。
- Windows 上其他程序(比如杀毒软件)占用文件时,Remote access 已配对设备的信息也能保存下来。
目前支持 macOS ( Apple Silicon )、Windows x64 和 Linux ARM64 / x86_64 ( beta ),项目使用 MIT 许可证。已经装了的可以直接在应用内更新。
有问题在楼里反馈,或者到 GitHub 提 issue 都可以。
下载: https://runnersh.dev/downloads/
Repo: https://github.com/yicheng47/runner
Release:0.19.3 发布说明