[{"data":1,"prerenderedAt":4191},["ShallowReactive",2],{"integrations-zh-hant:index":3},[4,944,1748,2625,3240,3716,4107,4137,4164],{"id":5,"title":6,"active":7,"body":8,"description":933,"extension":377,"eyebrow":934,"icon":935,"image":936,"meta":937,"name":129,"navTitle":129,"navigation":7,"order":910,"path":938,"seo":939,"slug":328,"status":940,"stem":941,"summary":942,"toc":935,"__hash__":943},"integrations_zh/zh/integrations/claude.md","Claude Code + OpenPets",true,{"type":9,"value":10,"toc":908},"minimark",[11,113,182,345,475,693,739,814],[12,13,17,18,17,22,17,26,17,110],"section",{"id":14,"className":15},"overview",[16],"docs-section","\n  ",[19,20,21],"h2",{"id":21},"此集成的功能",[23,24,25],"p",{},"\n    Claude Code 集成将 Claude 连接到你的 OpenPets 桌面伴侣。它有一个基本安装路径，以及两个你可以在之后检查或自定义的高级层。\n  ",[27,28,31,32,17],"div",{"className":29},[30],"docs-table-wrap","\n    ",[33,34,35,36,35,53,31],"table",{},"\n      ",[37,38,39,40,35],"thead",{},"\n        ",[41,42,43,47,50],"tr",{},[44,45,46],"th",{},"组成部分",[44,48,49],{},"是否必需？",[44,51,52],{},"为 Claude 提供的功能",[54,55,39,56,39,85,39,97,35],"tbody",{},[41,57,58,59,58,66,58,69,39],{},"\n          ",[60,61,62],"td",{},[63,64,65],"strong",{},"MCP server",[60,67,68],{},"是",[60,70,71,72,76,77,80,81,84],{},"名为 ",[73,74,75],"code",{},"openpets_status","、",[73,78,79],{},"openpets_react"," 和 ",[73,82,83],{},"openpets_say"," 的工具。",[41,86,58,87,58,92,58,94,39],{},[60,88,89],{},[63,90,91],{},"指令 / 提示词引导",[60,93,68],{},[60,95,96],{},"告知 Claude 何时使用 OpenPets，以及哪些内容绝不能出现在可见的宠物消息中。",[41,98,58,99,58,104,58,107,39],{},[60,100,101],{},[63,102,103],{},"Hooks",[60,105,106],{},"可选",[60,108,109],{},"由 Claude 生命周期事件触发的自动反应，即使 Claude 未调用 MCP 工具时也能生效。",[23,111,112],{},"\n    所有运行时通信均在本地进行。Claude 启动 OpenPets 相关包，这些包通过本地 IPC 与 OpenPets 桌面应用通信，桌面应用负责管理宠物窗口。如果 OpenPets 已关闭，Claude Code 仍可正常运行；宠物更新属于尽力而为的反馈。\n  ",[12,114,17,117,17,120,17,135,17,150,17,175],{"id":115,"className":116},"quick-install",[16],[19,118,119],{"id":119},"快速安装",[23,121,122,123,126,127,130,131,134],{},"\n    在 OpenPets 桌面应用中，打开 ",[63,124,125],{},"Integrations","，使用 ",[63,128,129],{},"Claude Code"," 卡片。此卡片适用于普通用户流程：点击 ",[63,132,133],{},"Install","，如果 Claude Code 已打开则重启它，Claude 即可开始使用 OpenPets MCP 工具。\n  ",[136,137,31,140,31,146,17],"figure",{"className":138},[139],"docs-screenshot",[141,142],"img",{"src":143,"alt":144,"loading":145},"/docs/claude-integrations-grid.png","OpenPets 集成窗口，显示已安装的 Claude Code 卡片和其他编辑器集成卡片。","lazy",[147,148,149],"figcaption",{},"集成网格是简单的设置视图。Install 负责处理 Claude MCP 连接和托管指令；Configure 则打开高级详情。",[151,152,31,153,31,163,31,169,17],"ul",{},[154,155,156,158,159,162],"li",{},[63,157,133],{}," 会添加名为 ",[73,160,161],{},"openpets"," 的 Claude MCP server，并更新 OpenPets Claude 指令。",[154,164,165,168],{},[63,166,167],{},"Configure"," 会打开高级 MCP、指令、hook、宠物路由和命令检测控制面板。",[154,170,171,174],{},[63,172,173],{},"Installed"," 表示 Claude 已有 OpenPets MCP 连接。",[23,176,177,178,181],{},"\n    快速安装",[63,179,180],{},"不会","安装 hooks。Hooks 是有意分开的，因为它们会修改 Claude Code 的 hook 设置，并为 Claude 事件添加自动反应。\n  ",[12,183,17,186,17,190,17,196,17,206,17,262,17,265,17,286,17,289,17,306,17,310],{"id":184,"className":185},"mcp-connection",[16],[19,187,189],{"id":188},"mcp-连接","MCP 连接",[23,191,192,193,195],{},"\n    MCP 是 Claude 与 OpenPets 之间的主要桥梁。OpenPets 注册一个名为 ",[73,194,161],{}," 的 Claude MCP server。Claude 加载后，即可在想要在桌面宠物上显示状态时调用一套小型安全工具集。\n  ",[136,197,31,199,31,203,17],{"className":198},[139],[141,200],{"src":201,"alt":202,"loading":145},"/docs/claude-connection-advanced.png","Claude Code 详情页，显示连接状态、宠物路由、高级检测、替换和删除操作，以及高级 MCP 详情部分。",[147,204,205],{},"MCP 连接卡片显示 Claude 检测、宠物路由、替换/删除控制，以及高级 MCP 命令和 JSON 预览。",[27,207,31,209,17],{"className":208},[30],[33,210,35,211,35,224,31],{},[37,212,39,213,35],{},[41,214,215,218,221],{},[44,216,217],{},"工具",[44,219,220],{},"用途",[44,222,223],{},"Claude 应在何时使用",[54,225,39,226,39,238,39,250,35],{},[41,227,58,228,58,232,58,235,39],{},[60,229,230],{},[73,231,75],{},[60,233,234],{},"检查 OpenPets 桌面应用是否可达，以及当前目标宠物是哪个。",[60,236,237],{},"在使用 OpenPets 之前，或在调试设置时。",[41,239,58,240,58,244,58,247,39],{},[60,241,242],{},[73,243,79],{},[60,245,246],{},"在不显示文本的情况下更改宠物反应。",[60,248,249],{},"用于静默状态变化，如思考、编辑、测试、等待、成功或错误。",[41,251,58,252,58,256,58,259,39],{},[60,253,254],{},[73,255,83],{},[60,257,258],{},"显示一条简短的可见对话气泡。",[60,260,261],{},"用于有意义的进度通知、阻塞提示、完成通知或审核交接。",[23,263,264],{},"\n    在打包的桌面构建版本中，高级 MCP JSON 预览使用应用内置的 OpenPets MCP server：\n  ",[27,266,31,269,31,280,17],{"className":267},[268],"docs-code",[27,270,273,277],{"className":271},[272],"docs-code-bar",[274,275,276],"span",{},"Claude MCP JSON 预览",[274,278,279],{},"json",[281,282,283],"pre",{},[73,284,285],{},"{\n  \"mcpServers\": {\n    \"openpets\": {\n      \"type\": \"stdio\",\n      \"command\": \"node\",\n      \"args\": [\n        \"/Applications/OpenPets.app/Contents/Resources/app.asar.unpacked/node_modules/@open-pets/mcp/dist/index.js\"\n      ]\n    }\n  }\n}",[23,287,288],{},"\n    在已发布包模式下，命令更简短，使用 npm：\n  ",[27,290,31,292,31,301,17],{"className":291},[268],[27,293,295,298],{"className":294},[272],[274,296,297],{},"已发布命令",[274,299,300],{},"bash",[281,302,303],{},[73,304,305],{},"claude mcp add --scope user openpets -- npx -y @open-pets/mcp@latest --pet \u003Cpet-id>",[307,308,309],"h3",{"id":309},"自定义建议",[151,311,31,312,31,323,31,333,31,342,17],{},[154,313,314,315,318,319,322],{},"在 ",[63,316,317],{},"Pet routing"," 中选择特定宠物，以附加 ",[73,320,321],{},"--pet \u003Cpet-id>","。",[154,324,325,326,329,330,322],{},"如果 ",[73,327,328],{},"claude"," 命令不在 PATH 中，使用 ",[63,331,332],{},"Advanced detection",[154,334,335,336,338,339,322],{},"仅当你希望 OpenPets 重新创建自定义 ",[73,337,161],{}," MCP 条目时，才使用 ",[63,340,341],{},"Replace configuration",[154,343,344],{},"如果你想精确审核 Claude 将运行的内容，使用 JSON 预览。",[12,346,17,349,17,353,17,356,17,367,17,383,17,398,17,401,17,458,17,461],{"id":347,"className":348},"instructions-prompt",[16],[19,350,352],{"id":351},"claude-指令-提示词引导","Claude 指令 / 提示词引导",[23,354,355],{},"\n    MCP 为 Claude 提供工具。指令则告诉 Claude 如何使用这些工具，同时避免将私有上下文泄露到可见的桌面气泡中。这也是基本安装会写入托管 OpenPets 指令文件的原因。\n  ",[23,357,358,359,362,363,366],{},"\n    OpenPets 将其引导内容写入 ",[73,360,361],{},"~/.claude/openpets.md","，并向 ",[73,364,365],{},"~/.claude/CLAUDE.md"," 添加一个托管导入。现有 Claude 指令会被保留。\n  ",[27,368,31,370,31,378,17],{"className":369},[268],[27,371,373,375],{"className":372},[272],[274,374,365],{},[274,376,377],{},"md",[281,379,380],{},[73,381,382],{},"\u003C!-- OPENPETS:IMPORT:START -->\n@~/.claude/openpets.md\n\u003C!-- OPENPETS:IMPORT:END -->",[27,384,31,386,31,393],{"className":385},[268],[27,387,389,391],{"className":388},[272],[274,390,361],{},[274,392,377],{},[281,394,395],{},[73,396,397],{},"\u003C!-- OPENPETS:START -->\n## OpenPets\nOpenPets MCP tools may be available.\nUse OpenPets as a short visible status channel for meaningful coding progress:\n    - Use `openpets_say` when starting, completing, blocking, or needing review on non-trivial work.\n    - Keep messages brief, user-facing, and non-sensitive.\n    - Do not include code, logs, secrets, URLs, or file paths.\n    - Use `openpets_react` for small visual or emotional feedback.\n    - Use `openpets_status` only when checking availability or the targeted pet.\n    - Do not spam every internal step.\n\u003C!-- OPENPETS:END -->",[307,399,400],{"id":400},"消息风格",[27,402,31,404,17],{"className":403},[30],[33,405,35,406,35,416,31],{},[37,407,39,408,35],{},[41,409,410,413],{},[44,411,412],{},"良好的宠物消息",[44,414,415],{},"应避免的内容",[54,417,39,418,39,428,39,438,39,448,35],{},[41,419,420,425],{},[60,421,422],{},[73,423,424],{},"Checking the next step.",[60,426,427],{},"私有文件路径或仓库结构。",[41,429,430,435],{},[60,431,432],{},[73,433,434],{},"Tests are running.",[60,436,437],{},"原始命令输出或日志。",[41,439,440,445],{},[60,441,442],{},[73,443,444],{},"Waiting for approval.",[60,446,447],{},"用户提示词、密钥、令牌或 URL。",[41,449,450,455],{},[60,451,452],{},[73,453,454],{},"Ready with the result.",[60,456,457],{},"代码片段或完整的错误堆栈。",[307,459,309],{"id":460},"自定义建议-1",[151,462,31,463,31,469,31,472,17],{},[154,464,314,465,468],{},[73,466,467],{},"CLAUDE.md"," 中的 OpenPets 托管块之外添加你自己的团队风格规则。",[154,470,471],{},"将 OpenPets 块专注于隐私保护和简短状态消息。",[154,473,474],{},"如果以后移除 OpenPets，托管导入和托管块可以被干净地删除。",[12,476,17,479,17,483,17,486,17,496,17,650,17,657,17,673,17,676],{"id":477,"className":478},"hooks",[16],[19,480,482],{"id":481},"可选的-claude-hooks","可选的 Claude Hooks",[23,484,485],{},"\n    Hooks 是可选的自动化功能。它们让 Claude 生命周期事件能触发宠物反应，无需 Claude 显式调用 MCP 工具。仅在你希望宠物在 Claude 工作时自动响应的情况下安装。\n  ",[136,487,31,489,31,493,17],{"className":488},[139],[141,490],{"src":491,"alt":492,"loading":145},"/docs/claude-instructions-hooks.png","Claude Code 详情页，显示已包含的 Claude 指令卡片和可选的 Claude hooks 卡片。",[147,494,495],{},"Hooks 卡片与基本安装是分开的。它负责安装、检查、移除以及预览 Claude hook JSON。",[27,497,31,499,17],{"className":498},[30],[33,500,35,501,35,517,31],{},[37,502,39,503,35],{},[41,504,505,508,511,514],{},[44,506,507],{},"Claude 事件",[44,509,510],{},"触发时机",[44,512,513],{},"宠物反应",[44,515,516],{},"语音",[54,518,39,519,39,537,39,564,39,583,39,601,39,615,39,632,35],{},[41,520,521,526,529,534],{},[60,522,523],{},[73,524,525],{},"UserPromptSubmit",[60,527,528],{},"用户提交提示词时。",[60,530,531],{},[73,532,533],{},"thinking",[60,535,536],{},"无",[41,538,539,544,557,562],{},[60,540,541],{},[73,542,543],{},"PreToolUse",[60,545,546,76,549,552,553,556],{},[73,547,548],{},"Edit",[73,550,551],{},"Write"," 或 ",[73,554,555],{},"MultiEdit"," 时。",[60,558,559],{},[73,560,561],{},"editing",[60,563,536],{},[41,565,566,570,576,581],{},[60,567,568],{},[73,569,543],{},[60,571,572,575],{},[73,573,574],{},"Bash"," 命令看起来像测试命令时。",[60,577,578],{},[73,579,580],{},"testing",[60,582,536],{},[41,584,585,590,593,598],{},[60,586,587],{},[73,588,589],{},"PermissionRequest",[60,591,592],{},"Claude 请求审批时。",[60,594,595],{},[73,596,597],{},"waiting",[60,599,600],{},"简短审批消息",[41,602,603,608,611,613],{},[60,604,605],{},[73,606,607],{},"Notification",[60,609,610],{},"Claude 发出通知时。",[60,612,536],{},[60,614,536],{},[41,616,617,622,625,630],{},[60,618,619],{},[73,620,621],{},"Stop",[60,623,624],{},"Claude 完成响应时。",[60,626,627],{},[73,628,629],{},"success",[60,631,536],{},[41,633,634,639,642,647],{},[60,635,636],{},[73,637,638],{},"StopFailure",[60,640,641],{},"Claude 终止失败时。",[60,643,644],{},[73,645,646],{},"error",[60,648,649],{},"简短错误消息",[23,651,652,653,656],{},"\n    Hook 命令标记有 ",[73,654,655],{},"--openpets-managed","。OpenPets 使用该标记来仅更新或删除自己的 hooks，而不影响与 OpenPets 无关的 Claude Code hooks。\n  ",[27,658,31,660,31,668,17],{"className":659},[268],[27,661,663,666],{"className":662},[272],[274,664,665],{},"Hooks JSON 预览",[274,667,279],{},[281,669,670],{},[73,671,672],{},"{\n  \"hooks\": {\n    \"UserPromptSubmit\": [\n      {\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"node /Applications/OpenPets.app/Contents/Resources/app.asar.unpacked/node_modules/@open-pets/claude/dist/cli.js hook --openpets-managed\",\n            \"timeout\": 3,\n            \"async\": true,\n            \"asyncRewake\": false\n          }\n        ]\n      }\n    ],\n    \"PreToolUse\": [\n      {\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"node /Applications/OpenPets.app/Contents/Resources/app.asar.unpacked/node_modules/@open-pets/claude/dist/cli.js hook --openpets-managed\",\n            \"timeout\": 3,\n            \"async\": true,\n            \"asyncRewake\": false\n          }\n        ]\n      }\n    ],\n    \"PermissionRequest\": [\n      {\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"node /Applications/OpenPets.app/Contents/Resources/app.asar.unpacked/node_modules/@open-pets/claude/dist/cli.js hook --openpets-managed\",\n            \"timeout\": 3,\n            \"async\": true,\n            \"asyncRewake\": false\n          }\n        ]\n      }\n    ],\n    \"Notification\": [\n      {\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"node /Applications/OpenPets.app/Contents/Resources/app.asar.unpacked/node_modules/@open-pets/claude/dist/cli.js hook --openpets-managed\",\n            \"timeout\": 3,\n            \"async\": true,\n            \"asyncRewake\": false\n          }\n        ]\n      }\n    ],\n    \"Stop\": [\n      {\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"node /Applications/OpenPets.app/Contents/Resources/app.asar.unpacked/node_modules/@open-pets/claude/dist/cli.js hook --openpets-managed\",\n            \"timeout\": 3,\n            \"async\": true,\n            \"asyncRewake\": false\n          }\n        ]\n      }\n    ],\n    \"StopFailure\": [\n      {\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"node /Applications/OpenPets.app/Contents/Resources/app.asar.unpacked/node_modules/@open-pets/claude/dist/cli.js hook --openpets-managed\",\n            \"timeout\": 3,\n            \"async\": true,\n            \"asyncRewake\": false\n          }\n        ]\n      }\n    ]\n  }\n}",[307,674,309],{"id":675},"自定义建议-2",[151,677,31,678,31,681,31,684,31,687,17],{},[154,679,680],{},"如果你希望每个 Claude 会话都有环境感知反应，使用 hooks。",[154,682,683],{},"如果你只希望 Claude 通过 MCP 工具有意识地使用 OpenPets，则跳过 hooks。",[154,685,686],{},"在安装 hooks 之前先在路由中选择宠物，这样 hook 事件才会指向特定的伴侣。",[154,688,689,690,322],{},"在更新 Claude Code 或移动 OpenPets 应用后，运行 ",[63,691,692],{},"Check hooks",[12,694,17,697,17,700,17,706,17,723],{"id":695,"className":696},"pet-targeting",[16],[19,698,699],{"id":699},"宠物路由与自定义",[23,701,702,703,705],{},"\n    未选择宠物时，Claude 会指向 OpenPets 的默认宠物。选择宠物后，OpenPets 会在 MCP 和 hook 命令中添加 ",[73,704,321],{},"，使 Claude 指向该伴侣。\n  ",[27,707,31,709,31,718,17],{"className":708},[268],[27,710,712,715],{"className":711},[272],[274,713,714],{},"运行时路径",[274,716,717],{},"text",[281,719,720],{},[73,721,722],{},"Claude Code\n  -> OpenPets MCP server or Claude hook CLI\n  -> @open-pets/client\n  -> OpenPets desktop local IPC\n  -> default pet or selected agent pet",[151,724,31,725,31,728,31,733,31,736,17],{},[154,726,727],{},"未选择宠物：MCP 工具和 hooks 指向桌面默认宠物。",[154,729,730,731,322],{},"已选择宠物：命令中包含 ",[73,732,321],{},[154,734,735],{},"显式宠物会话使用短租约，代理宠物可自动清理。",[154,737,738],{},"如果请求的宠物缺失或不可用，OpenPets 会安全回退，而不会中断 Claude。",[12,740,17,743,17,746,17,749],{"id":741,"className":742},"safety",[16],[19,744,745],{"id":745},"安全性与行为",[23,747,748],{},"\n    OpenPets 专为可见状态而设计，而非私有对话输出。它保持消息简短，避免敏感内容，并使 hook 失败不阻塞主流程。\n  ",[27,750,31,752,17],{"className":751},[30],[33,753,35,754,35,764,31],{},[37,755,756],{},[41,757,758,761],{},[44,759,760],{},"保护机制",[44,762,763],{},"行为说明",[54,765,39,766,39,774,39,782,39,790,39,798,39,806,35],{},[41,767,768,771],{},[60,769,770],{},"托管指令",[60,772,773],{},"告知 Claude 避免在宠物语音中包含代码、日志、URL、文件路径、密钥和用户提示词。",[41,775,776,779],{},[60,777,778],{},"语音验证",[60,780,781],{},"在不安全文本到达桌面宠物之前予以拒绝。",[41,783,784,787],{},[60,785,786],{},"Hook 标准输出",[60,788,789],{},"Hook 命令保持静默，避免 Claude 意外摄入上下文。",[41,791,792,795],{},[60,793,794],{},"Hook 错误",[60,796,797],{},"默认忽略，确保宠物问题不会中断 Claude 会话。",[41,799,800,803],{},[60,801,802],{},"冷却机制",[60,804,805],{},"重复的 hook 语音和反应会被节流，避免刷屏。",[41,807,808,811],{},[60,809,810],{},"安全写入",[60,812,813],{},"OpenPets 在编辑 Claude 文件之前，会拒绝不安全的符号链接或非常规文件目标。",[12,815,17,818,17,821,17,825,17,859,17,863,17,872,17,876,17,892,17,895],{"id":816,"className":817},"troubleshooting",[16],[19,819,820],{"id":820},"故障排查",[307,822,824],{"id":823},"claude-未显示-openpets-工具","Claude 未显示 OpenPets 工具",[151,826,31,827,31,830,31,836,31,843,31,853,17],{},[154,828,829],{},"安装或替换 MCP 配置后重启 Claude Code。",[154,831,832,833,322],{},"打开 Claude 详情页，点击 ",[63,834,835],{},"Refresh",[154,837,838,839,842],{},"在终端运行 ",[73,840,841],{},"claude --version"," 确认 Claude 可用。",[154,844,845,846,80,849,852],{},"使用 ",[73,847,848],{},"claude mcp list",[73,850,851],{},"claude mcp get openpets"," 检查条目。",[154,854,855,856,858],{},"如果 Claude 安装在自定义位置，请在 ",[63,857,332],{}," 下添加完整路径。",[307,860,862],{"id":861},"openpets-提示-mcp-条目为自定义","OpenPets 提示 MCP 条目为自定义",[23,864,865,866,868,869,871],{},"\n    自定义条目意味着 Claude 已有一个名为 ",[73,867,161],{}," 的 server，但其命令与当前 OpenPets 推荐不完全匹配。OpenPets 不会主动修改它。仅当你希望桌面应用重新创建该条目时，才选择 ",[63,870,341],{},"。\n  ",[307,873,875],{"id":874},"宠物对-hooks-没有反应","宠物对 hooks 没有反应",[151,877,31,878,31,881,31,884,31,889,17],{},[154,879,880],{},"确认 OpenPets 桌面应用正在运行。",[154,882,883],{},"确认已从可选的 Claude hooks 卡片安装了 hooks。",[154,885,886,887,322],{},"检查 hook 命令中是否包含 ",[73,888,655],{},[154,890,891],{},"请记住，大多数 hook 事件仅有反应，故意不显示语音。",[307,893,894],{"id":894},"移除或重置所有内容",[23,896,897,898,901,902,904,905,871],{},"\n    使用 ",[63,899,900],{},"Remove integration"," 移除名为 ",[73,903,161],{}," 的 Claude MCP server 和 OpenPets 托管的 Claude 指令。如果你安装了可选的 hooks，请单独使用 ",[63,906,907],{},"Remove hooks",{"title":909,"searchDepth":910,"depth":910,"links":911},"",2,[912,913,914,918,922,925,926,927],{"id":21,"depth":910,"text":21},{"id":119,"depth":910,"text":119},{"id":188,"depth":910,"text":189,"children":915},[916],{"id":309,"depth":917,"text":309},3,{"id":351,"depth":910,"text":352,"children":919},[920,921],{"id":400,"depth":917,"text":400},{"id":460,"depth":917,"text":309},{"id":481,"depth":910,"text":482,"children":923},[924],{"id":675,"depth":917,"text":309},{"id":699,"depth":910,"text":699},{"id":745,"depth":910,"text":745},{"id":820,"depth":910,"text":820,"children":928},[929,930,931,932],{"id":823,"depth":917,"text":824},{"id":861,"depth":917,"text":862},{"id":874,"depth":917,"text":875},{"id":894,"depth":917,"text":894},"安装并了解 OpenPets 的 Claude Code 集成，包括 MCP 设置、Claude 指令、可选 hooks、宠物路由以及高级 JSON 预览。","伴侣集成",null,"/claudecode.png",{},"/zh/integrations/claude",{"title":6,"description":933},"已支持","zh/integrations/claude","通过一键 MCP 设置、托管指令、宠物路由和可选生命周期 hooks，将 Claude Code 连接到 OpenPets。","JXUlUoQWjXRD4agY2_mHjOTXtRyKbgxigel5m4uFV_k",{"id":945,"title":946,"active":7,"body":947,"description":1739,"extension":377,"eyebrow":1740,"icon":935,"image":1741,"meta":1742,"name":1037,"navTitle":1037,"navigation":7,"order":917,"path":1743,"seo":1744,"slug":1144,"status":940,"stem":1745,"summary":1746,"toc":935,"__hash__":1747},"integrations_zh/zh/integrations/opencode.md","OpenCode + OpenPets",{"type":9,"value":948,"toc":1717},[949,1026,1073,1183,1261,1344,1481,1549,1586,1657],[12,950,17,952,17,954,17,957,17,1019],{"id":14,"className":951},[16],[19,953,21],{"id":21},[23,955,956],{},"\n    OpenCode 集成将 OpenCode 的活动连接到你的 OpenPets 桌面伴侣。它由两部分组成：一个用于自动反应的 OpenCode 插件，以及一个用于主动调用 OpenPets 工具的 MCP server。\n  ",[27,958,31,960,17],{"className":959},[30],[33,961,35,962,35,974,31],{},[37,963,39,964,35],{},[41,965,966,968,971],{},[44,967,46],{},[44,969,970],{},"功能说明",[44,972,973],{},"重要性",[54,975,39,976,39,989,39,1007,35],{},[41,977,58,978,58,983,58,986,39],{},[60,979,980],{},[63,981,982],{},"OpenCode 插件",[60,984,985],{},"监听 OpenCode 活动，将有用的事件映射为宠物反应。",[60,987,988],{},"宠物可以自动呈现思考、编辑、测试、等待、成功或错误状态。",[41,990,58,991,58,995,58,998,39],{},[60,992,993],{},[63,994,65],{},[60,996,997],{},"向 OpenCode 注册 OpenPets MCP 工具。",[60,999,1000,1001,76,1003,80,1005,322],{},"OpenCode 可以主动调用 ",[73,1002,75],{},[73,1004,79],{},[73,1006,83],{},[41,1008,58,1009,58,1013,58,1016,39],{},[60,1010,1011],{},[63,1012,770],{},[60,1014,1015],{},"为 OpenPets 使用添加简短的安全引导。",[60,1017,1018],{},"OpenCode 知道要保持可见宠物消息简短且无敏感内容。",[23,1020,1021,1022,1025],{},"\n    运行时控制在本地进行。OpenCode 加载 OpenPets 插件或 MCP 命令，这些包使用 ",[73,1023,1024],{},"@open-pets/client","，客户端通过本地 IPC 与 OpenPets 桌面应用通信并更新宠物窗口。\n  ",[12,1027,17,1029,17,1031,17,1045,17,1055,17,1070],{"id":115,"className":1028},[16],[19,1030,119],{"id":119},[23,1032,122,1033,126,1035,1038,1039,1041,1042,1044],{},[63,1034,125],{},[63,1036,1037],{},"OpenCode"," 卡片。该卡片是针对单台机器的简单设置路径：点击 ",[63,1040,133],{}," 写入全局 OpenCode 设置，或点击 ",[63,1043,167],{}," 先查看详情。\n  ",[136,1046,31,1048,31,1052,17],{"className":1047},[139],[141,1049],{"src":1050,"alt":1051,"loading":145},"/docs/opencode-integrations-grid.png","OpenPets 集成窗口，显示准备安装的 OpenCode 卡片。",[147,1053,1054],{},"集成网格。OpenCode 已激活并准备就绪；Install 开始全局设置，Configure 则打开详细设置面板。",[151,1056,31,1057,31,1062,31,1067,17],{},[154,1058,1059,1061],{},[63,1060,133],{}," 为插件、MCP server 和 OpenPets 指令写入全局 OpenCode 配置。",[154,1063,1064,1066],{},[63,1065,167],{}," 打开详细的全局设置页面，包含宠物路由、命令检测、安装/移除、刷新和配置预览。",[154,1068,1069],{},"设置更改后重启 OpenCode，以加载插件和 MCP 配置。",[23,1071,1072],{},"\n    桌面设置是全局的，可能影响该机器上的每个 OpenCode 项目。如需针对特定仓库的设置，请改用项目本地 CLI 命令。\n  ",[12,1074,17,1077,17,1080,17,1083,17,1093,17,1160,17,1167,17,1169],{"id":1075,"className":1076},"global-setup",[16],[19,1078,1079],{"id":1079},"全局桌面设置",[23,1081,1082],{},"\n    OpenCode 详情面板仅管理全局设置。它会检测 OpenCode，显示 OpenPets 全局配置是否已安装，允许你选择宠物，并在写入前预览 JSON。\n  ",[136,1084,31,1086,31,1090,17],{"className":1085},[139],[141,1087],{"src":1088,"alt":1089,"loading":145},"/docs/opencode-global-setup.png","OpenCode 设置详情页，显示全局设置状态、宠物路由、高级检测、安装和移除按钮，以及配置预览。",[147,1091,1092],{},"全局设置面板。在安装前使用它检查目标配置文件、所选宠物、命令路径和 JSON 预览。",[27,1094,31,1096,17],{"className":1095},[30],[33,1097,35,1098,35,1110,31],{},[37,1099,39,1100,35],{},[41,1101,1102,1105,1107],{},[44,1103,1104],{},"面板区域",[44,1106,220],{},[44,1108,1109],{},"修改内容",[54,1111,39,1112,39,1123,39,1134,39,1149,35],{},[41,1113,58,1114,58,1117,58,1120,39],{},[60,1115,1116],{},"全局连接",[60,1118,1119],{},"显示 OpenCode 是否被检测到，以及全局 OpenPets 设置的状态：已安装、就绪、自定义、冲突或错误。",[60,1121,1122],{},"读取 OpenCode 命令状态和全局 OpenCode 配置文件。",[41,1124,58,1125,58,1128,58,1131,39],{},[60,1126,1127],{},"宠物路由",[60,1129,1130],{},"选择 OpenCode 应指向的已安装宠物。",[60,1132,1133],{},"将宠物 ID 添加到插件选项和 MCP 命令中。",[41,1135,58,1136,58,1139,58,1146,39],{},[60,1137,1138],{},"高级检测",[60,1140,1141,1142,1145],{},"当 ",[73,1143,1144],{},"opencode"," 不在 PATH 中时，允许你保存完整的 OpenCode 命令路径。",[60,1147,1148],{},"用于检测和设置检查。",[41,1150,58,1151,58,1154,58,1157,39],{},[60,1152,1153],{},"预览",[60,1155,1156],{},"显示配置文件、指令文件、清理路径和 JSON 预览。",[60,1158,1159],{},"允许你在安装前审核计划中的全局配置。",[23,1161,1162,1163,1166],{},"\n    除非 ",[73,1164,1165],{},"@open-pets/opencode"," 已被缓存或在本地安装，否则 OpenCode 可能需要 npm 或网络访问来加载已发布的插件。\n  ",[307,1168,309],{"id":309},[151,1170,31,1171,31,1174,31,1177,31,1180,17],{},[154,1172,1173],{},"当你希望 OpenPets 在每个 OpenCode 项目中都可用时，使用全局设置。",[154,1175,1176],{},"在安装前选择宠物，这样所有全局 OpenCode 活动都会指向同一个伴侣。",[154,1178,1179],{},"使用配置预览确认将要写入的具体文件。",[154,1181,1182],{},"如果你的 OpenCode 二进制文件安装在非标准 PATH 位置，使用命令路径字段。",[12,1184,17,1187,17,1190,17,1193,17,1209,17,1258],{"id":1185,"className":1186},"project-local-setup",[16],[19,1188,1189],{"id":1189},"项目本地设置",[23,1191,1192],{},"\n    当仓库需要拥有自己的 OpenPets 配置时，项目本地设置是更好的选择。它将插件配置和指令保存在项目中，使不同的仓库可以指向不同的宠物或策略。\n  ",[27,1194,31,1196,31,1204,17],{"className":1195},[268],[27,1197,1199,1202],{"className":1198},[272],[274,1200,1201],{},"项目设置",[274,1203,300],{},[281,1205,1206],{},[73,1207,1208],{},"npx -y @open-pets/cli@latest configure --agent opencode --pet \u003Cpet-id> --cwd .",[27,1210,31,1212,17],{"className":1211},[30],[33,1213,35,1214,35,1227,31],{},[37,1215,39,1216,35],{},[41,1217,1218,1221,1224],{},[44,1219,1220],{},"设置方式",[44,1222,1223],{},"适合场景",[44,1225,1226],{},"文件位置",[54,1228,39,1229,39,1242,35],{},[41,1230,58,1231,58,1233,58,1236,39],{},[60,1232,1079],{},[60,1234,1235],{},"个人机器范围的 OpenCode 设置。",[60,1237,1238,1239,322],{},"OpenCode 配置目录，例如 ",[73,1240,1241],{},"~/.config/opencode/",[41,1243,58,1244,58,1247,58,1250,39],{},[60,1245,1246],{},"项目本地 CLI 设置",[60,1248,1249],{},"需要明确携带 OpenPets 设置的仓库。",[60,1251,1252,80,1255,322],{},[73,1253,1254],{},".opencode/opencode.jsonc",[73,1256,1257],{},".opencode/openpets.md",[23,1259,1260],{},"\n    如果同时存在全局设置和项目设置，请优先使用项目本地配置处理仓库特定行为，全局设置仅作为默认值。\n  ",[12,1262,17,1265,17,1268,17,1271,17,1275,17,1278,17,1293,17,1302,17,1306,17,1309,17,1324,17,1326],{"id":1263,"className":1264},"managed-config",[16],[19,1266,1267],{"id":1267},"托管配置与指令",[23,1269,1270],{},"\n    OpenPets 使用托管标记或可预测的配置结构写入插件、MCP 和指令条目。在可能的情况下使用 JSONC 感知编辑，以保留现有注释和尾随逗号。\n  ",[307,1272,1274],{"id":1273},"opencode-配置","OpenCode 配置",[23,1276,1277],{},"\n    项目本地配置通过 OpenPets CLI 加载 OpenPets 插件并启动 OpenPets MCP server。已发布的设置会固定其写入的 OpenPets 包版本。\n  ",[27,1279,31,1281,31,1288,17],{"className":1280},[268],[27,1282,1284,1286],{"className":1283},[272],[274,1285,1254],{},[274,1287,279],{},[281,1289,1290],{},[73,1291,1292],{},"{\n  \"plugin\": [[\"@open-pets/opencode@\u003Cversion>\", { \"pet\": \"\u003Cpet-id>\" }]],\n  \"mcp\": {\n    \"openpets\": {\n      \"type\": \"local\",\n      \"command\": [\n        \"npx\",\n        \"-y\",\n        \"@open-pets/cli@\u003Cversion>\",\n        \"mcp\",\n        \"--pet\",\n        \"\u003Cpet-id>\"\n      ],\n      \"enabled\": true\n    }\n  }\n}",[23,1294,1295,1296,1298,1299,871],{},"\n    npm 插件包为 ",[73,1297,1165],{},"。该包导出的运行时插件 ID 为 ",[73,1300,1301],{},"open-pets-opencode",[307,1303,1305],{"id":1304},"openpets-指令","OpenPets 指令",[23,1307,1308],{},"\n    OpenPets 会写入一个小型指令文件，使 OpenCode 能安全且有节制地使用可见宠物消息。请将你自己的备注添加到托管块之外。\n  ",[27,1310,31,1312,31,1319,17],{"className":1311},[268],[27,1313,1315,1317],{"className":1314},[272],[274,1316,1257],{},[274,1318,377],{},[281,1320,1321],{},[73,1322,1323],{},"\u003C!-- OPENPETS:START -->\n## OpenPets\nOpenPets MCP tools may be available.\nUse OpenPets as a short visible status channel for meaningful coding progress:\n- Use openpets_say only for brief, user-facing, non-sensitive status updates.\n- Do not include code, logs, secrets, URLs, file paths, prompts, or private data.\n- Use openpets_react for small visual progress changes.\n- Use openpets_status only when checking availability or the targeted pet.\n- Do not spam every internal step.\n\u003C!-- OPENPETS:END -->",[307,1325,309],{"id":460},[151,1327,31,1328,31,1331,31,1338,17],{},[154,1329,1330],{},"在 OpenPets 托管块之外添加项目特定的 OpenCode 规则。",[154,1332,1333,1334,1337],{},"通过使用不同的 ",[73,1335,1336],{},"--pet"," 重新运行设置，为每个仓库固定一个宠物。",[154,1339,1340,1341,322],{},"仅当你有意刷新 OpenPets 托管条目时，才使用 ",[73,1342,1343],{},"--force",[12,1345,17,1348,17,1351,17,1354,17,1478],{"id":1346,"className":1347},"plugin-events",[16],[19,1349,1350],{"id":1350},"插件事件反应",[23,1352,1353],{},"\n    插件监听 OpenCode 事件，并将有意义的时刻转化为宠物反应。它会忽略 OpenPets MCP 工具调用，避免宠物对自身状态更新产生反应。\n  ",[27,1355,31,1357,17],{"className":1356},[30],[33,1358,35,1359,35,1374,31],{},[37,1360,39,1361,35],{},[41,1362,1363,1366,1369,1372],{},[44,1364,1365],{},"OpenCode 事件",[44,1367,1368],{},"触发条件",[44,1370,1371],{},"反应",[44,1373,516],{},[54,1375,39,1376,39,1392,39,1408,39,1423,39,1442,39,1459,35],{},[41,1377,1378,1383,1386,1390],{},[60,1379,1380],{},[73,1381,1382],{},"chat.message",[60,1384,1385],{},"任意聊天消息。",[60,1387,1388],{},[73,1389,533],{},[60,1391,536],{},[41,1393,1394,1399,1402,1406],{},[60,1395,1396],{},[73,1397,1398],{},"tool.execute.before",[60,1400,1401],{},"工具名称包含 edit、write、patch 或 apply_patch。",[60,1403,1404],{},[73,1405,561],{},[60,1407,536],{},[41,1409,1410,1414,1417,1421],{},[60,1411,1412],{},[73,1413,1398],{},[60,1415,1416],{},"类 shell 工具且参数看起来像测试命令。",[60,1418,1419],{},[73,1420,580],{},[60,1422,536],{},[41,1424,1425,1430,1433,1437],{},[60,1426,1427],{},[73,1428,1429],{},"permission.asked",[60,1431,1432],{},"非 OpenPets 工具的权限请求。",[60,1434,1435],{},[73,1436,597],{},[60,1438,1439],{},[73,1440,1441],{},"Approval needed",[41,1443,1444,1449,1452,1456],{},[60,1445,1446],{},[73,1447,1448],{},"session.error",[60,1450,1451],{},"OpenCode 会话错误。",[60,1453,1454],{},[73,1455,646],{},[60,1457,1458],{},"简短错误池消息",[41,1460,1461,1466,1472,1476],{},[60,1462,1463],{},[73,1464,1465],{},"session.status",[60,1467,1468,1469,322],{},"状态变为 ",[73,1470,1471],{},"idle",[60,1473,1474],{},[73,1475,629],{},[60,1477,536],{},[23,1479,1480],{},"\n    Shell/测试检测是有意设计为粗粒度的。工具参数仅用于分类反应，不会被复制到对话气泡中。\n  ",[12,1482,17,1485,17,1489,17,1492,17,1546],{"id":1483,"className":1484},"mcp-tools",[16],[19,1486,1488],{"id":1487},"mcp-工具","MCP 工具",[23,1490,1491],{},"\n    MCP server 为 OpenCode 提供了一种主动与 OpenPets 通信的方式。当 OpenCode 需要有意地显示状态（而非仅响应生命周期事件）时使用 MCP。\n  ",[27,1493,31,1495,17],{"className":1494},[30],[33,1496,35,1497,35,1508,31],{},[37,1498,39,1499,35],{},[41,1500,1501,1503,1505],{},[44,1502,217],{},[44,1504,220],{},[44,1506,1507],{},"适用场景",[54,1509,39,1510,39,1522,39,1534,35],{},[41,1511,1512,1516,1519],{},[60,1513,1514],{},[73,1515,75],{},[60,1517,1518],{},"检查桌面可达性和目标宠物。",[60,1520,1521],{},"设置检查和调试。",[41,1523,1524,1528,1531],{},[60,1525,1526],{},[73,1527,79],{},[60,1529,1530],{},"在不显示语音的情况下更改反应。",[60,1532,1533],{},"静默进度状态。",[41,1535,1536,1540,1543],{},[60,1537,1538],{},[73,1539,83],{},[60,1541,1542],{},"显示一条简短的安全消息。",[60,1544,1545],{},"有意义的进度通知、阻塞提示、完成或审核交接。",[23,1547,1548],{},"\n    保持语音简短且无敏感内容。不要在宠物气泡中放入代码、日志、文件路径、命令输出、提示词、URL、令牌或私有数据。\n  ",[12,1550,17,1552,17,1554,17,1557,17,1572],{"id":695,"className":1551},[16],[19,1553,1127],{"id":1127},[23,1555,1556],{},"\n    如果未配置宠物，OpenCode 事件会指向桌面默认宠物。如果配置了宠物 ID，插件和 MCP 命令会指向该宠物。\n  ",[27,1558,31,1560,31,1567,17],{"className":1559},[268],[27,1561,1563,1565],{"className":1562},[272],[274,1564,714],{},[274,1566,717],{},[281,1568,1569],{},[73,1570,1571],{},"OpenCode\n  -> OpenPets plugin or OpenPets MCP tools\n  -> @open-pets/client\n  -> OpenPets desktop local IPC\n  -> default pet or selected agent pet",[151,1573,31,1574,31,1577,31,1580,31,1583,17],{},[154,1575,1576],{},"未配置宠物：使用桌面默认宠物。",[154,1578,1579],{},"已配置已安装的宠物：使用显式代理宠物租约。",[154,1581,1582],{},"宠物缺失、无效或损坏：回退到默认宠物。",[154,1584,1585],{},"租约关闭或到期：最后一个租约结束后，代理宠物窗口关闭。",[12,1587,17,1589,17,1591,17,1594],{"id":741,"className":1588},[16],[19,1590,745],{"id":745},[23,1592,1593],{},"\n    OpenCode 集成采用即发即忘模式。如果 OpenPets 已关闭，它不应拖慢 OpenCode 或改变 OpenCode 的行为。\n  ",[27,1595,31,1597,17],{"className":1596},[30],[33,1598,35,1599,35,1607,31],{},[37,1600,1601],{},[41,1602,1603,1605],{},[44,1604,760],{},[44,1606,763],{},[54,1608,39,1609,39,1617,39,1625,39,1633,39,1641,39,1649,35],{},[41,1610,1611,1614],{},[60,1612,1613],{},"反馈循环",[60,1615,1616],{},"OpenPets MCP 工具调用被插件事件映射器忽略。",[41,1618,1619,1622],{},[60,1620,1621],{},"语音冷却",[60,1623,1624],{},"普通语音和错误语音均受节流限制。",[41,1626,1627,1630],{},[60,1628,1629],{},"权限语音",[60,1631,1632],{},"权限消息有其自己的更短冷却时间。",[41,1634,1635,1638],{},[60,1636,1637],{},"重复反应",[60,1639,1640],{},"相同的反应会被短暂抑制，避免刷屏。",[41,1642,1643,1646],{},[60,1644,1645],{},"调试日志",[60,1647,1648],{},"路径和类密钥值会被脱敏处理。",[41,1650,1651,1654],{},[60,1652,1653],{},"配置编辑",[60,1655,1656],{},"原子写入、备份、权限检查、符号链接拒绝和大小限制。",[12,1658,17,1660,17,1662,17,1666,17,1682,17,1685,17,1695,17,1698,17,1701],{"id":816,"className":1659},[16],[19,1661,820],{"id":820},[307,1663,1665],{"id":1664},"opencode-没有反应","OpenCode 没有反应",[151,1667,31,1668,31,1670,31,1673,31,1676,17],{},[154,1669,880],{},[154,1671,1672],{},"更改插件或 MCP 配置后重启 OpenCode。",[154,1674,1675],{},"检查你的全局或项目 OpenCode 配置中是否包含 OpenPets 插件和 MCP server。",[154,1677,1678,1679,1681],{},"使用桌面详情页的 ",[63,1680,835],{}," 操作重新检查全局设置。",[307,1683,1684],{"id":1684},"状态显示自定义或冲突",[23,1686,1687,1688,80,1691,1694],{},"\n    在强制更新前先检查 OpenCode 配置。将你自己的备注保留在 ",[73,1689,1690],{},"OPENPETS:START",[73,1692,1693],{},"OPENPETS:END"," 之外，这样 OpenPets 才能安全刷新其托管块。\n  ",[307,1696,1697],{"id":1697},"出现了错误的宠物",[23,1699,1700],{},"\n    使用你想要的宠物 ID 重新运行设置。如果该宠物未安装、无效或损坏，桌面应用会回退到默认宠物。\n  ",[27,1702,31,1704,31,1712,17],{"className":1703},[268],[27,1705,1707,1710],{"className":1706},[272],[274,1708,1709],{},"刷新项目设置",[274,1711,300],{},[281,1713,1714],{},[73,1715,1716],{},"npx -y @open-pets/cli@latest configure --agent opencode --pet \u003Cpet-id> --cwd . --force",{"title":909,"searchDepth":910,"depth":910,"links":1718},[1719,1720,1721,1724,1725,1730,1731,1732,1733,1734],{"id":21,"depth":910,"text":21},{"id":119,"depth":910,"text":119},{"id":1079,"depth":910,"text":1079,"children":1722},[1723],{"id":309,"depth":917,"text":309},{"id":1189,"depth":910,"text":1189},{"id":1267,"depth":910,"text":1267,"children":1726},[1727,1728,1729],{"id":1273,"depth":917,"text":1274},{"id":1304,"depth":917,"text":1305},{"id":460,"depth":917,"text":309},{"id":1350,"depth":910,"text":1350},{"id":1487,"depth":910,"text":1488},{"id":1127,"depth":910,"text":1127},{"id":745,"depth":910,"text":745},{"id":820,"depth":910,"text":820,"children":1735},[1736,1737,1738],{"id":1664,"depth":917,"text":1665},{"id":1684,"depth":917,"text":1684},{"id":1697,"depth":917,"text":1697},"通过 OpenPets 插件、MCP 工具、全局桌面设置、项目本地设置、宠物路由以及安全托管指令，将 OpenCode 连接到 OpenPets。","伴侣插件","/opencode.png",{},"/zh/integrations/opencode",{"title":946,"description":1739},"zh/integrations/opencode","通过 OpenPets 插件、MCP 工具、全局设置和项目本地配置，将 OpenCode 连接到 OpenPets。","L3NpN-NkR9mnap1_2XuE2nZOvChNp4Aza2_s3CQQPlI",{"id":1749,"title":1750,"active":7,"body":1751,"description":2614,"extension":377,"eyebrow":2615,"icon":935,"image":2616,"meta":2617,"name":1850,"navTitle":1850,"navigation":7,"order":2618,"path":2619,"seo":2620,"slug":2621,"status":940,"stem":2622,"summary":2623,"toc":935,"__hash__":2624},"integrations_zh/zh/integrations/cursor.md","Cursor + OpenPets",{"type":9,"value":1752,"toc":2588},[1753,1839,1883,2070,2226,2283,2325,2391,2499,2574],[12,1754,17,1756,17,1758,17,1761,17,1830],{"id":14,"className":1755},[16],[19,1757,21],{"id":21},[23,1759,1760],{},"\n    Cursor 集成为 Cursor 提供 OpenPets MCP 工具，以及一个可选的简短项目规则，用来告诉 Cursor 何时使用这些工具。它包含一个 MCP 层和一个可选的规则层；你可以只安装其中一个，或两个都安装。\n  ",[27,1762,31,1764,17],{"className":1763},[30],[33,1765,35,1766,35,1777,31],{},[37,1767,39,1768,35],{},[41,1769,1770,1772,1774],{},[44,1771,46],{},[44,1773,49],{},[44,1775,1776],{},"为 Cursor 提供的功能",[54,1778,39,1779,39,1801,39,1817,35],{},[41,1780,58,1781,58,1785,58,1787,39],{},[60,1782,1783],{},[63,1784,65],{},[60,1786,68],{},[60,1788,1789,1790,1793,1794,76,1796,80,1798,1800],{},"通过 ",[73,1791,1792],{},"@open-pets/mcp"," 提供 ",[73,1795,75],{},[73,1797,79],{},[73,1799,83],{}," 工具。",[41,1802,58,1803,58,1808,58,1810,39],{},[60,1804,1805],{},[63,1806,1807],{},"项目规则",[60,1809,106],{},[60,1811,1812,1813,1816],{},"一个简短的 ",[73,1814,1815],{},".mdc"," 规则，告诉 Cursor 何时使用 OpenPets 工具，以及哪些内容绝不能出现在宠物消息中。",[41,1818,58,1819,58,1824,58,1827,39],{},[60,1820,1821],{},[63,1822,1823],{},"Hooks / 生命周期反应",[60,1825,1826],{},"暂未支持",[60,1828,1829],{},"环境感知的 Cursor hooks 是未来阶段，在验证完成之前有意暂不写入。",[23,1831,1832,1833,1835,1836,1838],{},"\n    运行时控制在本地进行。Cursor 以 stdio MCP server 的形式启动 ",[73,1834,1792],{},"，server 使用 ",[73,1837,1024],{},"，客户端通过本地 IPC 与运行中的 OpenPets 桌面应用通信。如果 OpenPets 已关闭，Cursor 仍可正常工作；宠物更新属于尽力而为的反馈。\n  ",[12,1840,17,1842,17,1844,17,1859,17,1880],{"id":115,"className":1841},[16],[19,1843,119],{"id":119},[23,1845,122,1846,126,1848,1851,1852,1855,1856,1858],{},[63,1847,125],{},[63,1849,1850],{},"Cursor"," 卡片。",[63,1853,1854],{},"Install global setup"," 为当前用户写入全局 Cursor MCP 条目，",[63,1857,167],{}," 打开详情面板，包含宠物路由、JSON 预览和移除操作。\n  ",[151,1860,31,1861,31,1872,31,1877,17],{},[154,1862,1863,1865,1866,1868,1869,322],{},[63,1864,1854],{}," 将 ",[73,1867,161],{}," MCP server 添加到 ",[73,1870,1871],{},"~/.cursor/mcp.json",[154,1873,1874,1876],{},[63,1875,167],{}," 打开高级状态、宠物路由、项目规则预览和移除控制。",[154,1878,1879],{},"如果 OpenPets 工具未立即出现，请重启 Cursor、重载窗口或开启一个新对话。",[23,1881,1882],{},"\n    桌面设置是全局的，会影响该机器上的每个 Cursor 项目。若需要按仓库进行设置，或要添加项目规则，请使用下方的 CLI 命令。\n  ",[12,1884,17,1886,17,1888,17,1894,17,1942,17,1946,17,1955,17,1996,17,2000,17,2016,17,2029,17,2033,17,2049,17,2065],{"id":184,"className":1885},[16],[19,1887,189],{"id":188},[23,1889,1890,1891,1893],{},"\n    MCP 是 Cursor 与 OpenPets 之间的主要桥梁。OpenPets 只会写入一个名为 ",[73,1892,161],{}," 的 MCP 条目；Cursor 配置中无关的 MCP server 与顶层字段都会被保留。\n  ",[27,1895,31,1897,17],{"className":1896},[30],[33,1898,35,1899,35,1910,31],{},[37,1900,39,1901,35],{},[41,1902,1903,1905,1907],{},[44,1904,217],{},[44,1906,220],{},[44,1908,1909],{},"Cursor 应在何时使用",[54,1911,39,1912,39,1922,39,1932,35],{},[41,1913,58,1914,58,1918,58,1920,39],{},[60,1915,1916],{},[73,1917,75],{},[60,1919,234],{},[60,1921,237],{},[41,1923,58,1924,58,1928,58,1930,39],{},[60,1925,1926],{},[73,1927,79],{},[60,1929,246],{},[60,1931,249],{},[41,1933,58,1934,58,1938,58,1940,39],{},[60,1935,1936],{},[73,1937,83],{},[60,1939,258],{},[60,1941,261],{},[307,1943,1945],{"id":1944},"全局-mcp-与项目-mcp-配置","全局 MCP 与项目 MCP 配置",[23,1947,1948,1949,1951,1952,1954],{},"\n    Cursor 会合并全局和项目 MCP 配置。当两者都定义了 ",[73,1950,161],{}," server 时，项目条目在该工作区中优先生效。OpenPets 始终使用 ",[73,1953,161],{}," 这个 server 名称，因此你可以按仓库覆盖全局默认设置。\n  ",[27,1956,31,1958,17],{"className":1957},[30],[33,1959,35,1960,35,1971,31],{},[37,1961,39,1962,35],{},[41,1963,1964,1966,1968],{},[44,1965,1220],{},[44,1967,1507],{},[44,1969,1970],{},"文件",[54,1972,39,1973,39,1984,35],{},[41,1974,58,1975,58,1977,58,1980,39],{},[60,1976,1079],{},[60,1978,1979],{},"个人机器上全局可用的 Cursor 设置。",[60,1981,1982],{},[73,1983,1871],{},[41,1985,58,1986,58,1988,58,1991,39],{},[60,1987,1246],{},[60,1989,1990],{},"需要显式携带 OpenPets 设置的仓库。",[60,1992,1993],{},[73,1994,1995],{},"\u003Cproject>/.cursor/mcp.json",[307,1997,1999],{"id":1998},"预期的-mcp-条目","预期的 MCP 条目",[27,2001,31,2003,31,2011,17],{"className":2002},[268],[27,2004,2006,2009],{"className":2005},[272],[274,2007,2008],{},"~/.cursor/mcp.json 或 \u003Cproject>/.cursor/mcp.json",[274,2010,279],{},[281,2012,2013],{},[73,2014,2015],{},"{\n  \"mcpServers\": {\n    \"openpets\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@open-pets/mcp@latest\", \"--pet\", \"\u003Cpet-id>\"]\n    }\n  }\n}",[23,2017,2018,2019,2021,2022,2024,2025,2028],{},"\n    若未选择宠物，则会省略 ",[73,2020,321],{},"，OpenPets 会路由到桌面默认宠物。OpenPets 在写入条目时会固定具体的 ",[73,2023,1792],{}," 版本；上面的 ",[73,2026,2027],{},"@latest"," 仅为手动配置时易读的等价写法。\n  ",[307,2030,2032],{"id":2031},"使用-cli-进行项目设置","使用 CLI 进行项目设置",[27,2034,31,2036,31,2044,17],{"className":2035},[268],[27,2037,2039,2042],{"className":2038},[272],[274,2040,2041],{},"仅项目 MCP",[274,2043,300],{},[281,2045,2046],{},[73,2047,2048],{},"npx -y @open-pets/cli@latest configure --agent cursor --pet \u003Cpet-id>",[27,2050,31,2052,31,2060,17],{"className":2051},[268],[27,2053,2055,2058],{"className":2054},[272],[274,2056,2057],{},"从其他目录配置项目 MCP",[274,2059,300],{},[281,2061,2062],{},[73,2063,2064],{},"npx -y @open-pets/cli@latest configure --agent cursor --cwd /path/to/project --pet \u003Cpet-id>",[23,2066,31,2067,2069],{},[73,2068,1336],{}," 是可选的。若未提供，CLI 可能会通过运行中的桌面应用从已安装的宠物中提示选择。\n  ",[12,2071,17,2074,17,2077,17,2080,17,2096,17,2112,17,2128,17,2138,17,2154,17,2157,2215],{"id":2072,"className":2073},"project-rules",[16],[19,2075,2076],{"id":2076},"可选项目规则",[23,2078,2079],{},"\n    Cursor 规则是提示词引导，而不是生命周期 hooks。OpenPets 的规则告诉 Cursor 何时以及如何安全地使用 MCP 工具。规则是可选的且仅在项目本地生效；OpenPets 不会修改 Cursor 的用户或全局规则设置。\n  ",[27,2081,31,2083,31,2091,17],{"className":2082},[268],[27,2084,2086,2089],{"className":2085},[272],[274,2087,2088],{},"仅安装或更新项目规则",[274,2090,300],{},[281,2092,2093],{},[73,2094,2095],{},"npx -y @open-pets/cli@latest configure --agent cursor --rules-only",[27,2097,31,2099,31,2107,17],{"className":2098},[268],[27,2100,2102,2105],{"className":2101},[272],[274,2103,2104],{},"同时安装 MCP 和规则",[274,2106,300],{},[281,2108,2109],{},[73,2110,2111],{},"npx -y @open-pets/cli@latest configure --agent cursor --pet \u003Cpet-id> --with-rules",[27,2113,31,2115,31,2123,17],{"className":2114},[268],[27,2116,2118,2121],{"className":2117},[272],[274,2119,2120],{},"仅移除托管规则",[274,2122,300],{},[281,2124,2125],{},[73,2126,2127],{},"npx -y @open-pets/cli@latest configure --agent cursor --remove-rules",[23,2129,31,2130,2133,2134,2137],{},[73,2131,2132],{},"--rules-only"," 与 ",[73,2135,2136],{},"--remove-rules"," 不需要选择宠物，也不需要 OpenPets 桌面应用处于运行状态。规则文件会被写入：\n  ",[27,2139,31,2141,31,2149,17],{"className":2140},[268],[27,2142,2144,2147],{"className":2143},[272],[274,2145,2146],{},"规则路径",[274,2148,717],{},[281,2150,2151],{},[73,2152,2153],{},"\u003Cproject>/.cursor/rules/openpets.mdc",[307,2155,2156],{"id":2156},"规则内容",[27,2158,31,2160,31,2169],{"className":2159},[268],[27,2161,2163,2166],{"className":2162},[272],[274,2164,2165],{},".cursor/rules/openpets.mdc",[274,2167,2168],{},"mdc",[281,2170,2171,2185],{},[73,2172,2173,2174,2177,2182],{},"---\ndescription: Use OpenPets MCP tools for lightweight coding-status feedback.\n---\n",[23,2175,2176],{},"\u003C!-- OPENPETS:CURSOR_RULES:START -->",[2178,2179,2181],"h1",{"id":2180},"openpets-status-feedback","OpenPets status feedback",[23,2183,2184],{},"You may use the OpenPets MCP tools as a brief, safe status channel during meaningful coding work.",[151,2186,2187,2210],{},[73,2188,2189,2195,2201,2204,2207],{},[154,2190,2191,2192,2194],{},"Use ",[73,2193,83],{}," sparingly for major milestones, blocking states, completion, or when review is needed.",[154,2196,2197,2198,2200],{},"Prefer ",[73,2199,79],{}," over speech for lightweight progress such as thinking, working, testing, success, or error.",[154,2202,2203],{},"Keep messages short, user-facing, and safe.",[154,2205,2206],{},"Do not send prompts, tool input/output, code, logs, stack traces, credentials, private file contents, URLs, file paths, or other sensitive content through OpenPets.",[154,2208,2209],{},"Do not spam every internal step; use OpenPets only for meaningful progress changes and continue normally if a status update is unnecessary.",[154,2211,2212],{},[73,2213,2214],{},"If OpenPets is unavailable, continue the coding task without failing.\n\u003C!-- OPENPETS:CURSOR_RULES:END -->",[23,2216,2217,2218,2221,2222,2225],{},"\n  OpenPets 有意",[63,2219,2220],{},"不","设置 ",[73,2223,2224],{},"alwaysApply: true","，让规则默认不会出现在每个提示词中。当工作区打开时，Cursor 会包含该规则；规则变化后可能需要开启新对话才能被采纳。\n",[12,2227,17,2230,17,2234,17,2245,17,2261],{"id":2228,"className":2229},"force-and-conflicts",[16],[19,2231,2233],{"id":2232},"强制覆盖冲突与备份","强制覆盖、冲突与备份",[23,2235,2236,2237,552,2241,2244],{},"\n    OpenPets 默认不会覆盖未知的用户内容。当 MCP 条目或规则文件与 OpenPets 管理的内容不一致时，状态会显示为 ",[2238,2239,2240],"em",{},"custom",[2238,2242,2243],{},"conflict","，除非你明确选择覆盖，否则不会被改写。\n  ",[27,2246,31,2248,31,2256,17],{"className":2247},[268],[27,2249,2251,2254],{"className":2250},[272],[274,2252,2253],{},"强制替换，按范围执行",[274,2255,300],{},[281,2257,2258],{},[73,2259,2260],{},"npx -y @open-pets/cli@latest configure --agent cursor --rules-only --force\nnpx -y @open-pets/cli@latest configure --agent cursor --pet \u003Cpet-id> --with-rules --force",[151,2262,31,2263,31,2269,31,2274,31,2277,17],{},[154,2264,2265,2266,322],{},"MCP 替换仅影响 ",[73,2267,2268],{},"mcpServers.openpets",[154,2270,2271,2272,322],{},"规则替换仅影响 ",[73,2273,2165],{},[154,2275,2276],{},"任何替换或移除操作前都会创建备份。",[154,2278,2279,2282],{},[73,2280,2281],{},"--with-rules"," 会在写入任一文件前一起预检 MCP 与规则方案，避免出现半安装状态。",[12,2284,17,2287,17,2289,17,2295,17,2310],{"id":2285,"className":2286},"pet-routing",[16],[19,2288,1127],{"id":1127},[23,2290,2291,2292,2294],{},"\n    未选择宠物时，Cursor 会指向 OpenPets 桌面默认宠物。选择宠物后，OpenPets 会在 MCP 命令中添加 ",[73,2293,321],{},"，让 Cursor 指向该伴侣。\n  ",[27,2296,31,2298,31,2305,17],{"className":2297},[268],[27,2299,2301,2303],{"className":2300},[272],[274,2302,714],{},[274,2304,717],{},[281,2306,2307],{},[73,2308,2309],{},"Cursor\n  -> OpenPets MCP server (@open-pets/mcp)\n  -> @open-pets/client\n  -> OpenPets desktop local IPC\n  -> default pet or selected agent pet",[151,2311,31,2312,31,2315,31,2320,31,2322,17],{},[154,2313,2314],{},"未选择宠物：MCP 指向桌面默认宠物。",[154,2316,2317,2318,322],{},"已选择宠物：MCP 参数中包含 ",[73,2319,321],{},[154,2321,735],{},[154,2323,2324],{},"如果请求的宠物缺失或不可用，OpenPets 会安全回退，而不会中断 Cursor。",[12,2326,17,2329,17,2333,17,2337,17,2340,17,2359,17,2362,17,2366,17,2369,17,2388],{"id":2327,"className":2328},"caveats",[16],[19,2330,2332],{"id":2331},"cursor-行为与注意事项","Cursor 行为与注意事项",[307,2334,2336],{"id":2335},"重启重载或新对话","重启、重载或新对话",[23,2338,2339],{},"\n    Cursor 加载 MCP 的方式会因版本和环境而异。如果安装后未出现 OpenPets 工具：\n  ",[2341,2342,31,2343,31,2346,31,2349,31,2352,17],"ol",{},[154,2344,2345],{},"开启新的 Cursor 对话。",[154,2347,2348],{},"重载 Cursor 窗口。",[154,2350,2351],{},"完全重启 Cursor。",[154,2353,2354,2355,2358],{},"确认 Node 与 npm 能运行所配置的 ",[73,2356,2357],{},"npx"," 命令。",[23,2360,2361],{},"\n    规则会作为对话上下文被引入，因此规则变化后也可能需要新对话才能生效。\n  ",[307,2363,2365],{"id":2364},"wsl远程与-devcontainer","WSL、远程与 devcontainer",[23,2367,2368],{},"\n    OpenPets 桌面应用运行在本地操作系统上，MCP server 通过本地 IPC 连接桌面。如果 Cursor 在 WSL、远程主机或 devcontainer 中执行 MCP 命令，命令可能运行在无法访问桌面应用的环境中。\n  ",[151,2370,31,2371,31,2374,31,2379,17],{},[154,2372,2373],{},"Cursor 可能显示 MCP 连接失败。",[154,2375,2376,2378],{},[73,2377,75],{}," 可能报告桌面不可达。",[154,2380,2381,2382,552,2384,2387],{},"所配置的 ",[73,2383,2357],{},[73,2385,2386],{},"node"," 命令可能在一个环境中可用，但在 Cursor 实际使用的环境中不可用。",[23,2389,2390],{},"\n    解决方法取决于具体环境。OpenPets 目前不会自动写入针对 WSL 或 devcontainer 的 MCP 条目。\n  ",[12,2392,17,2394,17,2396,17,2399],{"id":741,"className":2393},[16],[19,2395,745],{"id":745},[23,2397,2398],{},"\n    OpenPets 将 Cursor 配置视为用户拥有的内容。MCP 与规则编辑都是受限范围、可审计、可回退的。\n  ",[27,2400,31,2402,17],{"className":2401},[30],[33,2403,35,2404,35,2412,31],{},[37,2405,2406],{},[41,2407,2408,2410],{},[44,2409,760],{},[44,2411,763],{},[54,2413,39,2414,39,2425,39,2440,39,2448,39,2456,39,2463,39,2471,39,2479,39,2487,35],{},[41,2415,2416,2419],{},[60,2417,2418],{},"受限的 MCP 编辑",[60,2420,2421,2422,2424],{},"仅读取、写入、替换或移除 ",[73,2423,2268],{},"；无关 server 与字段被完整保留。",[41,2426,2427,2430],{},[60,2428,2429],{},"受限的规则编辑",[60,2431,2432,2433,2435,2436,2439],{},"仅触碰 ",[73,2434,2165],{},"。其他规则文件和 ",[73,2437,2438],{},".cursor"," 目录本身保持不变。",[41,2441,2442,2445],{},[60,2443,2444],{},"严格 JSON",[60,2446,2447],{},"以严格 JSON 读取 MCP 配置。无法解析的文件会被归类为 invalid，而不是被改写。",[41,2449,2450,2453],{},[60,2451,2452],{},"大小限制",[60,2454,2455],{},"MCP 配置读取上限为 256 KiB。规则读取上限为 64 KiB。",[41,2457,2458,2460],{},[60,2459,810],{},[60,2461,2462],{},"使用临时文件加原子重命名进行写入，任何替换或移除前都会创建备份。",[41,2464,2465,2468],{},[60,2466,2467],{},"拒绝符号链接",[60,2469,2470],{},"拒绝处理符号链接配置文件、非常规文件、不安全的父路径和悬挂的符号链接。",[41,2472,2473,2476],{},[60,2474,2475],{},"托管识别",[60,2477,2478],{},"仅当存在 OpenPets 的 frontmatter 和恰好一对有序标记时，规则才被视为托管；用户自有内容会被识别为冲突而不是被覆盖。",[41,2480,2481,2484],{},[60,2482,2483],{},"预览脱敏",[60,2485,2486],{},"桌面预览仅显示 OpenPets 的 MCP 条目；更大范围的预览会对疑似敏感字段进行脱敏。",[41,2488,2489,2492],{},[60,2490,2491],{},"不写入宽泛权限",[60,2493,2494,2495,2498],{},"OpenPets 不会写入 ",[73,2496,2497],{},"~/.cursor/permissions.json","，也不会添加宽泛的 MCP / 工具白名单。",[12,2500,17,2502,17,2504,17,2508,17,2527,17,2531,17,2544,17,2547,17,2550,17,2565,17,2568],{"id":816,"className":2501},[16],[19,2503,820],{"id":820},[307,2505,2507],{"id":2506},"cursor-未显示-openpets-工具","Cursor 未显示 OpenPets 工具",[151,2509,31,2510,31,2513,31,2518,31,2524,17],{},[154,2511,2512],{},"开启新对话、重载窗口或完全重启 Cursor。",[154,2514,2515,2516,322],{},"确认 OpenPets 桌面应用正在运行，并在 Cursor 详情面板点击 ",[63,2517,835],{},[154,2519,838,2520,2523],{},[73,2521,2522],{},"npx -y @open-pets/mcp@latest --help","，确认 npm 能解析到该包。",[154,2525,2526],{},"如果 Cursor 运行在 WSL、远程或 devcontainer 中，请参考上面的注意事项。",[307,2528,2530],{"id":2529},"openpets-提示-mcp-条目为自定义或冲突","OpenPets 提示 MCP 条目为自定义或冲突",[23,2532,2533,2534,2536,2537,2540,2541,2543],{},"\n    自定义或冲突状态意味着现有的 ",[73,2535,161],{}," 条目、MCP 配置文件或规则文件与 OpenPets 所管理的内容不匹配。OpenPets 不会主动改写。仅当你希望 OpenPets 重新创建其托管条目或文件时，才在详情面板使用 ",[63,2538,2539],{},"Replace","，或在 CLI 中加上 ",[73,2542,1343],{}," 标志。\n  ",[307,2545,2546],{"id":2546},"出现错误的宠物",[23,2548,2549],{},"\n    使用所需的宠物 ID 重新运行安装。如果该宠物未安装、无效或已损坏，桌面应用会回退到默认宠物。\n  ",[27,2551,31,2553,31,2560,17],{"className":2552},[268],[27,2554,2556,2558],{"className":2555},[272],[274,2557,1709],{},[274,2559,300],{},[281,2561,2562],{},[73,2563,2564],{},"npx -y @open-pets/cli@latest configure --agent cursor --pet \u003Cpet-id> --cwd . --force",[307,2566,2567],{"id":2567},"移除或重置",[23,2569,2570,2571,2573],{},"\n    通过桌面详情面板移除全局 MCP 条目。使用 ",[73,2572,2127],{}," 移除项目规则。两种操作在改动托管内容前都会创建备份。\n  ",[12,2575,17,2578,17,2581],{"id":2576,"className":2577},"whats-next",[16],[19,2579,2580],{"id":2580},"下一步计划",[23,2582,2583,2584,2587],{},"\n    Cursor 的 MCP 与项目规则已完成。下一阶段是 ",[63,2585,2586],{},"Cursor hooks","，用于环境感知的生命周期反应，类似 Claude hooks 或 OpenCode 插件事件映射。我们有意暂未写入 hooks——它们需要一次验证才能落地，验证内容包括 hook 配置路径、负载结构、stdout 行为、超时、fail-open 与 fail-closed 语义，以及在本地、WSL、远程和 devcontainer 中的执行位置。\n  ",{"title":909,"searchDepth":910,"depth":910,"links":2589},[2590,2591,2592,2597,2600,2601,2602,2606,2607,2613],{"id":21,"depth":910,"text":21},{"id":119,"depth":910,"text":119},{"id":188,"depth":910,"text":189,"children":2593},[2594,2595,2596],{"id":1944,"depth":917,"text":1945},{"id":1998,"depth":917,"text":1999},{"id":2031,"depth":917,"text":2032},{"id":2076,"depth":910,"text":2076,"children":2598},[2599],{"id":2156,"depth":917,"text":2156},{"id":2232,"depth":910,"text":2233},{"id":1127,"depth":910,"text":1127},{"id":2331,"depth":910,"text":2332,"children":2603},[2604,2605],{"id":2335,"depth":917,"text":2336},{"id":2364,"depth":917,"text":2365},{"id":745,"depth":910,"text":745},{"id":820,"depth":910,"text":820,"children":2608},[2609,2610,2611,2612],{"id":2506,"depth":917,"text":2507},{"id":2529,"depth":917,"text":2530},{"id":2546,"depth":917,"text":2546},{"id":2567,"depth":917,"text":2567},{"id":2580,"depth":910,"text":2580},"通过全局或项目 MCP 设置、可选项目规则、宠物路由、托管安全机制和冲突处理，将 Cursor 连接到 OpenPets。","MCP + 项目规则","/integrations/cursor.svg",{},4,"/zh/integrations/cursor",{"title":1750,"description":2614},"cursor","zh/integrations/cursor","通过全局或项目 MCP 设置、可选的项目规则以及宠物路由，将 Cursor 连接到 OpenPets。","A__PpYOE6I5QjVyjwYgMOpjmjwrWzhTmII_buF53MI0",{"id":2626,"title":2627,"active":7,"body":2628,"description":3230,"extension":377,"eyebrow":2667,"icon":935,"image":3231,"meta":3232,"name":3233,"navTitle":3233,"navigation":7,"order":2618,"path":3234,"seo":3235,"slug":3236,"status":940,"stem":3237,"summary":3238,"toc":935,"__hash__":3239},"integrations_zh/zh/integrations/pi.md","Pi + OpenPets",{"type":9,"value":2629,"toc":3217},[2630,2716,2765,2855,3055,3132,3156,3201],[12,2631,17,2633,17,2636,17,2642,17,2713],{"id":14,"className":2632},[16],[19,2634,2635],{"id":2635},"这个集成做什么",[23,2637,2638,2639,2641],{},"\n    Pi 集成是一个扩展包，而不是 MCP 配置。它在 Pi 内部加载，直接监听 Pi 的\n    会话和工具事件，并通过 ",[73,2640,1024],{}," 将一小组安全反应转\n    发到正在运行的 OpenPets 桌面应用。\n  ",[27,2643,31,2645,17],{"className":2644},[30],[33,2646,35,2647,35,2659,31],{},[37,2648,39,2649,35],{},[41,2650,2651,2653,2656],{},[44,2652,46],{},[44,2654,2655],{},"作用",[44,2657,2658],{},"意义",[54,2660,39,2661,39,2674,39,2687,35],{},[41,2662,58,2663,58,2668,58,2671,39],{},[60,2664,2665],{},[63,2666,2667],{},"Pi 扩展",[60,2669,2670],{},"订阅 Pi 的会话、代理和工具事件。",[60,2672,2673],{},"当 Pi 思考、编辑、执行命令、成功或出错时，宠物会自动作出反应。",[41,2675,58,2676,58,2681,58,2684,39],{},[60,2677,2678],{},[63,2679,2680],{},"OpenPets IPC 客户端",[60,2682,2683],{},"通过本地 IPC 发送反应和简短的状态消息。",[60,2685,2686],{},"运行完全本地化。Pi 永远不需要远程服务来控制宠物。",[41,2688,58,2689,58,2694,58,2710,39],{},[60,2690,2691],{},[63,2692,2693],{},"/openpets 命令",[60,2695,2696,2697,76,2700,76,2703,80,2706,2709],{},"添加 ",[73,2698,2699],{},"status",[73,2701,2702],{},"test",[73,2704,2705],{},"react",[73,2707,2708],{},"say"," 子命令。",[60,2711,2712],{},"用户可以在 Pi 内验证连接并触发手动反应。",[23,2714,2715],{},"\n    运行时控制是尽力而为的。如果 OpenPets 桌面应用关闭，Pi 会继续正常工作；扩展\n    会安静地跳过宠物更新，直到桌面应用再次可达。\n  ",[12,2717,17,2720,17,2723,17,2726,17,2742,17,2758],{"id":2718,"className":2719},"install",[16],[19,2721,2722],{"id":2722},"安装",[23,2724,2725],{},"\n    保持 OpenPets 桌面应用运行，然后使用 Pi 安装扩展包。可以选择对当前机器进行\n    全局安装，或对单个仓库进行项目本地安装。\n  ",[27,2727,31,2729,31,2737,17],{"className":2728},[268],[27,2730,2732,2735],{"className":2731},[272],[274,2733,2734],{},"全局安装",[274,2736,300],{},[281,2738,2739],{},[73,2740,2741],{},"pi install npm:@open-pets/pi",[27,2743,31,2745,31,2753,17],{"className":2744},[268],[27,2746,2748,2751],{"className":2747},[272],[274,2749,2750],{},"项目本地安装",[274,2752,300],{},[281,2754,2755],{},[73,2756,2757],{},"pi install -l npm:@open-pets/pi",[23,2759,2760,2761,2764],{},"\n    全局安装会写入 Pi 的全局包设置。项目本地安装会写入\n    ",[73,2762,2763],{},".pi/settings.json","，适合需要让仓库显式携带 OpenPets 行为的场景。\n    修改包设置后，请重新加载或重启 Pi，以便新扩展生效。\n  ",[12,2766,17,2769,17,2773,17,2776,17,2850],{"id":2767,"className":2768},"commands",[16],[19,2770,2772],{"id":2771},"slash-命令","Slash 命令",[23,2774,2775],{},"\n    扩展只注册一个面向用户的命令命名空间，让你无需添加额外的 Pi 工具就能测试\n    和控制集成。这些命令都不会转发 prompt 或工具输出。\n  ",[27,2777,31,2779,17],{"className":2778},[30],[33,2780,35,2781,35,2790,31],{},[37,2782,2783],{},[41,2784,2785,2788],{},[44,2786,2787],{},"命令",[44,2789,220],{},[54,2791,39,2792,39,2802,39,2812,39,2830,39,2840,35],{},[41,2793,2794,2799],{},[60,2795,2796],{},[73,2797,2798],{},"/openpets status",[60,2800,2801],{},"检查 OpenPets 桌面应用是否可达，以及当前目标宠物。",[41,2803,2804,2809],{},[60,2805,2806],{},[73,2807,2808],{},"/openpets test",[60,2810,2811],{},"发送一个简短的测试反应和挥手消息。",[41,2813,2814,2819],{},[60,2815,2816],{},[73,2817,2818],{},"/openpets react \u003Creaction>",[60,2820,2821,2822,76,2824,76,2826,552,2828,322],{},"手动设置安全反应，例如 ",[73,2823,533],{},[73,2825,580],{},[73,2827,629],{},[73,2829,646],{},[41,2831,2832,2837],{},[60,2833,2834],{},[73,2835,2836],{},"/openpets say \u003Cmessage>",[60,2838,2839],{},"显示一条经过校验的简短气泡消息。",[41,2841,2842,2847],{},[60,2843,2844],{},[73,2845,2846],{},"/openpets help",[60,2848,2849],{},"在 Pi 内打印可用的子命令列表。",[23,2851,31,2852,2854],{},[73,2853,2708],{}," 的输入会经过与桌面应用相同的 OpenPets 校验器：简短、单\n    行、面向用户，绝不能包含代码、日志、路径、URL、prompt 或密钥。\n  ",[12,2856,17,2859,17,2862,17,2865,17,3052],{"id":2857,"className":2858},"event-reactions",[16],[19,2860,2861],{"id":2861},"自动事件反应",[23,2863,2864],{},"\n    扩展会把 Pi 的生命周期事件映射为宠物反应，无需模型主动调用工具。大多数事件\n    只更新反应、不说话；只有出错时可能发送一条固定的安全消息。\n  ",[27,2866,31,2868,17],{"className":2867},[30],[33,2869,35,2870,35,2884,31],{},[37,2871,39,2872,35],{},[41,2873,2874,2877,2880,2882],{},[44,2875,2876],{},"Pi 事件",[44,2878,2879],{},"条件",[44,2881,1371],{},[44,2883,516],{},[54,2885,39,2886,39,2904,39,2921,39,2938,39,2954,39,2969,39,2985,39,3000,39,3020,39,3036,35],{},[41,2887,2888,2893,2896,2901],{},[60,2889,2890],{},[73,2891,2892],{},"session_start",[60,2894,2895],{},"Pi 启动、恢复或重新加载。",[60,2897,2898],{},[73,2899,2900],{},"waving",[60,2902,2903],{},"默认无。",[41,2905,2906,2911,2914,2918],{},[60,2907,2908],{},[73,2909,2910],{},"agent_start",[60,2912,2913],{},"代理循环开始。",[60,2915,2916],{},[73,2917,533],{},[60,2919,2920],{},"无。",[41,2922,2923,2928,2931,2936],{},[60,2924,2925],{},[73,2926,2927],{},"turn_start",[60,2929,2930],{},"新的对话回合开始。",[60,2932,2933],{},[73,2934,2935],{},"working",[60,2937,2920],{},[41,2939,2940,2945,2948,2952],{},[60,2941,2942],{},[73,2943,2944],{},"tool_execution_start",[60,2946,2947],{},"工具像 edit/write/patch/apply。",[60,2949,2950],{},[73,2951,561],{},[60,2953,2920],{},[41,2955,2956,2960,2963,2967],{},[60,2957,2958],{},[73,2959,2944],{},[60,2961,2962],{},"工具或 shell 命令像测试。",[60,2964,2965],{},[73,2966,580],{},[60,2968,2920],{},[41,2970,2971,2975,2978,2983],{},[60,2972,2973],{},[73,2974,2944],{},[60,2976,2977],{},"非测试的 shell/bash 命令。",[60,2979,2980],{},[73,2981,2982],{},"running",[60,2984,2920],{},[41,2986,2987,2991,2994,2998],{},[60,2988,2989],{},[73,2990,2944],{},[60,2992,2993],{},"其它工具。",[60,2995,2996],{},[73,2997,2935],{},[60,2999,2920],{},[41,3001,3002,3007,3013,3017],{},[60,3003,3004],{},[73,3005,3006],{},"tool_execution_end",[60,3008,3009,3012],{},[73,3010,3011],{},"isError"," 为 true。",[60,3014,3015],{},[73,3016,646],{},[60,3018,3019],{},"固定错误池消息，已限频。",[41,3021,3022,3027,3030,3034],{},[60,3023,3024],{},[73,3025,3026],{},"agent_end",[60,3028,3029],{},"代理循环结束，且最近未发生工具错误。",[60,3031,3032],{},[73,3033,629],{},[60,3035,2920],{},[41,3037,3038,3043,3046,3050],{},[60,3039,3040],{},[73,3041,3042],{},"session_shutdown",[60,3044,3045],{},"Pi 退出、重新加载、切换或 fork。",[60,3047,3048],{},[73,3049,1471],{},[60,3051,2920],{},[23,3053,3054],{},"\n    扩展只会读取有限的工具名和命令片段用于分类反应。它不会把原始命令、输出、\n    prompt 或文件路径写入语音气泡。与 OpenPets 相关的命令会被忽略，避免宠物自\n    触发循环。\n  ",[12,3056,17,3058,17,3061,17,3064],{"id":741,"className":3057},[16],[19,3059,3060],{"id":3060},"安全与行为",[23,3062,3063],{},"\n    Pi 扩展遵循与 Claude Code、OpenCode 和 MCP 服务器相同的安全模型。它的目标\n    只是提供环境状态显示。\n  ",[27,3065,31,3067,17],{"className":3066},[30],[33,3068,35,3069,35,3079,31],{},[37,3070,3071],{},[41,3072,3073,3076],{},[44,3074,3075],{},"保护",[44,3077,3078],{},"行为",[54,3080,39,3081,39,3089,39,3100,39,3108,39,3116,39,3124,35],{},[41,3082,3083,3086],{},[60,3084,3085],{},"不转发对话内容",[60,3087,3088],{},"自动事件绝不会发送 prompt、助手文本、工具输入、工具输出、文件内容、URL、路径或密钥。",[41,3090,3091,3094],{},[60,3092,3093],{},"校验手动语音",[60,3095,3096,3099],{},[73,3097,3098],{},"/openpets say"," 会拒绝多行、过长、像代码、像 URL/路径或像密钥的文本。",[41,3101,3102,3105],{},[60,3103,3104],{},"尽力而为的运行时",[60,3106,3107],{},"OpenPets 故障绝不会阻塞 Pi 的模型调用或工具执行。",[41,3109,3110,3113],{},[60,3111,3112],{},"MVP 不注册 Pi 工具",[60,3114,3115],{},"扩展只注册一个用户 slash 命令，不暴露模型可调用的 Pi 工具。",[41,3117,3118,3121],{},[60,3119,3120],{},"包信任边界",[60,3122,3123],{},"Pi 扩展以本地系统权限运行，请只安装你信任的包。",[41,3125,3126,3129],{},[60,3127,3128],{},"自触发防护",[60,3130,3131],{},"与 OpenPets 相关的工具调用会被事件映射器忽略。",[12,3133,17,3135,17,3137,17,3140],{"id":695,"className":3134},[16],[19,3136,1127],{"id":1127},[23,3138,3139],{},"\n    默认情况下，自动反应和手动命令都指向桌面默认宠物。每扩展级别的显式宠物路由\n    会留到后续 Pi 子阶段，让当前的运行时契约保持简洁。\n  ",[27,3141,31,3143,31,3151,17],{"className":3142},[268],[27,3144,3146,3149],{"className":3145},[272],[274,3147,3148],{},"运行路径",[274,3150,717],{},[281,3152,3153],{},[73,3154,3155],{},"Pi\n  -> @open-pets/pi 扩展\n  -> @open-pets/client\n  -> OpenPets 桌面本地 IPC\n  -> 默认宠物",[12,3157,17,3159,17,3161,17,3164,17,3179,17,3182,17,3198],{"id":816,"className":3158},[16],[19,3160,820],{"id":820},[307,3162,3163],{"id":3163},"宠物没有反应",[151,3165,31,3166,31,3168,31,3173,31,3176,17],{},[154,3167,880],{},[154,3169,3170,3171,322],{},"在 Pi 中运行 ",[73,3172,2798],{},[154,3174,3175],{},"安装或移除包之后重新加载或重启 Pi。",[154,3177,3178],{},"记住：大多数自动事件是纯反应，本来就是静默的。",[307,3180,3181],{"id":3181},"移除扩展包",[27,3183,31,3185,31,3193,17],{"className":3184},[268],[27,3186,3188,3191],{"className":3187},[272],[274,3189,3190],{},"移除全局安装",[274,3192,300],{},[281,3194,3195],{},[73,3196,3197],{},"pi remove npm:@open-pets/pi",[23,3199,3200],{},"\n    对项目本地安装，请在原始安装的项目目录下运行 remove 命令，并遵循 Pi 的项\n    目设置行为。\n  ",[12,3202,17,3204,17,3207],{"id":2699,"className":3203},[16],[19,3205,3206],{"id":3206},"状态",[23,3208,31,3209,3212,3213,3216],{},[73,3210,3211],{},"@open-pets/pi"," 包已发布到 npm，并遵循与其他 OpenPets 集成相同的\n    安全模型。当前版本基于 ",[73,3214,3215],{},"@earendil-works/pi-coding-agent"," 的 Pi\n    包 API 构建；请按你日常更新 Pi 的方式来固定或升级它。\n  ",{"title":909,"searchDepth":910,"depth":910,"links":3218},[3219,3220,3221,3222,3223,3224,3225,3229],{"id":2635,"depth":910,"text":2635},{"id":2722,"depth":910,"text":2722},{"id":2771,"depth":910,"text":2772},{"id":2861,"depth":910,"text":2861},{"id":3060,"depth":910,"text":3060},{"id":1127,"depth":910,"text":1127},{"id":820,"depth":910,"text":820,"children":3226},[3227,3228],{"id":3163,"depth":917,"text":3163},{"id":3181,"depth":917,"text":3181},{"id":3206,"depth":910,"text":3206},"通过 @open-pets/pi 扩展包将 Pi 连接到 OpenPets，支持自动安全反应、手动 slash 命令，并且不转发任何 prompt 或工具输出。","/integrations/pi.svg",{},"Pi","/zh/integrations/pi",{"title":2627,"description":3230},"pi","zh/integrations/pi","使用 @open-pets/pi 扩展包，将 Pi 编程代理活动转化为本地桌面宠物反应，无需转发 prompt 或工具输出。","_7qb2woNf0tOxv45CtYb3YUFBTN3Lu7bse5GKIOLU8Q",{"id":3241,"title":3242,"active":7,"body":3243,"description":3704,"extension":377,"eyebrow":3705,"icon":3706,"image":935,"meta":3707,"name":3708,"navTitle":3708,"navigation":7,"order":3709,"path":3710,"seo":3711,"slug":3712,"status":940,"stem":3713,"summary":3714,"toc":935,"__hash__":3715},"integrations_zh/zh/integrations/cli.md","CLI 与 shell 脚本 + OpenPets",{"type":9,"value":3244,"toc":3689},[3245,3337,3359,3460,3505,3564,3590,3644],[12,3246,17,3248,17,3250,17,3253,17,3320],{"id":14,"className":3247},[16],[19,3249,21],{"id":21},[23,3251,3252],{},"\n    OpenPets CLI 允许终端命令与正在运行的 OpenPets 桌面应用通信。当你希望通过 shell 脚本、npm 脚本、本地构建命令、git hook 或自定义自动化工具触发宠物反应时，可以使用它。\n  ",[27,3254,31,3256,17],{"className":3255},[30],[33,3257,35,3258,35,3268,31],{},[37,3259,39,3260,35],{},[41,3261,3262,3264,3266],{},[44,3263,2787],{},[44,3265,970],{},[44,3267,1507],{},[54,3269,39,3270,39,3283,39,3296,39,3308,35],{},[41,3271,3272,3277,3280],{},[60,3273,3274],{},[73,3275,3276],{},"npx -y @open-pets/cli@latest status",[60,3278,3279],{},"检查桌面应用是否可达。",[60,3281,3282],{},"设置检查和故障排查。",[41,3284,3285,3290,3293],{},[60,3286,3287],{},[73,3288,3289],{},"npx -y @open-pets/cli@latest pets",[60,3291,3292],{},"列出已安装的宠物并标记默认宠物。",[60,3294,3295],{},"在路由设置前查找宠物 ID。",[41,3297,3298,3303,3305],{},[60,3299,3300],{},[73,3301,3302],{},"npx -y @open-pets/cli@latest react \u003Creaction>",[60,3304,246],{},[60,3306,3307],{},"静默成功、错误、测试、等待或工作状态。",[41,3309,3310,3315,3317],{},[60,3311,3312],{},[73,3313,3314],{},"npx -y @open-pets/cli@latest say \u003Cmessage>",[60,3316,258],{},[60,3318,3319],{},"有意义的本地自动化状态更新。",[23,3321,3322,3323,3326,3327,3329,3330,3333,3334,3336],{},"\n    CLI 以 npm 包 ",[73,3324,3325],{},"@open-pets/cli"," 的形式分发。桌面应用不会安装 shell 命令；一次性命令可用 ",[73,3328,2357],{},"，显式包执行可用 ",[73,3331,3332],{},"npm exec","，如果想要永久的 ",[73,3335,161],{}," 命令，也可以选择全局 npm 安装。\n  ",[12,3338,17,3341,17,3344],{"id":3339,"className":3340},"requirements",[16],[19,3342,3343],{"id":3343},"使用要求",[151,3345,31,3346,31,3349,31,3356,17],{},[154,3347,3348],{},"OpenPets 桌面应用必须正在运行。",[154,3350,845,3351,76,3353,3355],{},[73,3352,2357],{},[73,3354,3332],{}," 或可选全局 npm 安装时，必须有可用的 Node.js 和 npm。",[154,3357,3358],{},"CLI 通过 OpenPets 本地 IPC 与桌面应用通信，不通过云服务发送命令。",[12,3360,17,3363,17,3367,17,3373,17,3388,17,3403,17,3419,17,3435,17,3444],{"id":3361,"className":3362},"quick-start",[16],[19,3364,3366],{"id":3365},"使用-npx-快速开始","使用 npx 快速开始",[23,3368,3369,3370,3372],{},"\n    当你不想全局安装时，使用 ",[73,3371,2357],{},"。以下示例始终获取最新发布的 OpenPets CLI。\n  ",[27,3374,31,3376,31,3384,17],{"className":3375},[268],[27,3377,3379,3382],{"className":3378},[272],[274,3380,3381],{},"检查桌面状态",[274,3383,300],{},[281,3385,3386],{},[73,3387,3276],{},[27,3389,31,3391,31,3399,17],{"className":3390},[268],[27,3392,3394,3397],{"className":3393},[272],[274,3395,3396],{},"列出已安装的宠物",[274,3398,300],{},[281,3400,3401],{},[73,3402,3289],{},[27,3404,31,3406,31,3414,17],{"className":3405},[268],[27,3407,3409,3412],{"className":3408},[272],[274,3410,3411],{},"发送反应",[274,3413,300],{},[281,3415,3416],{},[73,3417,3418],{},"npx -y @open-pets/cli@latest react success",[27,3420,31,3422,31,3430,17],{"className":3421},[268],[27,3423,3425,3428],{"className":3424},[272],[274,3426,3427],{},"显示简短消息",[274,3429,300],{},[281,3431,3432],{},[73,3433,3434],{},"npx -y @open-pets/cli@latest say \"Build finished\" --reaction celebrating",[23,3436,3437,3438,3440,3441,3443],{},"\n    如果你的 npm 环境有过期的 ",[73,3439,2357],{}," 缓存元数据，等效的 ",[73,3442,3332],{}," 形式为：\n  ",[27,3445,31,3447,31,3455,17],{"className":3446},[268],[27,3448,3450,3453],{"className":3449},[272],[274,3451,3452],{},"npm exec 形式",[274,3454,300],{},[281,3456,3457],{},[73,3458,3459],{},"npm exec --yes --package=@open-pets/cli@latest -- openpets --help",[12,3461,17,3464,17,3467,17,3473,17,3489],{"id":3462,"className":3463},"global-install",[16],[19,3465,3466],{"id":3466},"可选的全局安装",[23,3468,3469,3470,3472],{},"\n    如果你希望在终端直接输入 ",[73,3471,161],{},"，可以全局安装 CLI。这与下载桌面应用是分开的操作。\n  ",[27,3474,31,3476,31,3484,17],{"className":3475},[268],[27,3477,3479,3482],{"className":3478},[272],[274,3480,3481],{},"一次性安装",[274,3483,300],{},[281,3485,3486],{},[73,3487,3488],{},"npm install -g @open-pets/cli",[27,3490,31,3492,31,3500,17],{"className":3491},[268],[27,3493,3495,3498],{"className":3494},[272],[274,3496,3497],{},"直接使用",[274,3499,300],{},[281,3501,3502],{},[73,3503,3504],{},"openpets status\nopenpets react testing\nopenpets say \"Tests are running\" --reaction testing",[12,3506,17,3509,17,3513,17,3516,17,3532,17,3548],{"id":3507,"className":3508},"script-examples",[16],[19,3510,3512],{"id":3511},"shell-脚本示例","Shell 脚本示例",[23,3514,3515],{},"\n    保持消息简短且面向用户。对于嘈杂的步骤使用反应，仅在有意义的时刻使用语音。\n  ",[27,3517,31,3519,31,3527,17],{"className":3518},[268],[27,3520,3522,3525],{"className":3521},[272],[274,3523,3524],{},"npm test 通知",[274,3526,300],{},[281,3528,3529],{},[73,3530,3531],{},"npm test \\\n  && npx -y @open-pets/cli@latest say \"Tests passed\" --reaction success \\\n  || npx -y @open-pets/cli@latest say \"Tests failed\" --reaction error",[27,3533,31,3535,31,3543,17],{"className":3534},[268],[27,3536,3538,3541],{"className":3537},[272],[274,3539,3540],{},"构建脚本",[274,3542,300],{},[281,3544,3545],{},[73,3546,3547],{},"npx -y @open-pets/cli@latest react running\npnpm build\nnpx -y @open-pets/cli@latest react success",[27,3549,31,3551,31,3559,17],{"className":3550},[268],[27,3552,3554,3557],{"className":3553},[272],[274,3555,3556],{},"package.json 脚本",[274,3558,279],{},[281,3560,3561],{},[73,3562,3563],{},"{\n  \"scripts\": {\n    \"test:pet\": \"npm test && npx -y @open-pets/cli@latest say 'Tests passed' --reaction success\"\n  }\n}",[12,3565,17,3568,17,3571,17,3574],{"id":3566,"className":3567},"reactions",[16],[19,3569,3570],{"id":3570},"可用反应",[23,3572,3573],{},"\n    CLI 接受与 OpenPets 本地客户端和 MCP 工具相同的反应名称：\n  ",[27,3575,31,3577,31,3585,17],{"className":3576},[268],[27,3578,3580,3583],{"className":3579},[272],[274,3581,3582],{},"反应名称",[274,3584,717],{},[281,3586,3587],{},[73,3588,3589],{},"idle\nthinking\nworking\nediting\nrunning\ntesting\nwaiting\nwaving\nsuccess\nerror\ncelebrating",[12,3591,17,3593,17,3596,17,3599],{"id":741,"className":3592},[16],[19,3594,3595],{"id":3595},"消息安全",[23,3597,3598],{},"\n    宠物语音在你的桌面上可见。将其视为一个微型公开状态频道，而非日志输出。\n  ",[27,3600,31,3602,17],{"className":3601},[30],[33,3603,35,3604,35,3613,31],{},[37,3605,3606],{},[41,3607,3608,3611],{},[44,3609,3610],{},"良好示例",[44,3612,415],{},[54,3614,39,3615,39,3625,39,3634,35],{},[41,3616,3617,3622],{},[60,3618,3619],{},[73,3620,3621],{},"Build finished.",[60,3623,3624],{},"完整命令输出或错误堆栈。",[41,3626,3627,3631],{},[60,3628,3629],{},[73,3630,434],{},[60,3632,3633],{},"文件路径、URL 或私有仓库详情。",[41,3635,3636,3641],{},[60,3637,3638],{},[73,3639,3640],{},"Waiting for review.",[60,3642,3643],{},"密钥、令牌、提示词或用户消息。",[12,3645,17,3647,17,3649,17,3655,17,3668,17,3672,17,3683,17,3686],{"id":816,"className":3646},[16],[19,3648,820],{"id":820},[307,3650,3652,3654],{"id":3651},"npx-y-open-petsclilatest-status-提示应用不可用",[73,3653,3276],{}," 提示应用不可用",[151,3656,31,3657,31,3660,31,3663,17],{},[154,3658,3659],{},"先打开 OpenPets 桌面应用。",[154,3661,3662],{},"如果桌面应用在运行时被更新，请重启它。",[154,3664,3665,3666,322],{},"再次运行 ",[73,3667,3276],{},[307,3669,3671],{"id":3670},"桌面应用没有安装-shell-命令","桌面应用没有安装 shell 命令",[23,3673,3674,3675,76,3678,3680,3681,871],{},"\n    下载桌面应用不会安装 shell 命令。请使用 ",[73,3676,3677],{},"npx -y @open-pets/cli@latest ...",[73,3679,3332],{},"，或在需要永久命令时通过 npm 全局安装 ",[73,3682,3325],{},[307,3684,3685],{"id":3685},"反应名称被拒绝",[23,3687,3688],{},"\n    请使用上面列出的反应名称之一。CLI 在将反应名称发送到桌面应用之前会进行验证。\n  ",{"title":909,"searchDepth":910,"depth":910,"links":3690},[3691,3692,3693,3694,3695,3696,3697,3698],{"id":21,"depth":910,"text":21},{"id":3343,"depth":910,"text":3343},{"id":3365,"depth":910,"text":3366},{"id":3466,"depth":910,"text":3466},{"id":3511,"depth":910,"text":3512},{"id":3570,"depth":910,"text":3570},{"id":3595,"depth":910,"text":3595},{"id":820,"depth":910,"text":820,"children":3699},[3700,3702,3703],{"id":3651,"depth":917,"text":3701},"npx -y @open-pets/cli@latest status 提示应用不可用",{"id":3670,"depth":917,"text":3671},{"id":3685,"depth":917,"text":3685},"使用已发布的 OpenPets npm CLI 检查桌面状态、列出宠物、发送反应、显示简短消息，并将 OpenPets 接入本地 shell 自动化流程。","npm CLI","fa6-solid:terminal",{},"CLI 与 shell 脚本",5,"/zh/integrations/cli",{"title":3242,"description":3704},"cli","zh/integrations/cli","通过 @open-pets/cli 在终端命令、npm 脚本、git hooks 和本地自动化中发送宠物反应和简短消息。","SLnGyf4_f7fup_u8yzxND1eYwIrIbrGgD0xCBSzAYEI",{"id":3717,"title":3718,"active":7,"body":3719,"description":4096,"extension":377,"eyebrow":4097,"icon":4098,"image":935,"meta":4099,"name":4100,"navTitle":4100,"navigation":7,"order":4101,"path":4102,"seo":4103,"slug":3844,"status":940,"stem":4104,"summary":4105,"toc":935,"__hash__":4106},"integrations_zh/zh/integrations/mcp.md","通用 MCP 客户端 + OpenPets",{"type":9,"value":3720,"toc":4082},[3721,3790,3809,3859,3896,3943,3977,4031],[12,3722,17,3724,17,3726,17,3729,17,3781],{"id":14,"className":3723},[16],[19,3725,21],{"id":21},[23,3727,3728],{},"\n    通用 MCP 集成适用于任何能够启动 stdio MCP server 的助手或编辑器。无需使用专用的 OpenPets 设置流程，只需将 OpenPets MCP 命令添加到客户端的 MCP 配置中即可。\n  ",[27,3730,31,3732,17],{"className":3731},[30],[33,3733,35,3734,35,3745,31],{},[37,3735,39,3736,35],{},[41,3737,3738,3740,3742],{},[44,3739,217],{},[44,3741,220],{},[44,3743,3744],{},"安全模型",[54,3746,39,3747,39,3759,39,3770,35],{},[41,3748,3749,3753,3756],{},[60,3750,3751],{},[73,3752,75],{},[60,3754,3755],{},"检查 OpenPets 是否可达及当前目标宠物。",[60,3757,3758],{},"只读的设置与健康检查。",[41,3760,3761,3765,3767],{},[60,3762,3763],{},[73,3764,79],{},[60,3766,246],{},[60,3768,3769],{},"用于静默状态，如思考、测试、等待、成功或错误。",[41,3771,3772,3776,3778],{},[60,3773,3774],{},[73,3775,83],{},[60,3777,258],{},[60,3779,3780],{},"拒绝过长、多行、类代码、含 URL/路径或看起来像密钥的消息。",[23,3782,3783,3784,3786,3787,3789],{},"\n    运行时在本地进行。你的 MCP 客户端启动 ",[73,3785,1792],{},"，MCP server 使用 ",[73,3788,1024],{},"，客户端通过本地 IPC 与正在运行的 OpenPets 桌面应用通信。\n  ",[12,3791,17,3793,17,3795],{"id":3339,"className":3792},[16],[19,3794,3343],{"id":3343},[151,3796,31,3797,31,3800,31,3803,17],{},[154,3798,3799],{},"OpenPets 桌面应用必须正在运行，宠物更新才能生效。",[154,3801,3802],{},"你的助手或编辑器必须支持 stdio MCP server。",[154,3804,3805,3806,3808],{},"如果使用已发布的 ",[73,3807,2357],{}," 命令，必须有可用的 Node.js 和 npm。",[12,3810,17,3813,17,3817,17,3820,17,3836],{"id":3811,"className":3812},"config",[16],[19,3814,3816],{"id":3815},"通用-mcp-配置","通用 MCP 配置",[23,3818,3819],{},"\n    MCP 客户端使用不同的根键，但命令和参数才是关键。请根据客户端的 MCP 格式调整包装结构。\n  ",[27,3821,31,3823,31,3831,17],{"className":3822},[268],[27,3824,3826,3829],{"className":3825},[272],[274,3827,3828],{},"通用 stdio MCP server",[274,3830,279],{},[281,3832,3833],{},[73,3834,3835],{},"{\n  \"mcpServers\": {\n    \"openpets\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@open-pets/mcp@latest\"]\n    }\n  }\n}",[23,3837,3838,3839,76,3842,552,3845,3848,3849,3852,3853,3855,3856,871],{},"\n    某些客户端使用 ",[73,3840,3841],{},"servers",[73,3843,3844],{},"mcp",[73,3846,3847],{},"context_servers"," 作为根键，而非 ",[73,3850,3851],{},"mcpServers","。除非你的客户端需要不同的可执行文件格式，否则命令保持为 ",[73,3854,2357],{},"，参数保持为 ",[73,3857,3858],{},"[\"-y\", \"@open-pets/mcp@latest\"]",[12,3860,17,3862,17,3864,17,3869,17,3885],{"id":2285,"className":3861},[16],[19,3863,1127],{"id":1127},[23,3865,3866,3867,871],{},"\n    默认情况下，MCP server 指向桌面应用的默认宠物。当你希望此 MCP 进程请求特定已安装宠物时，添加 ",[73,3868,321],{},[27,3870,31,3872,31,3880,17],{"className":3871},[268],[27,3873,3875,3878],{"className":3874},[272],[274,3876,3877],{},"指向特定宠物",[274,3879,279],{},[281,3881,3882],{},[73,3883,3884],{},"{\n  \"mcpServers\": {\n    \"openpets\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@open-pets/mcp@latest\", \"--pet\", \"fixer\"]\n    }\n  }\n}",[151,3886,31,3887,31,3890,31,3893,17],{},[154,3888,3889],{},"如果请求的宠物可用，OpenPets 会将此 MCP 会话路由到该宠物。",[154,3891,3892],{},"如果请求的宠物缺失或不可用，OpenPets 会安全回退，而不会中断助手。",[154,3894,3895],{},"显式宠物路由使用短租约，代理宠物可以自动清理。",[12,3897,17,3900,17,3903,17,3906],{"id":3898,"className":3899},"instructions",[16],[19,3901,3902],{"id":3902},"推荐的助手指令",[23,3904,3905],{},"\n    MCP 为你的助手提供工具，而指令则教会它如何使用这些工具，同时避免将私有上下文泄露到可见的桌面气泡中。在你的 MCP 客户端存储助手指令的位置添加一个简短的规则块。\n  ",[27,3907,31,3909,31,3917],{"className":3908},[268],[27,3910,3912,3915],{"className":3911},[272],[274,3913,3914],{},"OpenPets 助手引导",[274,3916,377],{},[281,3918,3919,3922],{},[73,3920,3921],{},"OpenPets MCP tools may be available.\n",[151,3923,3924,3938],{},[73,3925,3926,3929,3932,3935],{},[154,3927,3928],{},"Use openpets_status before using OpenPets or when debugging availability.",[154,3930,3931],{},"Use openpets_react for silent state changes like thinking, editing, testing, waiting, success, or error.",[154,3933,3934],{},"Use openpets_say only for short visible status messages.",[154,3936,3937],{},"Never send code, logs, command output, file paths, URLs, secrets, tokens, user prompts, or private data to openpets_say.",[154,3939,3940],{},[73,3941,3942],{},"Do not spam every internal step.",[12,3944,17,3946,17,3949,17,3952,17,3968],{"id":2702,"className":3945},[16],[19,3947,3948],{"id":3948},"测试连接",[23,3950,3951],{},"\n    MCP 客户端加载 server 后，让它主动使用 OpenPets：\n  ",[27,3953,31,3955,31,3963,17],{"className":3954},[268],[27,3956,3958,3961],{"className":3957},[272],[274,3959,3960],{},"测试提示词",[274,3962,717],{},[281,3964,3965],{},[73,3966,3967],{},"Check OpenPets status. If it is available, send a short \"connected\" message and a waving reaction.",[23,3969,3970,3971,76,3973,80,3975,871],{},"\n    如果你的客户端在调试面板中显示 MCP 工具调用，你应该能看到 ",[73,3972,75],{},[73,3974,79],{},[73,3976,83],{},[12,3978,17,3980,17,3982],{"id":741,"className":3979},[16],[19,3981,745],{"id":745},[27,3983,31,3985,17],{"className":3984},[30],[33,3986,35,3987,35,3995,31],{},[37,3988,3989],{},[41,3990,3991,3993],{},[44,3992,760],{},[44,3994,763],{},[54,3996,39,3997,39,4007,39,4015,39,4023,35],{},[41,3998,3999,4002],{},[60,4000,4001],{},"简短语音",[60,4003,4004,4006],{},[73,4005,83],{}," 接受最多 140 个字符的消息。",[41,4008,4009,4012],{},[60,4010,4011],{},"单行限制",[60,4013,4014],{},"多行消息会被拒绝。",[41,4016,4017,4020],{},[60,4018,4019],{},"禁止代码或日志",[60,4021,4022],{},"类代码文本、命令输出、URL、文件路径和看起来像密钥的文本会被拒绝。",[41,4024,4025,4028],{},[60,4026,4027],{},"尽力可用性",[60,4029,4030],{},"如果桌面应用已关闭，工具会返回 MCP 错误，而不是导致你的助手崩溃。",[12,4032,17,4034,17,4036,17,4040,17,4056,17,4060,17,4075,17,4079],{"id":816,"className":4033},[16],[19,4035,820],{"id":820},[307,4037,4039],{"id":4038},"mcp-工具未出现","MCP 工具未出现",[151,4041,31,4042,31,4045,31,4048,31,4053,17],{},[154,4043,4044],{},"更改配置后重启或重新加载你的 MCP 客户端。",[154,4046,4047],{},"确认客户端支持 stdio MCP server。",[154,4049,838,4050,4052],{},[73,4051,2522],{},"，确认 npm 能解析该包。",[154,4054,4055],{},"检查你的配置是否使用了客户端对应的正确根键。",[307,4057,4059],{"id":4058},"工具出现但-openpets-不可用","工具出现但 OpenPets 不可用",[151,4061,31,4062,31,4064,31,4069,17],{},[154,4063,3659],{},[154,4065,4066,4067,322],{},"让助手调用 ",[73,4068,75],{},[154,4070,4071,4072,4074],{},"如果使用了 ",[73,4073,1336],{},"，请通过 OpenPets 桌面应用或 OpenPets CLI 确认该宠物 ID 已安装。",[307,4076,4078],{"id":4077},"我应该使用通用-mcp-还是专用集成","我应该使用通用 MCP 还是专用集成？",[23,4080,4081],{},"\n    使用 Claude Code 或 OpenCode 时，请使用对应的专用页面，它们包含专属设置流程和托管指令。当你的工具支持 MCP 但 OpenPets 尚未为其提供专用设置页面时，使用通用 MCP。\n  ",{"title":909,"searchDepth":910,"depth":910,"links":4083},[4084,4085,4086,4087,4088,4089,4090,4091],{"id":21,"depth":910,"text":21},{"id":3343,"depth":910,"text":3343},{"id":3815,"depth":910,"text":3816},{"id":1127,"depth":910,"text":1127},{"id":3902,"depth":910,"text":3902},{"id":3948,"depth":910,"text":3948},{"id":745,"depth":910,"text":745},{"id":820,"depth":910,"text":820,"children":4092},[4093,4094,4095],{"id":4038,"depth":917,"text":4039},{"id":4058,"depth":917,"text":4059},{"id":4077,"depth":917,"text":4078},"通过已发布的 OpenPets MCP server、安全工具、宠物路由和本地桌面 IPC，将任何支持 stdio MCP 的助手连接到 OpenPets。","stdio MCP","fa6-solid:plug",{},"通用 MCP",6,"/zh/integrations/mcp",{"title":3718,"description":4096},"zh/integrations/mcp","使用已发布的 @open-pets/mcp server，将任何支持 stdio MCP 的助手连接到 OpenPets。","t20qUlLYIykkz_UPmnDq080_SdQt3bSkkhGKSn0--Uo",{"id":4108,"title":4109,"active":4110,"body":4111,"description":4125,"extension":377,"eyebrow":4126,"icon":4127,"image":935,"meta":4128,"name":4129,"navTitle":4129,"navigation":7,"order":4130,"path":4131,"seo":4132,"slug":4133,"status":4118,"stem":4134,"summary":4135,"toc":935,"__hash__":4136},"integrations_zh/zh/integrations/windsurf.md","Windsurf + OpenPets",false,{"type":9,"value":4112,"toc":4122},[4113],[12,4114,17,4116,17,4119],{"className":4115},[16],[19,4117,4118],{"id":4118},"即将推出",[23,4120,4121],{},"\n    Windsurf 集成文档尚未公开。当支持的 MCP 设置方式准备就绪后，OpenPets 将在此处进行记录。\n  ",{"title":909,"searchDepth":910,"depth":910,"links":4123},[4124],{"id":4118,"depth":910,"text":4118},"Windsurf 与 OpenPets 的集成详情即将推出。","MCP 配置","simple-icons:windsurf",{},"Windsurf",8,"/zh/integrations/windsurf",{"title":4109,"description":4125},"windsurf","zh/integrations/windsurf","Windsurf 支持正在计划中。本指南将在准备就绪时介绍 MCP 配置和安全代理指令。","TrhuCFI4sUfjcp0bzM6WKoKrCgikyZwOxvDJBfHVAYQ",{"id":4138,"title":4139,"active":4110,"body":4140,"description":4153,"extension":377,"eyebrow":4126,"icon":935,"image":4154,"meta":4155,"name":4156,"navTitle":4156,"navigation":7,"order":4157,"path":4158,"seo":4159,"slug":4160,"status":4118,"stem":4161,"summary":4162,"toc":935,"__hash__":4163},"integrations_zh/zh/integrations/zed.md","Zed + OpenPets",{"type":9,"value":4141,"toc":4150},[4142],[12,4143,17,4145,17,4147],{"className":4144},[16],[19,4146,4118],{"id":4118},[23,4148,4149],{},"\n    Zed 集成文档尚未公开。当支持的上下文服务器设置方式准备就绪后，OpenPets 将在此处进行记录。\n  ",{"title":909,"searchDepth":910,"depth":910,"links":4151},[4152],{"id":4118,"depth":910,"text":4118},"Zed 与 OpenPets 的集成详情即将推出。","/integrations/zed.svg",{},"Zed",9,"/zh/integrations/zed",{"title":4139,"description":4153},"zed","zh/integrations/zed","Zed 支持正在计划中。本指南将在准备就绪时介绍上下文服务器设置和项目规则。","0TEmr6grR61TXLsRUXHG8ICcXE_cO-GEemyMzFljTow",{"id":4165,"title":4166,"active":4110,"body":4167,"description":4180,"extension":377,"eyebrow":4126,"icon":935,"image":4181,"meta":4182,"name":4183,"navTitle":4183,"navigation":7,"order":4184,"path":4185,"seo":4186,"slug":4187,"status":4118,"stem":4188,"summary":4189,"toc":935,"__hash__":4190},"integrations_zh/zh/integrations/vscode.md","VS Code + OpenPets",{"type":9,"value":4168,"toc":4177},[4169],[12,4170,17,4172,17,4174],{"className":4171},[16],[19,4173,4118],{"id":4118},[23,4175,4176],{},"\n    VS Code 集成文档尚未公开。当支持的 MCP 设置方式准备就绪后，OpenPets 将在此处进行记录。\n  ",{"title":909,"searchDepth":910,"depth":910,"links":4178},[4179],{"id":4118,"depth":910,"text":4118},"VS Code 与 OpenPets 的集成详情即将推出。","/integrations/vscode.svg",{},"VS Code",10,"/zh/integrations/vscode",{"title":4166,"description":4180},"vscode","zh/integrations/vscode","VS Code 支持正在计划中。本指南将在准备就绪时介绍 Copilot MCP 设置方式。","edIeCsjLfHRwGJmCDXEptAEytyt1VfqZvYzIxVayf8k",1781360002449]