从其他 Agent 导入

hermes import-agent 用一条命令把你现有的 Claude Code 或 OpenAI Codex CLI 设置导入 Hermes。它沿用与 hermes claw migrate 相同的"先预览后执行"模式:在写入任何内容之前,你总能看到逐项计划,而 --dry-run 永远不会触碰磁盘。

hermes import-agent                    # 自动检测 ~/.claude 或 ~/.codex
hermes import-agent claude-code        # 从 ~/.claude 导入
hermes import-agent codex              # 从 ~/.codex 导入
hermes import-agent claude-code --dry-run          # 仅预览
hermes import-agent codex --source /path/to/.codex # 自定义路径
hermes import-agent claude-code --overwrite --yes  # 覆盖冲突,跳过提示

导入哪些内容

Claude Code(~/.claude)

Claude CodeHermes
CLAUDE.md(全局指令)~/.hermes/memories/MEMORY.md 中的记忆条目
settings.json → permissions.allow(Bash(...) 规则)config.yaml 中的 command_allowlist
settings.json → permissions.deny(Bash(...) 规则)config.yaml 中的 approvals.deny
mcpServers(来自 ~/.claude.json 和 settings.json)config.yaml 中的 mcp_servers
skills/<name>/(含 SKILL.md 的目录)~/.hermes/skills/claude-code-imports/<name>/
commands/*.md(斜杠命令)跳过并给出提示——请将其改造成 skill

Claude 的 Bash(npm run test:*) 前缀规则会变成 npm run test* 通配符。非 Bash 权限规则(Read(...)、WebFetch 等)用于管控 Claude 专属工具,会被报告为"未映射"而非导入。

Codex CLI(~/.codex)

Codex CLIHermes
AGENTS.md(全局指令)~/.hermes/memories/MEMORY.md 中的记忆条目
config.toml → [mcp_servers.*]config.yaml 中的 mcp_servers
memories/*.md~/.hermes/memories/MEMORY.md 中的记忆条目
skills/<name>/(含 SKILL.md 的目录)~/.hermes/skills/codex-imports/<name>/

永不导入的内容

API key 与凭据。 凭据文件(~/.claude/.credentials.json、~/.codex/auth.json)永远不会被读取;MCP 服务器的环境变量或请求头中名称形似机密的项(*_TOKEN、*_API_KEY、Authorization 等)会被剥离并列入报告,方便你有意识地重新添加。运行 hermes setup 配置提供商,或把机密写入 ~/.hermes/.env。

行为说明

  • 永远先预览。 命令在应用前会打印完整计划;在非交互会话中,除非传入 --yes,否则会停在预览阶段。
  • 合并而非替换。 记忆条目会与你现有的 MEMORY.md 去重;允许/拒绝规则模式会与 config.yaml 中已有的内容合并。
  • 冲突默认跳过。 Hermes 中已存在的 MCP 服务器或 skill 会被报告为冲突;传入 --overwrite 即可替换。
  • 畸形文件不会中断整个流程。 损坏的 settings.json 或 config.toml 会在报告中成为单条错误,其余内容照常导入。
  • 来自 OpenClaw?请改用 hermes claw migrate。

保持导入同步

每次成功导入都会把来源(及其读取过的所有内容的摘要)登记到 ~/.hermes/import-sync.json。当对方 agent 的设置日后发生变化——新增 skill、编辑 CLAUDE.md/AGENTS.md、添加 MCP 服务器——用以下命令拉取变更:

hermes import-agent --sync            # 重新导入所有发生变化的来源
hermes import-agent --sync --dry-run  # 预览同步会做什么

同步无提示且开销很低:文件未变化的来源会通过摘要比对跳过,因此可以安全地定时运行(例如每天一次的 cron 任务)。规则:

  • 记忆与配置合并始终去重——同步绝不会复制你已有的条目或模式。
  • 此前由 import-agent 导入的 skill,在源副本变化时会就地刷新。
  • 你自己在导入分类下创建或修改的 skill 绝不会被覆盖——它们保持常规冲突语义(手动运行时加 --overwrite 可强制覆盖)。
  • 凭据文件永远不会触发同步——~/.claude/.credentials.json 或 ~/.codex/auth.json 中的 token 刷新会被摘要比对忽略,机密仍会从所有导入内容中剥离。

这借鉴了 ChatGPT Work 的 Settings > Import 自动更新机制,但改造成一条显式、可审查的命令,而非后台服务。

该清单按 profile 区分。用 hermes profile create <name> --clone --sync-imports 创建的 profile 会继承它,因此 hermes -p <name> import-agent --sync 会持续从相同的外部目录树拉取(参见 Profiles)。