用桌面宠物实时显示编码智能体状态并就地回应权限请求
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add rpegorov/agent-pet该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 17 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/31) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
- 发起网络请求plugins/dsh-agent-pet/client.js:17
const response = await fetch(url, { signal: controller.signal, cache: 'no-store' }); - 写入本地文件plugins/dsh-agent-pet/index.js:53
mkdirSync(dirname(file), { recursive: true, mode: DIR_MODE }); - 读取本地文件plugins/dsh-agent-pet/index.js:54
if (existsSync(file) && statSync(file).size > ROTATE_BYTES) renameSync(file, `${file}.1`); - 写入本地文件plugins/dsh-agent-pet/index.js:54
if (existsSync(file) && statSync(file).size > ROTATE_BYTES) renameSync(file, `${file}.1`); - 读取本地文件plugins/dsh-agent-pet/index.js:54
if (existsSync(file) && statSync(file).size > ROTATE_BYTES) renameSync(file, `${file}.1`); - 写入本地文件plugins/dsh-agent-pet/index.js:55
appendFileSync(file, `${JSON.stringify(event)}\n`, { flag: 'a', mode: FILE_MODE });
扫描于 2026/11/3(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
桌面宠物,实时显示你的编程智能体(Claude Code、Codex、DeepSeek Harness)在做什么,还能让你直接回应它们的权限提示词
README
由 DeepSeek 最新模型翻译生成agent-pet
给编码智能体用的桌面悬浮宠物。每个活跃智能体对应一个角色(Claude Code、Codex、DeepSeek Harness,或任何能执行 shell 命令的东西);她的情绪跟着智能体走,智能体请求权限时,宠物会在气泡里显示提示词,你不用切换窗口就能回答。
agent-pet 显示权限气泡
宠物只在会话正在工作、等你回应或刚刚结束时出现。一切都在本地:智能体把 JSON 行追加到文件,悬浮层读取这个文件。不经过网络,也没有账号;可选的 DSH 插件会开一个仅限回环的端口(127.0.0.1),供悬浮层的打开会话命令使用。
环境要求
- macOS 14 或更高版本
- Swift 6 工具链(Xcode 或 Command Line Tools)
- Python 3(macOS 自带;安装脚本会用到)
ChatGPT(聊天应用)没有本地插件 API,所以无法与它集成。在 ChatGPT.app 里运行的 Codex 由下面的 Codex 插件覆盖。
展开完整文档(README 剩余 1 节)
agent-pet
给编码智能体用的桌面悬浮宠物。每个活跃智能体对应一个角色(Claude Code、Codex、DeepSeek Harness,或任何能执行 shell 命令的东西);她的情绪跟着智能体走,智能体请求权限时,宠物会在气泡里显示提示词,你不用切换窗口就能回答。
agent-pet 显示权限气泡
宠物只在会话正在工作、等你回应或刚刚结束时出现。一切都在本地:智能体把 JSON 行追加到文件,悬浮层读取这个文件。不经过网络,也没有账号;可选的 DSH 插件会开一个仅限回环的端口(127.0.0.1),供悬浮层的打开会话命令使用。
环境要求
- macOS 14 或更高版本
- Swift 6 工具链(Xcode 或 Command Line Tools)
- Python 3(macOS 自带;安装脚本会用到)
ChatGPT(聊天应用)没有本地插件 API,所以无法与它集成。在 ChatGPT.app 里运行的 Codex 由下面的 Codex 插件覆盖。
安装
git clone https://github.com/rpegorov/agent-pet.git
cd agent-pet
scripts/install.sh # build, install to ~/.local/agent-pet, hook up Claude Code and Codex
scripts/install.sh --launch-agent # also start the overlay at login
install.sh 还接受 --no-claude-hooks 和 --no-codex-hooks(配合下面的插件使用),以及 --uninstall。
接入智能体
对同一个智能体,要么用插件,要么用 install.sh 的钩子,不要两者都用。两者同时启用会让每个事件投递两次、每个权限请求询问两次;事件发送端不做去重,因为它分不清哪个钩子先触发。插件只负责钩子接线,所以先跑一次 scripts/install.sh --no-claude-hooks --no-codex-hooks,装好二进制和悬浮层。
Claude Code。 install.sh 会把钩子写进 ~/.claude/settings.json。或者用插件:
/plugin marketplace add rpegorov/agent-pet
/plugin install agent-pet@agent-pet
Codex。 install.sh 会把钩子写进 ~/.codex/hooks.json,并在 ~/.codex/config.toml 里信任它们。或者用插件:
codex plugin marketplace add rpegorov/agent-pet
codex plugin add codex-agent-pet@agent-pet
用命令行安装时,Codex 不会信任插件的钩子,所以在你批准之前它们不会生效(见「疑难排查」)。走 install.sh 这条路没有这一步。
DeepSeek Harness(DSH)。 plugins/dsh-agent-pet 是独立的 DSH 插件。在配置档的 package.json 里加依赖 "dsh-agent-pet": "link:/path/to/agent-pet/plugins/dsh-agent-pet",把 "dsh-agent-pet" 加进 dsh.profile.bundles,安装,然后重启 DSH。它会汇报会话状态,并允许悬浮层在 Harness 界面里打开会话或发起聊天。
其他任何东西(脚本、任务运行器、其他智能体):
agent-pet-emit send --agent glm --session task-1 --label "refactor" --mood working
agent-pet-emit send --agent glm --session task-1 --mood complete
事件协议
agent-pet-emit 每发生一个事件,就往 ~/.agent-pet/events.jsonl 追加一行(可用 AGENT_PET_LOG 覆盖路径);浮层会跟踪这个文件。文件超过 512 KiB 后轮转为 events.jsonl.1。
{"v":1,"agent":"claude","session":"5e9d","mood":"working","label":"Bash","ts":1792276251.42}
mood 取值为 idle、working、attention、complete 或 ended(移除会话)。label 最多 40 个字符。以下字段可选,未知时省略:cwd、app(宿主应用的 bundle id)、tty、detail(权限摘要,最多 200 个字符)、permission(待处理请求的 id)。
衰减规则:working 状态 120 秒无事件即隐藏,complete 10 秒后隐藏,attention 10 分钟后隐藏,会话静默 30 分钟即丢弃。智能体的宠物显示其活跃会话中优先级最高的 mood:attention、working、complete。
权限气泡
浮层运行时,agent-pet-emit permit(PermissionRequest 钩子)会在气泡里显示待处理的工具调用,带 Deny、In agent 和 Allow 三个按钮,以及倒计时。
- 气泡显示完整的工具输入(格式化后的 JSON,上限 8 KiB)。输入被截断或无法读取时,不提供 Allow。
- In agent 把提示词交还给智能体自己的对话框。倒计时结束前无人应答(最长 40 秒,由 AGENT_PET_PERMIT_WAIT 秒数控制,默认 30),或浮层停止运行,就照常弹出原生对话框。宠物从不自动允许。
- 会向你提问的工具(AskUserQuestion、ExitPlanMode)不会变成气泡。
- 请求存放在 ~/.agent-pet/permissions/(仅所有者可访问),在应答、过期或钩子被杀掉时删除。
- 浮层自身的文案(Deny、In agent、Allow、状态标签)是英文,不做本地化;来自智能体的标签(工具名、会话标题)按原样显示。
- 要关闭气泡,退出浮层(钩子随后保持静默),或在智能体的钩子配置里把 PermissionRequest 命令从 permit 改成 hook。
隐私
agent-pet 把所有数据留在你的 Mac 上,不向网络发送任何内容。
- 写入内容。 ~/.agent-pet/events.jsonl 每个钩子事件一行:智能体名称、会话 id、mood、简短标签(工具名、会话标题或通知文本)、工作目录、宿主应用的 bundle id、终端 tty,权限请求还包含工具调用摘要(最多 200 个字符)。提示词、工具输出和文件内容不记录。
- 权限请求。 请求待处理期间,~/.agent-pet/permissions/ 保存其完整工具输入(最多 8 KiB)。请求被应答、过期或钩子被杀掉时删除该文件;超过 2 分钟的残留会被清理。
- 访问权限。 目录仅所有者可访问(0700),日志为 0600。日志在 512 KiB 时轮转,保留一份上一版文件。
- 读取内容。 浮层读取事件日志;要打开 Claude Desktop 会话时,还会读取 ~/Library/Application Support/Claude/claude-code-sessions 里的会话索引(只读)。选中 Terminal 或 iTerm2 标签页时走 AppleScript,macOS 会弹一次「自动化」权限请求。
- 系统日志。 点击和跳转记录在子系统 agent-pet 下,包含智能体、会话 id、应用和打开的 URL;不记录工具输入和路径。
- 网络。 没有对外连接。DSH 插件监听一个仅限回环的端口,只接受本地进程和 Harness web UI 发来的命令;浮层通过 127.0.0.1 与它通信。
删除 ~/.agent-pet 即可清除全部记录数据。
卸载
scripts/install.sh --uninstall
会移除二进制文件、钩子、信任条目和 LaunchAgent。留下一个空操作的 agent-pet-emit 桩,这样还开着的会话不会报「命令不存在」;重启这些会话后再删掉桩。插件用 /plugin uninstall、codex plugin remove 移除,或直接编辑 DSH 配置档。
故障排查
- 什么都没出现。 浮层在运行吗(pgrep -x AgentPet)?智能体干活时 ~/.agent-pet/events.jsonl 有增长吗?如果没有,说明钩子没装好,或者智能体是在装钩子之前启动的;重启智能体。
- Codex 插件钩子不生效。 Codex 0.163 不信任用 codex plugin add 安装的插件带来的钩子;只有加 --dangerously-bypass-hook-trust 时它们才会运行。在 Codex 里批准这些钩子(/hooks),或者改用 scripts/install.sh,它会自己写入信任条目。改过钩子命令后要重跑 install.sh:信任绑定的是命令文本。
- DSH 的改动没生效。 DSH 会缓存插件 ES 模块;安装或编辑插件后重启它。
- DSH 命令被拒绝。 插件的桥接只应答 Harness web UI 的来源(http://127.0.0.1:50306)和本地进程;从其他来源提供的 UI 读不到它的队列。
许可证
MIT。Sources/AgentPet/Resources 里的精灵图按同一许可证收录。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
rpegorov/agent-pet
用桌面宠物实时显示编码智能体状态并就地回应权限请求
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这是你的仓库?认领条目