[分享创造] Runner 0.19.3 发布:优化 chat 和 mission 协同,内有 demo 展示 runner 协作最佳实践

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 下面

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

左边把 Fix flaky retry test 拖到 Release prep 上,右边是放下以后加入分组

在 chat 和 mission 的通讯上,也从之前的 polling 变成了由 Runner 内部做消息推送,当 mission 有问题需要回答,或者有选择需要 chat 来判断时,都会通过消息推送的机制发送到对应的 chat 会话中。这里推送的机制和 mission 内部沟通的推送机制是相同的,会检查输入框中的状态,只有在没有草稿的时候才会推送,不会影响到具体用户的输入。

两条 [runner] 提示输入到 chat 里,Claude Code 读完 mission 后分别说明结果

这次做了一个 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 --runtime 改完 runtime ,这个 role 的 chat 不会再一启动就退出并提示 "The PTY exited with code 1"。已经受影响的 role 可以用 runner role update --permission 修复。
  • 如果 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

下载: https://runnersh.dev/downloads/

Repo: https://github.com/yicheng47/runner

Release:0.19.3 发布说明

参与讨论