[{"data":1,"prerenderedAt":890},["ShallowReactive",2],{"integrations-zh:/zh/integrations/opencode":3},{"id":4,"title":5,"active":6,"body":7,"description":879,"extension":434,"eyebrow":880,"icon":881,"image":882,"meta":883,"name":133,"navTitle":133,"navigation":6,"order":863,"path":884,"seo":885,"slug":250,"status":886,"stem":887,"summary":888,"toc":881,"__hash__":889},"integrations_zh/zh/integrations/opencode.md","OpenCode + OpenPets",true,{"type":8,"value":9,"toc":854},"minimark",[10,117,178,291,374,461,606,675,715,790],[11,12,16,17,16,21,16,25,16,110],"section",{"id":13,"className":14},"overview",[15],"docs-section","\n  ",[18,19,20],"h2",{"id":20},"此集成的功能",[22,23,24],"p",{},"\n    OpenCode 集成将 OpenCode 的活动连接到你的 OpenPets 桌面伴侣。它由两部分组成：一个用于自动反应的 OpenCode 插件，以及一个用于主动调用 OpenPets 工具的 MCP server。\n  ",[26,27,30,31,16],"div",{"className":28},[29],"docs-table-wrap","\n    ",[32,33,34,35,34,52,30],"table",{},"\n      ",[36,37,38,39,34],"thead",{},"\n        ",[40,41,42,46,49],"tr",{},[43,44,45],"th",{},"组成部分",[43,47,48],{},"功能说明",[43,50,51],{},"重要性",[53,54,38,55,38,71,38,97,34],"tbody",{},[40,56,57,58,57,65,57,68,38],{},"\n          ",[59,60,61],"td",{},[62,63,64],"strong",{},"OpenCode 插件",[59,66,67],{},"监听 OpenCode 活动，将有用的事件映射为宠物反应。",[59,69,70],{},"宠物可以自动呈现思考、编辑、测试、等待、成功或错误状态。",[40,72,57,73,57,78,57,81,38],{},[59,74,75],{},[62,76,77],{},"MCP server",[59,79,80],{},"向 OpenCode 注册 OpenPets MCP 工具。",[59,82,83,84,88,89,92,93,96],{},"OpenCode 可以主动调用 ",[85,86,87],"code",{},"openpets_status","、",[85,90,91],{},"openpets_react"," 和 ",[85,94,95],{},"openpets_say","。",[40,98,57,99,57,104,57,107,38],{},[59,100,101],{},[62,102,103],{},"托管指令",[59,105,106],{},"为 OpenPets 使用添加简短的安全引导。",[59,108,109],{},"OpenCode 知道要保持可见宠物消息简短且无敏感内容。",[22,111,112,113,116],{},"\n    运行时控制在本地进行。OpenCode 加载 OpenPets 插件或 MCP 命令，这些包使用 ",[85,114,115],{},"@open-pets/client","，客户端通过本地 IPC 与 OpenPets 桌面应用通信并更新宠物窗口。\n  ",[11,118,16,121,16,124,16,143,16,158,16,175],{"id":119,"className":120},"quick-install",[15],[18,122,123],{"id":123},"快速安装",[22,125,126,127,130,131,134,135,138,139,142],{},"\n    在 OpenPets 桌面应用中，打开 ",[62,128,129],{},"Integrations","，使用 ",[62,132,133],{},"OpenCode"," 卡片。该卡片是针对单台机器的简单设置路径：点击 ",[62,136,137],{},"Install"," 写入全局 OpenCode 设置，或点击 ",[62,140,141],{},"Configure"," 先查看详情。\n  ",[144,145,30,148,30,154,16],"figure",{"className":146},[147],"docs-screenshot",[149,150],"img",{"src":151,"alt":152,"loading":153},"/docs/opencode-integrations-grid.png","OpenPets 集成窗口，显示准备安装的 OpenCode 卡片。","lazy",[155,156,157],"figcaption",{},"集成网格。OpenCode 已激活并准备就绪；Install 开始全局设置，Configure 则打开详细设置面板。",[159,160,30,161,30,167,30,172,16],"ul",{},[162,163,164,166],"li",{},[62,165,137],{}," 为插件、MCP server 和 OpenPets 指令写入全局 OpenCode 配置。",[162,168,169,171],{},[62,170,141],{}," 打开详细的全局设置页面，包含宠物路由、命令检测、安装/移除、刷新和配置预览。",[162,173,174],{},"设置更改后重启 OpenCode，以加载插件和 MCP 配置。",[22,176,177],{},"\n    桌面设置是全局的，可能影响该机器上的每个 OpenCode 项目。如需针对特定仓库的设置，请改用项目本地 CLI 命令。\n  ",[11,179,16,182,16,185,16,188,16,198,16,266,16,273,16,277],{"id":180,"className":181},"global-setup",[15],[18,183,184],{"id":184},"全局桌面设置",[22,186,187],{},"\n    OpenCode 详情面板仅管理全局设置。它会检测 OpenCode，显示 OpenPets 全局配置是否已安装，允许你选择宠物，并在写入前预览 JSON。\n  ",[144,189,30,191,30,195,16],{"className":190},[147],[149,192],{"src":193,"alt":194,"loading":153},"/docs/opencode-global-setup.png","OpenCode 设置详情页，显示全局设置状态、宠物路由、高级检测、安装和移除按钮，以及配置预览。",[155,196,197],{},"全局设置面板。在安装前使用它检查目标配置文件、所选宠物、命令路径和 JSON 预览。",[26,199,30,201,16],{"className":200},[29],[32,202,34,203,34,216,30],{},[36,204,38,205,34],{},[40,206,207,210,213],{},[43,208,209],{},"面板区域",[43,211,212],{},"用途",[43,214,215],{},"修改内容",[53,217,38,218,38,229,38,240,38,255,34],{},[40,219,57,220,57,223,57,226,38],{},[59,221,222],{},"全局连接",[59,224,225],{},"显示 OpenCode 是否被检测到，以及全局 OpenPets 设置的状态：已安装、就绪、自定义、冲突或错误。",[59,227,228],{},"读取 OpenCode 命令状态和全局 OpenCode 配置文件。",[40,230,57,231,57,234,57,237,38],{},[59,232,233],{},"宠物路由",[59,235,236],{},"选择 OpenCode 应指向的已安装宠物。",[59,238,239],{},"将宠物 ID 添加到插件选项和 MCP 命令中。",[40,241,57,242,57,245,57,252,38],{},[59,243,244],{},"高级检测",[59,246,247,248,251],{},"当 ",[85,249,250],{},"opencode"," 不在 PATH 中时，允许你保存完整的 OpenCode 命令路径。",[59,253,254],{},"用于检测和设置检查。",[40,256,57,257,57,260,57,263,38],{},[59,258,259],{},"预览",[59,261,262],{},"显示配置文件、指令文件、清理路径和 JSON 预览。",[59,264,265],{},"允许你在安装前审核计划中的全局配置。",[22,267,268,269,272],{},"\n    除非 ",[85,270,271],{},"@open-pets/opencode"," 已被缓存或在本地安装，否则 OpenCode 可能需要 npm 或网络访问来加载已发布的插件。\n  ",[274,275,276],"h3",{"id":276},"自定义建议",[159,278,30,279,30,282,30,285,30,288,16],{},[162,280,281],{},"当你希望 OpenPets 在每个 OpenCode 项目中都可用时，使用全局设置。",[162,283,284],{},"在安装前选择宠物，这样所有全局 OpenCode 活动都会指向同一个伴侣。",[162,286,287],{},"使用配置预览确认将要写入的具体文件。",[162,289,290],{},"如果你的 OpenCode 二进制文件安装在非标准 PATH 位置，使用命令路径字段。",[11,292,16,295,16,298,16,301,16,322,16,371],{"id":293,"className":294},"project-local-setup",[15],[18,296,297],{"id":297},"项目本地设置",[22,299,300],{},"\n    当仓库需要拥有自己的 OpenPets 配置时，项目本地设置是更好的选择。它将插件配置和指令保存在项目中，使不同的仓库可以指向不同的宠物或策略。\n  ",[26,302,30,305,30,316,16],{"className":303},[304],"docs-code",[26,306,309,313],{"className":307},[308],"docs-code-bar",[310,311,312],"span",{},"项目设置",[310,314,315],{},"bash",[317,318,319],"pre",{},[85,320,321],{},"npx -y @open-pets/cli@latest configure --agent opencode --pet \u003Cpet-id> --cwd .",[26,323,30,325,16],{"className":324},[29],[32,326,34,327,34,340,30],{},[36,328,38,329,34],{},[40,330,331,334,337],{},[43,332,333],{},"设置方式",[43,335,336],{},"适合场景",[43,338,339],{},"文件位置",[53,341,38,342,38,355,34],{},[40,343,57,344,57,346,57,349,38],{},[59,345,184],{},[59,347,348],{},"个人机器范围的 OpenCode 设置。",[59,350,351,352,96],{},"OpenCode 配置目录，例如 ",[85,353,354],{},"~/.config/opencode/",[40,356,57,357,57,360,57,363,38],{},[59,358,359],{},"项目本地 CLI 设置",[59,361,362],{},"需要明确携带 OpenPets 设置的仓库。",[59,364,365,92,368,96],{},[85,366,367],{},".opencode/opencode.jsonc",[85,369,370],{},".opencode/openpets.md",[22,372,373],{},"\n    如果同时存在全局设置和项目设置，请优先使用项目本地配置处理仓库特定行为，全局设置仅作为默认值。\n  ",[11,375,16,378,16,381,16,384,16,388,16,391,16,407,16,417,16,421,16,424,16,440,16,443],{"id":376,"className":377},"managed-config",[15],[18,379,380],{"id":380},"托管配置与指令",[22,382,383],{},"\n    OpenPets 使用托管标记或可预测的配置结构写入插件、MCP 和指令条目。在可能的情况下使用 JSONC 感知编辑，以保留现有注释和尾随逗号。\n  ",[274,385,387],{"id":386},"opencode-配置","OpenCode 配置",[22,389,390],{},"\n    项目本地配置通过 OpenPets CLI 加载 OpenPets 插件并启动 OpenPets MCP server。已发布的设置会固定其写入的 OpenPets 包版本。\n  ",[26,392,30,394,30,402,16],{"className":393},[304],[26,395,397,399],{"className":396},[308],[310,398,367],{},[310,400,401],{},"json",[317,403,404],{},[85,405,406],{},"{\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}",[22,408,409,410,412,413,416],{},"\n    npm 插件包为 ",[85,411,271],{},"。该包导出的运行时插件 ID 为 ",[85,414,415],{},"open-pets-opencode","。\n  ",[274,418,420],{"id":419},"openpets-指令","OpenPets 指令",[22,422,423],{},"\n    OpenPets 会写入一个小型指令文件，使 OpenCode 能安全且有节制地使用可见宠物消息。请将你自己的备注添加到托管块之外。\n  ",[26,425,30,427,30,435,16],{"className":426},[304],[26,428,430,432],{"className":429},[308],[310,431,370],{},[310,433,434],{},"md",[317,436,437],{},[85,438,439],{},"\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 -->",[274,441,276],{"id":442},"自定义建议-1",[159,444,30,445,30,448,30,455,16],{},[162,446,447],{},"在 OpenPets 托管块之外添加项目特定的 OpenCode 规则。",[162,449,450,451,454],{},"通过使用不同的 ",[85,452,453],{},"--pet"," 重新运行设置，为每个仓库固定一个宠物。",[162,456,457,458,96],{},"仅当你有意刷新 OpenPets 托管条目时，才使用 ",[85,459,460],{},"--force",[11,462,16,465,16,468,16,471,16,603],{"id":463,"className":464},"plugin-events",[15],[18,466,467],{"id":467},"插件事件反应",[22,469,470],{},"\n    插件监听 OpenCode 事件，并将有意义的时刻转化为宠物反应。它会忽略 OpenPets MCP 工具调用，避免宠物对自身状态更新产生反应。\n  ",[26,472,30,474,16],{"className":473},[29],[32,475,34,476,34,492,30],{},[36,477,38,478,34],{},[40,479,480,483,486,489],{},[43,481,482],{},"OpenCode 事件",[43,484,485],{},"触发条件",[43,487,488],{},"反应",[43,490,491],{},"语音",[53,493,38,494,38,512,38,529,38,545,38,565,38,583,34],{},[40,495,496,501,504,509],{},[59,497,498],{},[85,499,500],{},"chat.message",[59,502,503],{},"任意聊天消息。",[59,505,506],{},[85,507,508],{},"thinking",[59,510,511],{},"无",[40,513,514,519,522,527],{},[59,515,516],{},[85,517,518],{},"tool.execute.before",[59,520,521],{},"工具名称包含 edit、write、patch 或 apply_patch。",[59,523,524],{},[85,525,526],{},"editing",[59,528,511],{},[40,530,531,535,538,543],{},[59,532,533],{},[85,534,518],{},[59,536,537],{},"类 shell 工具且参数看起来像测试命令。",[59,539,540],{},[85,541,542],{},"testing",[59,544,511],{},[40,546,547,552,555,560],{},[59,548,549],{},[85,550,551],{},"permission.asked",[59,553,554],{},"非 OpenPets 工具的权限请求。",[59,556,557],{},[85,558,559],{},"waiting",[59,561,562],{},[85,563,564],{},"Approval needed",[40,566,567,572,575,580],{},[59,568,569],{},[85,570,571],{},"session.error",[59,573,574],{},"OpenCode 会话错误。",[59,576,577],{},[85,578,579],{},"error",[59,581,582],{},"简短错误池消息",[40,584,585,590,596,601],{},[59,586,587],{},[85,588,589],{},"session.status",[59,591,592,593,96],{},"状态变为 ",[85,594,595],{},"idle",[59,597,598],{},[85,599,600],{},"success",[59,602,511],{},[22,604,605],{},"\n    Shell/测试检测是有意设计为粗粒度的。工具参数仅用于分类反应，不会被复制到对话气泡中。\n  ",[11,607,16,610,16,614,16,617,16,672],{"id":608,"className":609},"mcp-tools",[15],[18,611,613],{"id":612},"mcp-工具","MCP 工具",[22,615,616],{},"\n    MCP server 为 OpenCode 提供了一种主动与 OpenPets 通信的方式。当 OpenCode 需要有意地显示状态（而非仅响应生命周期事件）时使用 MCP。\n  ",[26,618,30,620,16],{"className":619},[29],[32,621,34,622,34,634,30],{},[36,623,38,624,34],{},[40,625,626,629,631],{},[43,627,628],{},"工具",[43,630,212],{},[43,632,633],{},"适用场景",[53,635,38,636,38,648,38,660,34],{},[40,637,638,642,645],{},[59,639,640],{},[85,641,87],{},[59,643,644],{},"检查桌面可达性和目标宠物。",[59,646,647],{},"设置检查和调试。",[40,649,650,654,657],{},[59,651,652],{},[85,653,91],{},[59,655,656],{},"在不显示语音的情况下更改反应。",[59,658,659],{},"静默进度状态。",[40,661,662,666,669],{},[59,663,664],{},[85,665,95],{},[59,667,668],{},"显示一条简短的安全消息。",[59,670,671],{},"有意义的进度通知、阻塞提示、完成或审核交接。",[22,673,674],{},"\n    保持语音简短且无敏感内容。不要在宠物气泡中放入代码、日志、文件路径、命令输出、提示词、URL、令牌或私有数据。\n  ",[11,676,16,679,16,681,16,684,16,701],{"id":677,"className":678},"pet-targeting",[15],[18,680,233],{"id":233},[22,682,683],{},"\n    如果未配置宠物，OpenCode 事件会指向桌面默认宠物。如果配置了宠物 ID，插件和 MCP 命令会指向该宠物。\n  ",[26,685,30,687,30,696,16],{"className":686},[304],[26,688,690,693],{"className":689},[308],[310,691,692],{},"运行时路径",[310,694,695],{},"text",[317,697,698],{},[85,699,700],{},"OpenCode\n  -> OpenPets plugin or OpenPets MCP tools\n  -> @open-pets/client\n  -> OpenPets desktop local IPC\n  -> default pet or selected agent pet",[159,702,30,703,30,706,30,709,30,712,16],{},[162,704,705],{},"未配置宠物：使用桌面默认宠物。",[162,707,708],{},"已配置已安装的宠物：使用显式代理宠物租约。",[162,710,711],{},"宠物缺失、无效或损坏：回退到默认宠物。",[162,713,714],{},"租约关闭或到期：最后一个租约结束后，代理宠物窗口关闭。",[11,716,16,719,16,722,16,725],{"id":717,"className":718},"safety",[15],[18,720,721],{"id":721},"安全性与行为",[22,723,724],{},"\n    OpenCode 集成采用即发即忘模式。如果 OpenPets 已关闭，它不应拖慢 OpenCode 或改变 OpenCode 的行为。\n  ",[26,726,30,728,16],{"className":727},[29],[32,729,34,730,34,740,30],{},[36,731,732],{},[40,733,734,737],{},[43,735,736],{},"保护机制",[43,738,739],{},"行为说明",[53,741,38,742,38,750,38,758,38,766,38,774,38,782,34],{},[40,743,744,747],{},[59,745,746],{},"反馈循环",[59,748,749],{},"OpenPets MCP 工具调用被插件事件映射器忽略。",[40,751,752,755],{},[59,753,754],{},"语音冷却",[59,756,757],{},"普通语音和错误语音均受节流限制。",[40,759,760,763],{},[59,761,762],{},"权限语音",[59,764,765],{},"权限消息有其自己的更短冷却时间。",[40,767,768,771],{},[59,769,770],{},"重复反应",[59,772,773],{},"相同的反应会被短暂抑制，避免刷屏。",[40,775,776,779],{},[59,777,778],{},"调试日志",[59,780,781],{},"路径和类密钥值会被脱敏处理。",[40,783,784,787],{},[59,785,786],{},"配置编辑",[59,788,789],{},"原子写入、备份、权限检查、符号链接拒绝和大小限制。",[11,791,16,794,16,797,16,801,16,819,16,822,16,832,16,835,16,838],{"id":792,"className":793},"troubleshooting",[15],[18,795,796],{"id":796},"故障排查",[274,798,800],{"id":799},"opencode-没有反应","OpenCode 没有反应",[159,802,30,803,30,806,30,809,30,812,16],{},[162,804,805],{},"确认 OpenPets 桌面应用正在运行。",[162,807,808],{},"更改插件或 MCP 配置后重启 OpenCode。",[162,810,811],{},"检查你的全局或项目 OpenCode 配置中是否包含 OpenPets 插件和 MCP server。",[162,813,814,815,818],{},"使用桌面详情页的 ",[62,816,817],{},"Refresh"," 操作重新检查全局设置。",[274,820,821],{"id":821},"状态显示自定义或冲突",[22,823,824,825,92,828,831],{},"\n    在强制更新前先检查 OpenCode 配置。将你自己的备注保留在 ",[85,826,827],{},"OPENPETS:START",[85,829,830],{},"OPENPETS:END"," 之外，这样 OpenPets 才能安全刷新其托管块。\n  ",[274,833,834],{"id":834},"出现了错误的宠物",[22,836,837],{},"\n    使用你想要的宠物 ID 重新运行设置。如果该宠物未安装、无效或损坏，桌面应用会回退到默认宠物。\n  ",[26,839,30,841,30,849,16],{"className":840},[304],[26,842,844,847],{"className":843},[308],[310,845,846],{},"刷新项目设置",[310,848,315],{},[317,850,851],{},[85,852,853],{},"npx -y @open-pets/cli@latest configure --agent opencode --pet \u003Cpet-id> --cwd . --force",{"title":855,"searchDepth":856,"depth":856,"links":857},"",2,[858,859,860,864,865,870,871,872,873,874],{"id":20,"depth":856,"text":20},{"id":123,"depth":856,"text":123},{"id":184,"depth":856,"text":184,"children":861},[862],{"id":276,"depth":863,"text":276},3,{"id":297,"depth":856,"text":297},{"id":380,"depth":856,"text":380,"children":866},[867,868,869],{"id":386,"depth":863,"text":387},{"id":419,"depth":863,"text":420},{"id":442,"depth":863,"text":276},{"id":467,"depth":856,"text":467},{"id":612,"depth":856,"text":613},{"id":233,"depth":856,"text":233},{"id":721,"depth":856,"text":721},{"id":796,"depth":856,"text":796,"children":875},[876,877,878],{"id":799,"depth":863,"text":800},{"id":821,"depth":863,"text":821},{"id":834,"depth":863,"text":834},"通过 OpenPets 插件、MCP 工具、全局桌面设置、项目本地设置、宠物路由以及安全托管指令，将 OpenCode 连接到 OpenPets。","伴侣插件",null,"/opencode.png",{},"/zh/integrations/opencode",{"title":5,"description":879},"已支持","zh/integrations/opencode","通过 OpenPets 插件、MCP 工具、全局设置和项目本地配置，将 OpenCode 连接到 OpenPets。","L3NpN-NkR9mnap1_2XuE2nZOvChNp4Aza2_s3CQQPlI",1779284856791]