OpenPets 桌面伴侣平台

一款带有宠物、插件和可选本地智能体集成的桌面伴侣平台。

OpenPets 在您的桌面上放置一个动画伴侣,然后让插件将其转变为专注伙伴、提醒系统、小游戏、启动器或编码智能体助手。

OpenPets 在多个编码智能体会话中的反应

by Boring Dystopia Development

boringdystopia.ai  X @alvinunreal  Telegram Join channel 

其他语言版本:English | 日本語 | 한국어 | 简体中文 | 繁體中文 | Português (Brasil) | Español (LatAm)

--- ## 下载 OpenPets **[下载最新的 OpenPets 桌面版本](https://github.com/alvinunreal/openpets/releases/latest)** 并启动它。宠物会立即出现;无需设置智能体。 - **桌面宠物**:在桌面上闲逛、漫游、做出反应,并防止您的工作空间显得空荡荡的动画伴侣。 - **官方插件**:专注计时器、提醒、情绪记录、小游戏、启动快捷方式、喝水提醒和虚拟宠物属性。 - **Plugin SDK v3**:用于构建全新宠物能力的沙箱化 JavaScript/TypeScript 运行时,支持权限、配额、存储、计划任务、命令、面板、事件、音频、通知等功能。 - **可选智能体层**:Claude Code、OpenCode、Cursor、Pi 和 MCP 客户端可以驱动本地的宠物反应,而无需在对话气泡中暴露提示词、代码、路径、日志或密钥。 --- ## 给 OpenPets 点亮星星 如果 OpenPets 让您的编码设置或桌面工作空间变得更有趣,请给这个仓库一个 Star。

给 OpenPets 仓库点亮星星

--- ## 用户指南:开始使用 您不需要是开发者,也不需要连接任何 AI 智能体即可享受 OpenPets。桌面应用程序开箱即用,内置官方插件系列,功能完整。 ### 1. 安装 OpenPets 桌面端 从 [OpenPets Releases](https://github.com/alvinunreal/openpets/releases/latest) 下载适用于您操作系统的安装包: - **macOS Apple Silicon**:`OpenPets-*-mac-arm64.dmg` - **macOS Intel**:`OpenPets-*-mac-x64.dmg` - **Windows**:`OpenPets-*-win-x64-setup.exe` - **Linux**:`OpenPets-*-linux-x86_64.AppImage` > 注意:当前构建版本可能未签名。如果 macOS 因安全警告阻止运行,请通过终端清除 quarantine 隔离标志: > ```bash > xattr -dr com.apple.quarantine /Applications/OpenPets.app > ``` ### 2. 管理和自定义宠物 在内置的**宠物画廊**中浏览已安装的宠物、预览其动画帧,并配置由哪个宠物来监控各个工作空间或智能体窗口。

在 OpenPets 桌面应用中管理宠物

### 3. 启用官方插件 OpenPets v3 附带了一个模块化的**官方插件目录**。您可以通过桌面控制中心启用或配置插件,以添加专注计时器、提醒和小互动游戏。 #### 内置官方插件列表 - **Day Routine**:跟踪习惯并提醒您拉伸身体或走动走动。 - **Focus Buddy**:番茄钟风格的专注计时器,用于管理工作周期。 - **Fortune Cookie**:开启随机的每日建议与智慧之言。 - **Launch Buddy**:允许注册快捷命令,以快速打开本地文件夹、项目或应用程序。 - **Magic 8 Ball**:向您的宠物提问,并获得好玩的、随机的回答。 - **Mood Check-in**:定期检查您的情绪,以支持情绪健康。 - **Reminders**:渲染可稍后提醒的铃声警报通知,并伴有自定义音效。 - **Virtual Pet**:将您的桌面伴侣变成拓麻歌子 (Tamagotchi) 风格的宠物,通过实时状态钉 (live status pin) 跟踪饥饿值、好感度和精力值。 - **Water Reminder**:通过定期且可自定义的饮水提示让您保持水分。 --- ## 插件平台与 SDK v3 OpenPets 插件系统提供了一个安全且开发者友好的 SDK (`@open-pets/plugin-sdk`),用于创建自定义伴侣行为。 ### 安全与架构 - **沙箱化运行时 (Sandboxed Runtime)**:每个 JS 插件都在沙箱化的 BrowserWindow 宿主环境中运行。 - **宿主渲染 UI (Host-Rendered UI)**:插件声明动作、HUD 和通知;桌面宿主负责渲染它们。HTML/JS 代码无法在宠物窗口内渲染原始 HTML 或执行任意脚本。 - **权限模型 (Permissions Model)**:必须在清单 (manifest) 中声明权限,并在安装时由用户批准。被标记为敏感的 API(如 `voice:listen`、`clipboard` 和 `pet:speak:dynamic`)需要用户手动开启显式同意。 - **SSRF 与私有主机防御**:网络 fetch 请求仅限于开发者声明的主机名,并防范本地 SSRF。 ### SDK 接口 (`ctx`) 插件通过 `ctx` 对象接入桌面环境,该对象暴露了: - `ctx.pets` / `ctx.pet`:管理 default 和 spawned 宠物实例:生成 (spawn)、移动、播放动画和做出反应。 - `ctx.ui`:警报、临时/固定气泡、自定义菜单、面板和状态 HUD。固定的迷你 HUD 气泡支持紧凑的 2x2 网格布局和进度条,例如 Virtual Pet 的属性统计。 - `ctx.audio`:触发宿主管理的警报音或用户导入的自定义音频。 - `ctx.schedule`:设置精准的定时器钩子(`once`、`every`、`daily`、`cron`、`at`)。 - `ctx.ai` / `ctx.secrets`:接入用户在宿主端配置的 AI 提供商(Anthropic、OpenAI、Ollama),而无需向插件源码暴露 API 密钥。 - `ctx.storage`:带有变更订阅的简单 JSON 键值存储。 - 其他 API:`events`、`assets`、`bus`、`net`(支持流式传输)、`notify`、`voice`(TTS 和按住说话 STT)、`auth`(PKCE 浏览器流程)、`files`(安全选择的系统对话框)、`system`、`commands`、`status` 和 `log`。 ### 开发者工具与命令 使用官方 CLI 创建、验证和测试插件。 #### 1. 脚手架新插件 从任何官方布局(`blank`、`reminder`、`ambient`、`ai-chat`、`tamagotchi`、`calendar`)创建模板: ```bash npx @open-pets/cli plugin new "My Plugin" --template tamagotchi ``` #### 2. 验证 在打包前验证清单布局、权限和配置模式 (schemas): ```bash npx @open-pets/cli plugin validate ./my-plugin ``` #### 3. 测试工具包 (Test harness) 无需启动桌面应用即可编写确定性的测试。使用 `@open-pets/plugin-sdk/testing` 中的 `createTestHarness`,您可以模拟宿主、推进时钟、触发动作并验证反应: ```javascript import { createTestHarness } from "@open-pets/plugin-sdk/testing"; import { register } from "./index.js"; const h = createTestHarness(register, { permissions: ["pet:speak", "schedule"] }); await h.start(); h.expectScheduled("decay"); await h.clock.advance("30m"); h.expectSpoke(/need attention/i); ``` 在您的插件项目中运行插件测试: ```bash npm test ``` --- ## 高级:智能体集成 如果您希望您的开发智能体(development agent)驱动您的桌面伴侣,OpenPets 提供了可选的本地 MCP (Model Context Protocol) 集成层。

OpenPets 桌面集成界面

### 工作原理 当您配置好智能体时,OpenPets 会暴露标准的 MCP 工具。智能体可以触发动画、更改状态并在本地显示对话气泡: 1. **Claude Code**:安装 OpenPets MCP,在 `~/.claude/CLAUDE.md` 中写入记忆指令,并在 `~/.claude/settings.json` 中配置钩子。 2. **OpenCode**:安装 OpenPets MCP、自定义项目指令文件以及 `@open-pets/opencode` 自动挂钩插件。 3. **Cursor / 其他 MCP 客户端**:将 OpenPets 注册为标准的 stdio 或 TCP MCP 服务端。

Claude Code 与 OpenPets 的集成

### MCP 服务端配置 要将 OpenPets 作为 MCP 工具运行,请将该服务端添加到您的智能体配置中: ```json { "mcpServers": { "openpets": { "type": "stdio", "command": "npx", "args": ["-y", "@open-pets/mcp@latest"] } } } ``` *提示:若要针对特定宠物,请传递 `--pet ` 参数。* ### 可用 MCP 工具 - `openpets_status`:获取目标宠物 ID 并检查运行时连接状态。 - `openpets_react`:设置宠物反应动画(例如:`thinking`、`editing`、`testing`、`success`、`error`)。 - `openpets_say`:显示一个简短的对话气泡。 ### 本地隐私与安全 - 所有自动化的反应都运行在静态的本地触发器上(例如:当运行命令或写入文件时)。 - 对话内容会经过验证,以防止泄漏敏感变量、路径、密钥或多行代码片段。 - 实时交互需要本地的发现令牌 (discovery token) 的写入/读取,以保护 IPC 桥免受外部网络触发。 --- ## 开发工作空间 用于参与 OpenPets 代码库贡献、测试更改或在本地构建桌面安装包。 ### 前提条件 - **Node.js**:20 或更高版本 - **pnpm**:11 或更高版本 - **TypeScript**:编译器支持 ### 命令 安装项目工作空间依赖项: ```bash pnpm install ``` 在本地开发模式下启动 Electron 应用程序: ```bash pnpm dev:desktop ``` 启动并加载和监控实时的官方插件: ```bash pnpm dev:desktop:plugins ``` 运行工作空间类型检查、代码规范性验证 and 测试: ```bash pnpm check pnpm typecheck pnpm test ``` 打包桌面应用程序: ```bash # 构建并打包到目标操作系统目录 pnpm package:desktop:dir # 构建并打包成最终的安装程序 / 安装包归档 pnpm package:desktop ``` ### 工作空间结构 ```text apps/desktop Electron 桌面应用程序 packages/client @open-pets/client (IPC 助手库) packages/mcp @open-pets/mcp (Model Context Protocol stdio 服务端) packages/claude @open-pets/claude (Claude 集成、记忆与钩子) packages/opencode @open-pets/opencode (OpenCode 插件与指令配置) packages/pi @open-pets/pi (Pi CLI 扩展集成) packages/agent-events 共享清理器 (sanitizers) 和事件助手包 packages/cli @open-pets/cli (用于配置和脚手架的用户入口 CLI) packages/sdk @open-pets/plugin-sdk (插件 SDK v3 声明与测试工具包) packages/pet-format @open-pets/pet-format (宠物清单和 Schema 类型) plugins/official 官方第一方插件工作空间(与宿主目录打包在一起) docs/ 技术规范与架构文档 ``` --- ## 文档 探索 `docs/` 文件夹中详细的架构和平台文档: - [`docs/plugins.md`](docs/plugins.md) - 插件平台 SDK v3 清单、权限及测试工具包。 - [`docs/claude-integration.md`](docs/claude-integration.md) - 与 Claude Code 的集成(记忆、钩子、MCP)。 - [`docs/opencode.md`](docs/opencode.md) - 与 OpenCode 工作空间的集成。 - [`docs/wsl-ipc.md`](docs/wsl-ipc.md) - 设置 WSL 到 Windows 的 TCP 桥接。 - [`docs/testing.md`](docs/testing.md) - 工作空间测试与一致性策略。 - [`docs/release.md`](docs/release.md) - 应用程序打包与发布流程。 - [`docs/workflow.md`](docs/workflow.md) - 核心开发与贡献工作流。 --- ## 安全与隐私 - **仅限本地 (Local-Only)**:OpenPets IPC 使用本地套接字/命名管道工作,并使用每次运行随机的安全令牌进行保护。 - **SSRF 安全**:插件的网络连接仅限于批准的域名,并阻止对本地网络/私有 IP 的访问。 - **动态内容净化 (Dynamic Content Sanitization)**:任何动态 AI 对话文本都会通过严格的本地过滤器,以过滤脱敏路径、URL、密钥或多行代码片段。 - **敏感权限同意**:访问剪贴板、麦克风或动态 AI 响应的功能默认关闭,需要用户显式授权。