ln-004-agent-config-sync

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
Paths: File paths (
shared/
,
references/
,
../ln-*
) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root.
路径说明: 文件路径(
shared/
references/
../ln-*
)均相对于skills仓库根目录。如果在当前工作目录(CWD)中未找到,请定位到本SKILL.md所在目录,再向上一级即为仓库根目录。

Agent Sync (Standalone Utility)

Agent 同步工具(独立实用程序)

Type: Standalone Utility Category: 0XX Shared
Synchronizes skills and MCP server configurations from Claude Code (source of truth) to Gemini CLI and Codex CLI. Creates symlinks for skills, copies/converts MCP settings.

类型: 独立实用程序 分类: 0XX 共享工具
将Claude Code(可信数据源)中的skills和MCP服务器配置同步到Gemini CLI和Codex CLI。为skills创建符号链接,复制/转换MCP设置。

When to Use This Skill

何时使用该工具

  • After adding/removing MCP servers in Claude Code settings
  • After installing new plugins in Claude Code
  • First-time setup of Gemini CLI or Codex CLI alongside Claude Code
  • Periodic sync to keep all agents aligned

  • 在Claude Code设置中添加/移除MCP服务器后
  • 在Claude Code中安装新插件后
  • 首次搭配Claude Code配置Gemini CLI或Codex CLI时
  • 定期同步以保持所有Agent配置一致

Input Parameters

输入参数

ParameterRequiredDefaultDescription
targetsNoboth
gemini
,
codex
, or
both
modeNofull
skills
(symlinks only),
mcp
(MCP only), or
full
(both)
dry_runNofalseShow planned actions without executing

参数是否必填默认值描述
targetsboth可选值:
gemini
codex
both
modefull可选值:
skills
(仅同步符号链接)、
mcp
(仅同步MCP设置)或
full
(全部同步)
dry_runfalse显示计划执行的操作但不实际执行

Workflow

工作流程

Detect OS → Discover Configs → Sync Skills → Sync MCP → Report
检测操作系统 → 发现配置信息 → 同步Skills → 同步MCP设置 → 生成报告

Phase 0: OS Detection

阶段0:操作系统检测

CheckResultImpact
uname
or platform
win32 / darwin / linuxJunction vs symlink
Home directory
$HOME
or
$USERPROFILE
Config paths
Paths by OS:
AgentWindowsmacOS / Linux
Claude
%USERPROFILE%\.claude\settings.json
~/.claude/settings.json
Gemini
%USERPROFILE%\.gemini\settings.json
~/.gemini/settings.json
Codex
%USERPROFILE%\.codex\config.toml
~/.codex/config.toml
检查项结果影响
uname
或平台信息
win32 / darwin / linux决定使用快捷方式还是符号链接
主目录
$HOME
$USERPROFILE
配置文件路径
各系统对应的路径:
AgentWindowsmacOS / Linux
Claude
%USERPROFILE%\.claude\settings.json
~/.claude/settings.json
Gemini
%USERPROFILE%\.gemini\settings.json
~/.gemini/settings.json
Codex
%USERPROFILE%\.codex\config.toml
~/.codex/config.toml

Phase 1: Discover Current State

阶段1:发现当前状态

  1. Read Claude settings:
    • Parse
      ~/.claude/settings.json
      → extract
      mcpServers
      block
    • If no
      mcpServers
      → WARN "No MCP servers configured in Claude", skip MCP sync
  2. Read target configs (if exist):
    • Gemini: Parse
      ~/.gemini/settings.json
      → extract existing
      mcpServers
    • Codex: Parse
      ~/.codex/config.toml
      → extract existing
      [mcp_servers.*]
  3. Detect installed plugins:
    • Glob
      ~/.claude/plugins/*/plugin.json
      → list plugin directories
    • Also check if skills repo itself is a plugin source
  4. Check existing symlinks:
    • ~/.gemini/skills
      → exists? points where?
    • ~/.codex/skills
      → exists? points where?
  5. Show current state:
    Current State:
    | Agent | Skills | MCP Servers | Config Exists |
    |-------|--------|-------------|---------------|
    | Claude (source) | 5 plugins | 4 servers | yes |
    | Gemini | no link | 2 servers | yes |
    | Codex | → ~/.claude/plugins | 4 servers | yes |
  1. 读取Claude设置:
    • 解析
      ~/.claude/settings.json
      → 提取
      mcpServers
      模块
    • 如果未找到
      mcpServers
      → 警告"Claude中未配置MCP服务器",跳过MCP同步步骤
  2. 读取目标配置(如果存在):
    • Gemini:解析
      ~/.gemini/settings.json
      → 提取已有的
      mcpServers
    • Codex:解析
      ~/.codex/config.toml
      → 提取已有的
      [mcp_servers.*]
  3. 检测已安装的插件:
    • 遍历
      ~/.claude/plugins/*/plugin.json
      → 列出插件目录
    • 同时检查skills仓库本身是否为插件源
  4. 检查已有的符号链接:
    • ~/.gemini/skills
      → 是否存在?指向何处?
    • ~/.codex/skills
      → 是否存在?指向何处?
  5. 显示当前状态:
    当前状态:
    | Agent | Skills | MCP 服务器 | 配置是否存在 |
    |-------|--------|-------------|---------------|
    | Claude(数据源) | 5个插件 | 4台服务器 | 是 |
    | Gemini | 无链接 | 2台服务器 | 是 |
    | Codex | → ~/.claude/plugins | 4台服务器 | 是 |

Phase 2: Sync Skills (symlinks/junctions)

阶段2:同步Skills(符号链接/快捷方式)

FOR EACH target IN (gemini, codex) WHERE target in targets:
  1. Determine link path:
    • Gemini:
      ~/.gemini/skills
    • Codex:
      ~/.codex/skills
  2. Check if already linked correctly:
    • IF link exists AND points to correct source → SKIP (already synced)
    • IF link exists AND points to wrong source → WARN, ask user before replacing
    • IF regular directory (not link) exists → WARN "Target is a real directory, not a link. Skip to avoid data loss."
  3. Determine source:
    • IF single plugin: link directly to plugin dir
    • IF multiple plugins: ask user which plugin to share
  4. Create link:
    OSCommand
    Windows
    cmd /c mklink /J "{target_path}" "{source_path}"
    macOS / Linux
    ln -s "{source_path}" "{target_path}"
  5. Verify: Check link exists and resolves correctly
针对每个在targets列表中的目标(gemini、codex)执行以下操作:
  1. 确定链接路径:
    • Gemini:
      ~/.gemini/skills
    • Codex:
      ~/.codex/skills
  2. 检查是否已正确链接:
    • 如果链接已存在且指向正确的源 → 跳过(已同步)
    • 如果链接已存在但指向错误的源 → 发出警告,询问用户后再替换
    • 如果存在的是普通目录(而非链接) → 警告"目标为真实目录,而非链接。为避免数据损失,将跳过该操作。"
  3. 确定源路径:
    • 如果是单个插件:直接链接到该插件目录
    • 如果是多个插件:询问用户要共享哪个插件
  4. 创建链接:
    操作系统命令
    Windows
    cmd /c mklink /J "{target_path}" "{source_path}"
    macOS / Linux
    ln -s "{source_path}" "{target_path}"
  5. 验证: 检查链接是否存在且指向正确

Phase 3: Sync MCP Settings

阶段3:同步MCP设置

Source:
~/.claude/settings.json
mcpServers
block
数据源:
~/.claude/settings.json
中的
mcpServers
模块

3a: Claude → Gemini (JSON → JSON)

3a:Claude → Gemini(JSON → JSON)

  1. Read Claude
    mcpServers
    as JSON object
  2. Read Gemini
    settings.json
    (or create
    {}
    if missing)
  3. Merge strategy: Claude servers override Gemini servers by key name. Gemini-only servers preserved.
  4. Write updated
    settings.json
Conversion: None needed — identical format.
  1. 读取Claude的
    mcpServers
    JSON对象
  2. 读取Gemini的
    settings.json
    (如果不存在则创建空对象
    {}
  3. 合并策略: Claude中的服务器将覆盖Gemini中同名的服务器配置。仅存在于Gemini中的服务器配置将被保留。
  4. 写入更新后的
    settings.json
格式转换: 无需转换——两者格式完全一致。

3b: Claude → Codex (JSON → TOML)

3b:Claude → Codex(JSON → TOML)

  1. Read Claude
    mcpServers
    as JSON object
  2. Read Codex
    config.toml
    (or create empty if missing)
  3. Convert each server:
    Claude JSON fieldCodex TOML fieldNotes
    command
    command
    Same
    args
    args
    JSON array → TOML array
    env
    [mcp_servers.{name}.env]
    Nested table
    type: "http"
    +
    url
    url
    HTTP transport
    type: "sse"
    +
    url
    url
    SSE transport
    Example conversion:
    json
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp"]
    }
    toml
    [mcp_servers.context7]
    command = "npx"
    args = ["-y", "@upstash/context7-mcp"]
  4. Merge strategy: Claude servers override. Codex-only servers preserved.
  5. Write updated
    config.toml
Unsupported conversions (preserve as-is in Codex):
  • bearer_token_env_var
    — no Claude equivalent
  • enabled_tools
    /
    disabled_tools
    — no Claude equivalent
  1. 读取Claude的
    mcpServers
    JSON对象
  2. 读取Codex的
    config.toml
    (如果不存在则创建空文件)
  3. 转换每个服务器配置:
    Claude JSON 字段Codex TOML 字段说明
    command
    command
    保持不变
    args
    args
    JSON数组 → TOML数组
    env
    [mcp_servers.{name}.env]
    嵌套表
    type: "http"
    +
    url
    url
    HTTP传输协议
    type: "sse"
    +
    url
    url
    SSE传输协议
    转换示例:
    json
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp"]
    }
    toml
    [mcp_servers.context7]
    command = "npx"
    args = ["-y", "@upstash/context7-mcp"]
  4. 合并策略: Claude中的服务器将覆盖Codex中同名的服务器配置。仅存在于Codex中的服务器配置将被保留。
  5. 写入更新后的
    config.toml
不支持的转换(将在Codex中保持原样):
  • bearer_token_env_var
    —— Claude中无对应字段
  • enabled_tools
    /
    disabled_tools
    —— Claude中无对应字段

Phase 4: Report

阶段4:生成报告

Sync Complete:
| Action | Target | Status |
|--------|--------|--------|
| Skills symlink | Gemini | Created → ~/.claude/plugins/... |
| Skills symlink | Codex | Already linked |
| MCP sync | Gemini | 4 servers synced (2 new, 2 updated) |
| MCP sync | Codex | 4 servers synced (1 new, 3 updated) |

同步完成:
| 操作 | 目标 | 状态 |
|--------|--------|--------|
| Skills符号链接 | Gemini | 已创建 → ~/.claude/plugins/... |
| Skills符号链接 | Codex | 已链接 |
| MCP同步 | Gemini | 4台服务器已同步(2台新增,2台更新) |
| MCP同步 | Codex | 4台服务器已同步(1台新增,3台更新) |

Critical Rules

核心规则

  1. Claude = source of truth. Never write TO Claude settings. Read-only source.
  2. Non-destructive merge. Target-only servers/settings preserved. Only Claude servers added/updated.
  3. No data loss. If target is a real directory (not symlink) — warn and skip, never delete.
  4. Backup before write. Before modifying any config file, create
    .bak
    copy.
  5. Dry run first. If
    dry_run=true
    , show all planned actions without executing.
  6. Ask on conflict. If symlink points to different source — ask user, don't auto-replace.
  1. Claude 是可信数据源。 绝不向Claude的设置中写入数据。仅作为只读数据源。
  2. 非破坏性合并。 仅存在于目标Agent中的服务器/配置将被保留。仅添加/更新来自Claude的服务器配置。
  3. 无数据损失。 如果目标路径是真实目录(而非符号链接)——发出警告并跳过操作,绝不删除任何内容。
  4. 写入前备份。 在修改任何配置文件前,创建
    .bak
    备份文件。
  5. 先执行试运行。 如果
    dry_run=true
    ,仅显示所有计划执行的操作但不实际执行。
  6. 冲突时询问用户。 如果符号链接指向错误的源——询问用户,不自动替换。

Anti-Patterns

反模式

  • Writing TO Claude settings from Gemini/Codex (reverse sync)
  • Deleting target-only MCP servers during sync
  • Creating symlinks inside symlinks (circular)
  • Modifying config files without backup

  • 从Gemini/Codex向Claude写入设置(反向同步)
  • 同步时删除仅存在于目标Agent中的MCP服务器
  • 在符号链接内部创建符号链接(循环引用)
  • 不备份就修改配置文件

Definition of Done

完成标准

#Criterion
1Claude settings read successfully
2Skills symlinks created/verified for each target
3MCP settings synced with format conversion (JSON→TOML for Codex)
4Backup files created before any config modification
5Report shown with all actions and warnings

Version: 1.0.0 Last Updated: 2026-02-15
序号判定标准
1成功读取Claude的设置
2为每个目标Agent创建/验证Skills符号链接
3完成MCP设置同步及格式转换(Codex需JSON→TOML转换)
4修改任何配置文件前已创建备份文件
5生成包含所有操作和警告的报告

版本: 1.0.0 最后更新时间: 2026-02-15