ai-terminal-pet:Windows 上汇总 AI 终端会话状态的置顶浮窗

前言

在 DeepSeek Harness(DSH)以及 Claude Code、OpenCode、Antigravity 等主机里,智能体经常在多个终端窗口里并行跑任务。权限确认、工具调用卡住或报错时,焦点若在另一个窗口,往往要隔很久切回去才发现构建一直空转。常见做法是手动扫一遍各个标签页,既打断专注,也容易漏掉正在等待的会话。

ai-terminal-pet 是维护者 jjjjjjjjnnjnn 提供的 Windows 客户端能力:屏幕边缘一条约 56px 高的常驻置顶条,实时汇总各终端会话状态;需要授权时条带会脉动,并显示哪个项目在等、等了多久。仓库同时包含 DSH 市场封装(dsh-ai-terminal-pet),可在 SkillHub 目录页 按插件方式接入生态。分类上目录归为「客户端」;实现无需账号、不依赖云端,核心是一个小型可执行程序(README 标明约 4.17 MiB,Go 1.23,应用版本 0.9.0,MIT 许可证)。

这是什么

一句话:ai-terminal-pet 通过命名管道接收各主机 CLI 的上报,在 Windows 桌面画出始终置顶的浮层,把多窗口里的智能体会话收成一块可读面板。

数据流(摘自 README)如下:

Host CLI (Claude Code / OpenCode / Antigravity)
       │
       ▼ (Fire-and-forget hooks)
reporters/*.js
       │
       ▼ (JSON line over Windows named pipe: \\.\pipe\ai-terminal-pet-v1-<8hex>)
AI-Terminal-Pet.exe (Go 1.23, single-instance mutex)
       │
       ├─► internal/pipeserver (32 connections, 5s timeout, OK/ERR response)
       ├─► internal/store (in-memory state, TTL, disk snapshots fallback)
       └─► internal/ui (Win32 layered window, GDI topmost canvas)

管道名中的 <8hex> 由用户主目录路径的 SHA-256 哈希导出;Go 与 JavaScript 侧算法一致,并有跨语言 golden 测试锁定。会话快照落在 %LOCALAPPDATA%\AI-Terminal-Pet\runtime\,ai-terminal-pet --json 可读磁盘快照输出结构化状态,避免阻塞 GUI 进程。

DSH 侧 package.json 将插件标为 dsh-ai-terminal-pet(清单版本 1.2.3),要求 Node ^22.19 || >=24、DSH >=0.1.0-rc.6,bundle 平台仅为 win32,能力标签包括 windows-overlay、named-pipe、session-state、tray-icon、no-network。

核心功能

下面按 README 功能表归纳,仅写已文档化的行为。

状态汇总与面板

  • 跨会话聚合七种状态:idle、thinking、working、tool_use、waiting_permission、error、closed,并以优先级最高的状态驱动紧凑条显示。
  • 紧凑面板逻辑尺寸约 56×156 像素,贴屏幕边缘;单击展开至约 200px 宽,默认展示 1–6 行会话,超出部分以 overflow 行提示。
  • 整块面板可点按切换紧凑/展开、拖动移位、滚轮在 65%–160% 间缩放;贴边时可 mostly 收离屏,悬停恢复;waiting_permission 与 error 会阻止收起来保持可见。

通知、声音与自动批准

  • 进入 waiting_permission、error 或完成态时,可触发 Windows 托盘气球通知与内存合成的 44.1 kHz 16-bit mono WAV 提示音(方案:chime、bell、soft、pulse),并在设置里分别开关等待、错误、完成。
  • 权限提示提供约 5 秒否决窗口:点击拒绝,超时无操作则自动批准;危险命令可与 denylist 匹配后拦截。

托盘、设置与会话跳转

  • 托盘右键菜单:显隐、复位位置与缩放、打开设置、切换语言、开机自启、配置 auto-approve 等。
  • 原生三页设置窗(General、Sound、Sessions),改动即时写入 config.json,无「确定」按钮。
  • 「Jump to terminal」沿会话进程链匹配窗口标题,把等待中的终端窗口或标签置前。

运行时约束

  • 单实例:命名 mutex 保证第二次启动只会激活已有浮窗。
  • 管道服务最多 32 路并发,读超时 5 秒,避免 IPC 拖住 UI 线程。
  • 会话在终端窗口仍存在时保持活跃;主机进程连续 2 分钟不可见后才移除;全部会话清空后进程约 10 分钟自行退出。

安装与启用

在 Windows 上安装本体

README 给出的流程约 30 秒,使用 PowerShell,先编译再执行仓库内安装脚本(脚本位于 scripts/,避免根目录被市场索引误扫)。

1、编译两个可执行文件:

go build -trimpath -buildvcs=false -ldflags "-s -w" -o .\bin\AI-Terminal-Pet.exe ./cmd/ai-terminal-pet
go build -trimpath -buildvcs=false -ldflags "-s -w" -o .\bin\pet-statusline.exe ./cmd/pet-statusline

2、运行安装脚本,复制二进制并同步资源:

.\scripts\install.ps1

3、按 README「Verify」小节完成校验(正文截取处未展开,以仓库当前 README 为准)。

主机侧需把 reporters/*.js 挂到对应 CLI 的 hook,使 JSON 行经命名管道送达 AI-Terminal-Pet.exe;协议为每消息一行 JSON,载荷上限 1 MiB,服务端回复 OK 或 ERR。

作为 DSH 插件

DSH 理念是「一切皆插件」;SkillHub 为社区维护的独立目录,与 DeepSeek / 幻方无官方从属关系。本仓库根 package.json 声明 marketplace shim,实际插件代码在 packages/dsh-ai-terminal-pet,通过 cordis.patch.yml 参与 bundle,仅面向 win32。

已抓取资料未给出统一的 dsh plugin add … 单行命令,安装 DSH 侧封装时请以目录页与仓库 packages/dsh-ai-terminal-pet 内说明为准,不要凭仓库名自行拼接命令。启用前确认本机 Node 与 DSH 版本满足 engines 字段。

典型用法

命令行查看会话 JSON

不依赖 GUI 阻塞时,可用 CLI 读磁盘快照:

ai-terminal-pet --json

适合脚本、状态栏或其它工具消费同一份会话记录。

日常盯盘

  • 紧凑条常驻边缘:余光可看最高优先级状态与会话数。
  • 需要细节时单击展开,查看项目名、状态、hook 来源与相对时间。
  • 权限卡住时条带脉动;可在托盘打开 auto-approve 相关选项,或在 5 秒否决窗内手动点「拒绝」。
  • 要回到对应终端时,用跳转功能把等待窗口置前,而不是手动翻找多个 tab。

适用场景与注意

适合谁: 在 Windows 上同时开多个 AI 编码终端(含 DSH、OpenCode、Claude Code、Antigravity 等),希望少切窗口、又能看到哪路在等权限或报错。

平台: 仅 Windows;DSH bundle 的 platforms 同样只有 win32。

权限与安全: DSH 插件与 DSH 进程同权限运行;安装与启用前应阅读 GitHub 源码 与 MIT 许可证,自行评估 install.ps1、开机自启(HKCU Run)及 auto-approve、denylist 是否符合你的安全策略。插件能力声明 no-network,但主机 hook 与本地管道仍处理你机器上的会话元数据。

生态定位: 社区目录当前星标为 1(截至目录线索);适用于愿意在桌面多一层本地浮窗、且能接受自行编译或按官方脚本安装的用户。

结尾

ai-terminal-pet 把分散在多个终端里的智能体会话收成一条屏幕边缘浮层,用脉动和项目名提示「谁在等你」,并支持声音、托盘与可选的权限自动批准。DSH 封装把同一能力以插件形式挂入 Harness 桌面场景。

  • 目录页:https://www.skillhub.cn/plugins/jjjjjjjjnnjnn/ai-terminal-pet
  • 源码与 README:https://github.com/jjjjjjjjnnjnn/ai-terminal-pet
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye