Sync AI coding assistant config files from a single source. Generates CLAUDE.md, AGENTS.md, GEMINI.md, .cursor/rules/, .github/copilot-instructions.md, .wind...
--- name: config-sync description: "Sync AI coding assistant config files from a single source. Generates CLAUDE.md, AGENTS.md, GEMINI.md, .cursor/rules/, .github/copilot-instructions.md, .windsurf/rules/, .clinerules/, CONVENTIONS.md, .kiro/steering/, .amazonq/rules/, .goosehints, .trae/rules/ from your canonical rules. ACTIVAR cuando el usuario dice 'sync configs', 'generate ai rules', 'configurar para otros tools', 'unificar instrucciones', 'config sync'." --- # Config Sync — 16 AI Tools, 1 Source Reads `.claude/rules/` (or `CLAUDE.md`) as canonical source and generates native config files for every major AI coding assistant. ## Problem Each AI coding tool uses a different config file: - Claude Code → `CLAUDE.md` + `.claude/rules/*.md` - Codex CLI → `AGENTS.md` - Gemini CLI → `GEMINI.md` - Cursor → `.cursor/rules/*.mdc` - GitHub Copilot → `.github/copilot-instructions.md` - Windsurf → `.windsurf/rules/*.md` - Cline/Roo → `.clinerules/*.md` - Aider → `CONVENTIONS.md` - Kiro → `.kiro/steering/*.md` - Amazon Q → `.amazonq/rules/*.md` - Goose → `.goosehints` - Trae AI → `.trae/rules/*.md` - Zed → `.rules` - Amp/OpenCode/Warp → `AGENTS.md` (shared) Maintaining 16 files for the same instructions is absurd. Config-sync fixes it. ## How It Works 1. **Source of truth**: `.claude/rules/*.md` (most expressive format — supports glob patterns, frontmatter conditions, always/attached/triggered modes) 2. **Fallback source**: `CLAUDE.md` at repo root if `.claude/rules/` doesn't exist 3. **Transform**: Concatenates all rule files, strips Claude-specific frontmatter, generates each format 4. **Output**: Only generates configs for tools you select (or all by default) ## Usage ### Generate all configs ```bash python3 ~/.openclaw/skills/config-sync/scripts/config-sync.py /path/to/repo ``` ### Generate specific tools only ```bash python3 ~/.openclaw/skills/config-sync/scripts/config-sync.py /path/to/repo --tools codex,gemini,cursor ``` ### Preview without writing ```bash python3 ~/.openclaw/skills/config-sync/scripts/config-sync.py /path/to/repo --dry-run ``` ### Init from existing CLAUDE.md ```bash python3 ~/.openclaw/skills/config-sync/scripts/config-sync.py /path/to/repo --init ``` This creates `.claude/rules/` from your existing `CLAUDE.md` as the canonical source. ## Supported Tools | Tool | Output File | Notes | |------|-----------|-------| | Claude Code | `.claude/rules/*.md` (source, not generated) | Already the canonical format | | Codex CLI | `AGENTS.md` | Flat markdown, no frontmatter | | Gemini CLI | `GEMINI.md` | Flat markdown | | Cursor | `.cursor/rules/config-sync.mdc` | MDC format with description + globs | | GitHub Copilot | `.github/copilot-instructions.md` | Flat markdown | | Windsurf | `.windsurf/rules/config-sync.md` | Flat markdown | | Cline/Roo | `.clinerules/config-sync.md` | Flat markdown | | Aider | `CONVENTIONS.md` | Flat markdown, concise style | | Kiro | `.kiro/steering/config-sync.md` | Flat markdown | | Amazon Q | `.amazonq/rules/config-sync.md` | Flat markdown | | Goose | `.goosehints` | Line-per-rule, no markdown | | Trae AI | `.trae/rules/config-sync.md` | Flat markdown | | Zed | `.rules` | Flat markdown | ## Transformation Rules ### Stripped from source - YAML frontmatter (--- blocks) — tool-specific, not portable - `alwaysApply: true/false` — Claude Code specific - Glob patterns in frontmatter — converted to natural language headers ### Added to each output - Header comment: `<!-- Generated by config-sync. Edit source at .claude/rules/ -->` - Tool-specific header if needed (e.g., MDC frontmatter for Cursor) ### Format adaptations - **Goose** (`.goosehints`): Each rule becomes one line, no markdown - **Cursor** (`.mdc`): Gets MDC frontmatter with `description` and `globs: **` - **Aider** (`CONVENTIONS.md`): Condensed to bullet points, no long explanations - **AGENTS.md**: Standard markdown, used by Codex/Amp/OpenCode/Warp (4 tools, 1 file) ## Workflow 1. Edit `.claude/rules/*.md` (your canonical source) 2. Run `config-sync` to generate all other formats 3. Commit all generated files together 4. Repeat when rules change ## Auto-detect installed tools The script checks for: - `.cursor/` directory → Cursor installed - `.github/copilot-instructions.md` exists → Copilot in use - `.windsurf/` → Windsurf installed - `.clinerules/` → Cline installed - `.kiro/` → Kiro installed - `.amazonq/` → Amazon Q installed - `.trae/` → Trae installed - `AGENTS.md` exists → Codex/Amp/OpenCode in use - `GEMINI.md` exists → Gemini CLI in use If `--tools` is not specified, generates all formats (belt-and-suspenders approach). ## Philosophy One source of truth. Many outputs. Like a compiler: write once in the richest language, emit to every target.
don't have the plugin yet? install it then click "run inline in claude" again.