跳转到内容
EN

支持的 agent 和文件位置

HarnessKit 支持 17 个 agent。本页列出每个 agent 把 skill、MCP server、hook 和规则放在哪里,以及禁用其中某一项时 HarnessKit 会执行什么操作。表格由本站的数据生成,这些数据依据 HarnessKit 的 adapter 代码整理,代码中每个 agent 对应一个文件。

以 ~/ 开头的路径位于你的主目录下,Windows 上的主目录为 C:\Users\<用户名>\。以 <project>/ 开头的路径位于项目中,以 / 结尾的是文件夹。若 agent 有多个 skill 文件夹,HarnessKit 会安装到列出的第一个。Hermes 例外,skill 会安装到分类文件夹中,详见其小节。以上均为默认路径;若可以用环境变量更改位置,对应 agent 的小节中会注明。

只要 agent 的主目录(见下表)存在,HarnessKit 就视其为已安装。Devin Desktop 还会识别 ~/.devin/extensions/,Pi 则要求 ~/.pi/agent/ 存在。因此,其他工具创建的文件夹也可能让某个 agent 看起来已安装。

有些 skill 文件夹是共享的。多个 agent 都读取 ~/.agents/skills/,各 agent 的小节中注明了是否读取。<project>/.agents/skills/ 也是共享的:HarnessKit 把它列在 Codex、Antigravity、Qoder CN 和 Pi 下,Gemini CLI、Copilot、Grok Build 和 DeepSeek Harness 也会从这里读取 skill。在共享文件夹中禁用或删除一个 skill,所有读取该文件夹的 agent 都会受到影响。

本页不涉及 plugin。哪些 agent 有 plugin、HarnessKit 如何禁用 plugin,请参阅扩展。

agent主目录skill 安装位置
Claude Code~/.claude/~/.claude/skills/
Codex~/.codex/~/.agents/skills/
Gemini CLI~/.gemini/~/.gemini/skills/
Cursor~/.cursor/~/.cursor/skills/
Antigravity~/.gemini/antigravity/~/.gemini/antigravity/skills/
Copilot~/.copilot/~/.copilot/skills/
Devin Desktop~/.codeium/windsurf/~/.codeium/windsurf/skills/
OpenCode~/.config/opencode/~/.config/opencode/skills/
Hermes~/.hermes/~/.hermes/skills/local/
Kiro~/.kiro/~/.kiro/skills/
Oh My Pi~/.omp/~/.omp/agent/skills/
DeepSeek Harness~/.dsh/~/.dsh/skills/
Grok Build~/.grok/~/.grok/skills/
Qoder CN~/.qoder-cn/~/.qoder-cn/skills/
OpenClaw~/.openclaw/~/.openclaw/skills/
PenguinHarness~/.penguin/data/~/.penguin/data/<penguin-project>/agents/<agent>/agent_state/skills/
Pi~/.pi/~/.pi/agent/skills/

下面每个 agent 的小节列出 MCP、hook 和规则文件及其格式。hook 格式按文件结构的出处命名:若其他 agent 沿用 Claude Code 的文件结构,格式也写作「Claude Code JSON」。

除 Hermes 外,禁用 skill 都是把 SKILL.md 改名为 SKILL.md.disabled,单文件 skill 则把 <name>.md 改名为 <name>.md.disabled。Hermes 的 skill 不改名,HarnessKit 会把它的名称加入 ~/.hermes/config.yaml 的 skills.disabled。MCP server 和 hook 则取决于 agent 自身是否有开关:若有,就使用它的开关;若没有,HarnessKit 会把这一条从 agent 的文件中删除,并在自己的数据库中保存一份快照,即原样的副本。

主目录 ~/.claude/
skill ~/.claude/skills/
<project>/.claude/skills/
共享 skill 不读取
MCP server ~/.claude.json
<project>/.mcp.json
JSON,位于 mcpServers 下
hook ~/.claude/settings.json
<project>/.claude/settings.json
Claude Code JSON,使用 Claude Code 的事件名
规则 ~/.claude/CLAUDE.md
~/.claude/rules/
<project>/CLAUDE.md
<project>/.claude/CLAUDE.md
<project>/.claude/rules/
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
hook:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
  • HarnessKit 只读取 ~/.claude.json 顶层的 mcpServers。claude mcp add 默认保存到 local 范围,即同一文件的 projects 下,HarnessKit 暂不列出这些 server。
主目录 ~/.codex/
skill ~/.agents/skills/
~/.codex/skills/
<project>/.agents/skills/
共享 skill 读取 ~/.agents/skills/
MCP server ~/.codex/config.toml
<project>/.codex/config.toml
TOML,位于 mcp_servers 下
hook ~/.codex/hooks.json
<project>/.codex/hooks.json
Claude Code JSON,使用 Claude Code 的事件名
规则 ~/.codex/AGENTS.md
~/.codex/AGENTS.override.md
~/.codex/TEAM_GUIDE.md
~/.codex/.agents.md
<project>/AGENTS.md
<project>/AGENTS.override.md
<project>/TEAM_GUIDE.md
<project>/.agents.md
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
hook:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
  • 只有 Codex 的全局 skill 安装在共享的 ~/.agents/skills/ 文件夹中。
  • 若 config.toml 设置了 project_doc_fallback_filenames,HarnessKit 会改为按这些文件名查找,不再使用上面 4 个规则文件名。
  • HarnessKit 不读取 Codex 自带的 skill 开关,即 config.toml 中的 [[skills.config]],因此在那里禁用的 skill 仍显示为已启用。
主目录 ~/.gemini/
skill ~/.gemini/skills/
~/.agents/skills/
<project>/.gemini/skills/
共享 skill 读取 ~/.agents/skills/
MCP server ~/.gemini/settings.json
<project>/.gemini/settings.json
JSON,位于 mcpServers 下
hook ~/.gemini/settings.json
Claude Code JSON,使用自己的事件名
规则 ~/.gemini/GEMINI.md
<project>/GEMINI.md
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
hook:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
  • 项目中向下两层文件夹以内的 GEMINI.md,HarnessKit 也会列出。
主目录 ~/.cursor/
skill ~/.cursor/skills/
~/.agents/skills/
<project>/.cursor/skills/
共享 skill 读取 ~/.agents/skills/
MCP server ~/.cursor/mcp.json
<project>/.cursor/mcp.json
JSON,位于 mcpServers 下
hook ~/.cursor/hooks.json
<project>/.cursor/hooks.json
Cursor JSON,使用自己的事件名
规则 <project>/.cursor/rules/
<project>/.cursorrules
<project>/AGENTS.md
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
hook:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
  • 在 HarnessKit 中,Cursor 只有项目级规则。
  • HarnessKit 会列出 .cursor/rules/ 中的 .mdc 文件,包括子文件夹中的文件。
主目录 ~/.gemini/antigravity/
skill ~/.gemini/antigravity/skills/
<project>/.agents/skills/
<project>/.agent/skills/
共享 skill 不读取
MCP server ~/.gemini/antigravity/mcp_config.json
JSON,位于 mcpServers 下
hook HarnessKit 不管理
规则 ~/.gemini/GEMINI.md
<project>/.agents/rules/
<project>/.agent/rules/
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
  • HarnessKit 也会在 ~/.gemini/antigravity/skills.txt 列出的文件夹中查找 skill。
  • Antigravity 和 Gemini CLI 都读取 ~/.gemini/GEMINI.md。
主目录 ~/.copilot/
skill ~/.copilot/skills/
~/.agents/skills/
<project>/.github/skills/
共享 skill 读取 ~/.agents/skills/
MCP server ~/Library/Application Support/Code/User/mcp.json
<project>/.vscode/mcp.json
JSON,位于 servers 下
hook ~/.copilot/hooks/hooks.json
Copilot JSON,使用 Claude Code 的事件名
规则 ~/.copilot/copilot-instructions.md
~/.copilot/instructions/
<project>/.github/copilot-instructions.md
<project>/.github/instructions/
<project>/AGENTS.md
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
hook:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
  • MCP 文件是 VS Code 用户级的 mcp.json。上面是 macOS 的路径;Linux 上为 ~/.config/Code/User/mcp.json,Windows 上为 ~/AppData/Roaming/Code/User/mcp.json。
  • HarnessKit 读取 ~/.copilot/hooks/ 中的所有 .json 文件,新添加的 hook 写入 hooks.json。
  • HarnessKit 会列出 instructions/ 文件夹中以 .instructions.md 结尾的文件,包括子文件夹中的文件。
  • HarnessKit 暂不读取 Copilot CLI 的 ~/.copilot/mcp-config.json,也不读取项目根目录的 .mcp.json。
主目录 ~/.codeium/windsurf/
skill ~/.codeium/windsurf/skills/
~/.agents/skills/
<project>/.devin/skills/
<project>/.windsurf/skills/
共享 skill 读取 ~/.agents/skills/
MCP server ~/.codeium/windsurf/mcp_config.json
JSON,位于 mcpServers 下
hook ~/.codeium/windsurf/hooks.json
<project>/.windsurf/hooks.json
Devin Desktop JSON,使用自己的事件名
规则 ~/.codeium/windsurf/memories/global_rules.md
~/.codeium/windsurf/global_rules.md
<project>/.devin/rules/
<project>/.windsurfrules
<project>/.windsurf/rules/
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
hook:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
  • Devin Desktop 原名 Windsurf,因此全局文件夹和部分项目文件仍沿用这一名称。
  • ~/.codeium/windsurf/global_rules.md 是旧位置,HarnessKit 仍会列出。
  • HarnessKit 管理的是 Devin Desktop 中的 Cascade agent。Devin CLI 和 Devin Local 的设置在 ~/.config/devin/,HarnessKit 暂不支持。
主目录 ~/.config/opencode/
skill ~/.config/opencode/skills/
~/.agents/skills/
<project>/.opencode/skills/
共享 skill 读取 ~/.agents/skills/
MCP server ~/.config/opencode/opencode.json
<project>/opencode.json
JSONC,位于 mcp 下
hook HarnessKit 不管理
规则 ~/.config/opencode/AGENTS.md
<project>/AGENTS.md
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
  • opencode.json 和 opencode.jsonc 同时存在时,HarnessKit 会从两个文件中读取 MCP server,同名的以 .jsonc 中的为准,与 OpenCode 的行为一致。写入时,若存在 opencode.jsonc 则写入它,否则写入 opencode.json,全局和项目中均是如此。
主目录 ~/.hermes/
skill ~/.hermes/skills/local/
~/.hermes/skills/
共享 skill 不读取
MCP server ~/.hermes/config.yaml
YAML,位于 mcp_servers 下
hook ~/.hermes/config.yaml
Hermes YAML,使用自己的事件名
规则 ~/.hermes/SOUL.md
禁用方式 skill:把该 skill 的名称加入 ~/.hermes/config.yaml 的 skills.disabled。
MCP server:为该 server 设置 enabled: false。
hook:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
  • HarnessKit 会列出 ~/.hermes/skills/ 下的每个 SKILL.md,包括子文件夹中的。其中的分类文件夹仅用于整理 skill。单独安装一个 skill 时,HarnessKit 会询问放入哪个分类;批量安装时,所有 skill 都放入按字母顺序排第一的分类,没有分类则放入 local/。
  • HarnessKit 也会在 config.yaml 中 skills.external_dirs 列出的文件夹中查找 skill。
  • 在 HarnessKit 中,Hermes 没有项目范围。Hermes 本身还会在你信任的项目中读取 <project>/.hermes/skills/ 和 <project>/.agents/skills/ 中的 skill,HarnessKit 不列出这些 skill。
主目录 ~/.kiro/
skill ~/.kiro/skills/
<project>/.kiro/skills/
共享 skill 不读取
MCP server ~/.kiro/settings/mcp.json
<project>/.kiro/settings/mcp.json
JSON,位于 mcpServers 下
hook ~/.kiro/hooks/harnesskit.json
<project>/.kiro/hooks/harnesskit.json
Kiro hook JSON,使用 Claude Code 的事件名
规则 ~/.kiro/steering/
<project>/.kiro/steering/
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:为该 server 设置 disabled: true。
hook:为该 hook 设置 enabled: false。
  • HarnessKit 读取 ~/.kiro/hooks/ 和 <project>/.kiro/hooks/ 中的所有 .json 文件,新添加的 hook 写入 harnesskit.json。
主目录 ~/.omp/
skill ~/.omp/agent/skills/
<project>/.omp/skills/
共享 skill 不读取
MCP server ~/.omp/agent/mcp.json
<project>/.omp/mcp.json
JSON,位于 mcpServers 下
hook HarnessKit 不管理
规则 ~/.omp/agent/AGENTS.md
~/.omp/agent/RULES.md
~/.omp/agent/rules/
<project>/.omp/AGENTS.md
<project>/.omp/RULES.md
<project>/.omp/rules/
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:为该 server 设置 enabled: false,并将其名称从 ~/.omp/agent/mcp.json 的 enabledServers 中移除。
  • HarnessKit 只读取默认 profile,不读取 ~/.omp/profiles/ 下的其他 profile。
  • Oh My Pi 本身也会读取 ~/.agents/skills/ 和 ~/.claude/skills/,但 HarnessKit 不把这两个文件夹列在 Oh My Pi 下。
主目录 ~/.dsh/
skill ~/.dsh/skills/
~/.agents/skills/
<project>/.dsh/skills/
共享 skill 读取 ~/.agents/skills/
MCP server ~/.dsh/cordis.patch.yml
YAML
hook HarnessKit 不管理
规则 ~/.dsh/AGENTS.md
<project>/AGENTS.md
<project>/CLAUDE.md
<project>/AGENTS.local.md
<project>/CLAUDE.local.md
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:在 cordis.patch.yml 末尾由 HarnessKit 管理的那一段中,为该 server 写入 disabled: true。
  • 每个 MCP server 都是一行名为 @deepseek-ai/dsh-mcp-client 的 plugin。HarnessKit 只读取主目录下的 patch 文件,不读取各 profile 自己的 patch 文件。
  • DSH_HOME 可以更改主目录的位置,DSH_AGENTS_HOME 可以更改共享的 ~/.agents/ 文件夹的位置。
主目录 ~/.grok/
skill ~/.grok/skills/
~/.agents/skills/
<project>/.grok/skills/
共享 skill 读取 ~/.agents/skills/
MCP server ~/.grok/config.toml
<project>/.grok/config.toml
TOML,位于 mcp_servers 下
hook ~/.grok/hooks/harnesskit.json
<project>/.grok/hooks/harnesskit.json
Claude Code JSON,使用 Claude Code 的事件名
规则 ~/.grok/AGENTS.md
~/.grok/rules/
<project>/AGENTS.md
<project>/Agents.md
<project>/AGENT.md
<project>/.grok/rules/
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:把该 server 的名称加入 ~/.grok/config.toml 的 disabled_mcp_servers。若 server 就定义在这个文件中,还会为它设置 enabled = false。
hook:把该 hook 加入 ~/.grok/disabled-hooks。
  • 嵌套文件夹中的 skill 也会列出,不限于第一层。
  • HarnessKit 读取 ~/.grok/hooks/ 和 <project>/.grok/hooks/ 中的所有 .json 文件,新添加的 hook 写入 harnesskit.json。
  • GROK_HOME 可以更改主目录的位置。
主目录 ~/.qoder-cn/
skill ~/.qoder-cn/skills/
~/.agents/skills/
<project>/.agents/skills/
共享 skill 读取 ~/.agents/skills/
MCP server ~/.qoder-cn/settings.json
JSON,位于 mcpServers 下
hook ~/.qoder-cn/settings.json
<project>/.qoder/settings.json
Claude Code JSON,使用 Claude Code 的事件名
规则 ~/.qoder-cn/AGENTS.md
~/.qoder-cn/rules/
<project>/AGENTS.md
<project>/AGENTS.local.md
<project>/.qoder/rules/
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
hook:删除该条目,并在 HarnessKit 的数据库中保留一份快照。
  • HarnessKit 把项目 skill 安装到共享的 <project>/.agents/skills/ 文件夹,该文件夹也列在 Codex、Antigravity 和 Pi 下。你自行放入 <project>/.qoder/skills/ 的 skill 不会列出。
  • HarnessKit 不管理 Qoder CN 的项目级 MCP server。
  • HarnessKit 不读取 QODERCN_CONFIG_DIR,只在 ~/.qoder-cn/ 中查找 Qoder CN。
  • HarnessKit 不读取 Qoder CN 自带的 skills.disabled 列表(位于 settings.json 中),因此在那里禁用的 skill 仍显示为已启用。
主目录 ~/.openclaw/
skill ~/.openclaw/skills/
~/.openclaw/workspace/skills/
~/.openclaw/workspace/.agents/skills/
~/.agents/skills/
共享 skill 读取 ~/.agents/skills/
MCP server ~/.openclaw/openclaw.json
JSON5,位于 mcp.servers 下
hook HarnessKit 不管理
规则 ~/.openclaw/workspace/AGENTS.md
~/.openclaw/workspace/SOUL.md
~/.openclaw/workspace/IDENTITY.md
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:为该 server 设置 enabled: false。
  • openclaw.json 中列出的每个 agent workspace 都有自己的 skills/、.agents/skills/ 和规则文件。上面列出的是默认 workspace 的路径。
  • 只有 OpenClaw 使用默认的状态文件夹 ~/.openclaw/ 时,HarnessKit 才会为它读取 ~/.agents/skills/。
  • 在 HarnessKit 中,OpenClaw 没有项目范围。
  • OPENCLAW_STATE_DIR 可以更改状态文件夹 ~/.openclaw/ 的位置。OPENCLAW_CONFIG_PATH 可以更改 openclaw.json 的位置;未设置 OPENCLAW_STATE_DIR 时,HarnessKit 安装 skill 所用的 skills/ 文件夹也会随之移动。openclaw.json 未指定默认 workspace 时,OPENCLAW_WORKSPACE_DIR 可以更改它的位置。HarnessKit 不读取 OPENCLAW_PROFILE。
主目录 ~/.penguin/data/
skill ~/.penguin/data/<penguin-project>/agents/<agent>/agent_state/skills/
共享 skill 不读取
MCP server HarnessKit 不管理
hook HarnessKit 不管理
规则 ~/.penguin/data/<penguin-project>/agents/<agent>/agent_state/AGENTS.md
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
  • PenguinHarness 的每个 agent 都有自己的 skill 文件夹和 AGENTS.md,HarnessKit 全部读取。
  • HarnessKit 只把 skill 安装到一个 PenguinHarness agent 的文件夹中:先按项目、再按 agent 的字母顺序排第一的那个。尚无 PenguinHarness agent 时,则没有可安装的位置。
  • HarnessKit 暂不读取 PenguinHarness 的 MCP server 和 hook。
  • 在 HarnessKit 中,PenguinHarness 没有项目范围。
  • PENGUIN_HOME 可以更改数据文件夹的位置。
主目录 ~/.pi/
skill ~/.pi/agent/skills/
~/.agents/skills/
<project>/.pi/skills/
<project>/.agents/skills/
共享 skill 读取 ~/.agents/skills/
MCP server ~/.pi/agent/mcp.json
<project>/.pi/mcp.json
JSON,位于 mcpServers 下
hook HarnessKit 不管理
规则 ~/.pi/agent/AGENTS.md
~/.pi/agent/AGENTS.override.md
~/.pi/agent/AGENTS.MD
~/.pi/agent/CLAUDE.md
~/.pi/agent/CLAUDE.MD
<project>/AGENTS.md
<project>/AGENTS.override.md
<project>/AGENTS.MD
<project>/CLAUDE.md
<project>/CLAUDE.MD
禁用方式 skill:把 SKILL.md 改名为 SKILL.md.disabled。
MCP server:为该 server 设置 enabled: false。
  • PI_CODING_AGENT_DIR 可以更改 agent 文件夹(~/.pi/agent/)的位置。
  • Pi 会读取嵌套文件夹中的 skill,HarnessKit 只列出直接位于各个 skill 文件夹中的 skill。
  • HarnessKit 不读取 Pi 的 settings.json 中的 skills 过滤规则,因此在那里排除的 skill 仍显示为已启用。
  • crates/hk-core/src/adapter/:每个 agent 一个文件,本页的所有路径都在里面。
  • crates/hk-core/src/adapter/mod.rs 定义 adapter trait、配置格式,以及各 agent 的文件会覆盖的默认值。
  • crates/hk-core/src/manager.rs 负责禁用和启用 skill、MCP server 和 hook:使用 agent 的原生开关、修改文件名,或删除条目并保存一份快照。
  • src/lib/types.ts 中定义了 AGENT_ORDER,即 agent 在整个应用和本页中的排列顺序。
  • website/src/data/agent-reference.ts 存放本页的数据。配套的测试将这份数据与各 adapter 的 Rust 测试对照:哪些 agent 有 hook、项目级 MCP 文件和项目级 hook 文件,每个 agent 的第一个项目 skill 文件夹,以及哪些 agent 有自己的 MCP 或 skill 开关。它还检查 adapter 读取的每个环境变量是否都写入了对应 agent 的说明。