安装 Cockpit Codex 插件

先用 Dart 安装 Cockpit,再从 cockpit-dev/cockpit 安装 cockpit@cockpit。插件会登记本地 cockpit_mcp 服务。

Cockpit 插件先 dart pub global activate cockpit any,再 plugin add cockpit@cockpit。官方 INSTALL.md 和 agent-integrations.md 都提供 Codex 安装说明。Cockpit 是宿主机上的 Dart 可执行文件,不是 Flutter 应用依赖;插件只捆技能和 MCP 适配器,不会cockpit_mcp 二进制拷进缓存。

先装运行时,并让 Dart 全局 bin 在 PATH 里(常见是 ~/.pub-cache/bin)。不要 flutter pub global activate cockpit,也不要从某个 app 的依赖图里装宿主:

dart pub global activate cockpit any
cockpit help
which cockpit_mcp
codex plugin marketplace add cockpit-dev/cockpit
codex plugin add cockpit@cockpit

清单 .agents/plugins/marketplace.json 的 name 是 cockpit,插件 name 也是 cockpit,source.path 是 ./plugins/codex/cockpit,所以是 cockpit@cockpit。现行插件版本是 4.9.0。codex plugin list 应看到 installed, enabled。0.154 起可先检查当前会话;未显示插件时再新开会话。清单 authenticationON_INSTALL:装插件时 Codex 会要你确认,不是 mcp login,也没有 API key。

已装过就先刷新快照再装一次缓存:

codex plugin marketplace upgrade cockpit
codex plugin add cockpit@cockpit

upgrade 用清单名 cockpit,不是仓库路径 cockpit-dev/cockpit。装完或升级后新开会话。插件 .mcp.json 是:

{
  "mcpServers": {
    "cockpit": {
      "type": "stdio",
      "command": "cockpit_mcp",
      "args": []
    }
  }
}

command 走 PATH 上的 cockpit_mcp,无参。不要在 MCP handshake 之外裸跑 cockpit_mcp。只要 MCP、不装插件时:

codex mcp add cockpit -- cockpit_mcp
[mcp_servers.cockpit]
command = "cockpit_mcp"
args = []
enabled = true

用户配置中的服务名是 cockpit。这是本机 stdio,不要 codex mcp login cockpit。已经用插件登记过就不要mcp add 同一张 cockpit 表。CLI + Skill 是默认控制面;MCP 是可选 typed 传输。两者打到同一套 Supervisor,同一任务不要两套一起跑,会重复 mutation。文档:装插件不等于授权去 inspect / control / start / stop 应用;用户明确说用 Cockpit 才激活。

升级运行时先 cockpit update --check,有 nextcockpit update,然后 cockpit skill 刷新技能提示。报错提到无关 Flutter 插件(例如 ffmpeg_kit_extended_flutter)或 Dart native-assets 时,不要加编译实验旗标;核对 dart --versionwhich dartwhich cockpitcockpit --version,换到中性目录重跑 dart pub global activate cockpit any

宿主自检:cockpit helpcockpit --versioncockpit daemon statuscockpit session list。对 Flutter 项目才 cockpit target discover,读清 id / name / platform / emulator / sdk,再 cockpit dev start --device YOUR_DEVICE_ID。多行兼容时问用户选哪一个,不要隐式选主机、Flutter 默认设备或在模拟器与真机之间切换。deviceAmbiguous 就指定一个已列出的 id;deviceNotFound 修那个设备再 discover。装宿主运行时或技能本身不必 discover。这不是 Arenukvern 的 Flutter MCP toolkit,也不是 dart-lang 官方 Dart MCP。

点按、热重载、起停应用保留操作审批。

网页 Cloud 不读取 ~/.codex/config.toml,也碰不到你这台本机 cockpit_mcp。配置后重新打开会话。用 codex mcp get cockpit 看传输是 stdio、命令是 cockpit_mcp

来源