Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

OpenCode

OpenCode 是一个开源的 AI 编程工具,对 espctl 有一流支持。

配置

写入项目目录下的 opencode.json,或者 ~/.config/opencode/opencode.json 让 espctl 全局可用:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "espctl": {
      "type": "local",
      "command": ["/path/to/espctl", "mcp", "serve"],
      "enabled": true,
      "environment": {
        "CONTROL_BASE_URL": "https://esphome.cloud",
        "MCP_AUTH_SECRET": "your-access-key"
      }
    }
  }
}

和基于 JSON 的 AI 工具相比,有四点要注意:

  1. 顶层 key 是 mcp,不是 mcpServers
  2. command一个数组,程序和所有参数都在一起,不是分开的 command + args
  3. 环境变量 key 是 environment,不是 env
  4. type 必须是 "local",因为 espctl 是在你电脑上启动的程序。

其他路径/值规则和 Claude Code 那一章一样。

看看是不是工作了

重启 OpenCode。在任意对话里:

你能调用哪些 espctl 工具?

应该看到标准的约 40 个工具列表。如果没有,OpenCode 的日志会显示 实际错误 —— Linux 上通常在 ~/.local/share/opencode/logs/,macOS 上在 ~/Library/Logs/opencode/

OpenCode 特有注意事项

  • OpenCode 支持每个服务自己的 cwd 字段,和 command 同一层:
    "espctl": {
      "type": "local",
      "command": ["/path/to/espctl", "mcp", "serve"],
      "cwd": "/path/to/your/esp-idf/project",
      "enabled": true,
      "environment": { ... }
    }
    
  • enabled 标志可以让你保留 espctl 配置但临时禁用它,而不需要 删整个条目。

提示

问 OpenCode:

读取 install://opencode 资源。

…espctl 会返回一段可粘贴的配置块。