Skip to main content

config-sync

Write once. AI everywhere.

Generate config files for 12 AI coding assistants from a single source of truth.

The Problem

Every AI coding tool uses a different config file:

Tool Config File
Claude Code CLAUDE.md + .claude/rules/
Codex CLI / Amp / OpenCode / Warp AGENTS.md
Gemini CLI GEMINI.md
Cursor .cursor/rules/*.mdc
GitHub Copilot .github/copilot-instructions.md
Windsurf .windsurf/rules/
Cline / Roo Code .clinerules/
Aider CONVENTIONS.md
Kiro .kiro/steering/
Amazon Q .amazonq/rules/
Goose .goosehints
Trae AI .trae/rules/
Zed .rules

Change a rule? Update 13 files. Or let config-sync do it.

Install

pip install aiconfigsync

Or with pipx (recommended for CLI tools):

pipx install aiconfigsync

Or clone and install locally:

git clone https://github.com/nadalpiantini/config-sync.git
cd config-sync
pip install -e .

Usage

Generate all configs

config-sync /path/to/your/repo

Generate specific tools

config-sync /path/to/your/repo --tools codex,gemini,cursor

Preview without writing

config-sync /path/to/your/repo --dry-run

Migrate from CLAUDE.md

Already have a CLAUDE.md? Split it into .claude/rules/ (the canonical source):

config-sync /path/to/your/repo --init

List supported tools

config-sync --list-tools

How It Works

┌─────────────────────┐
│  .claude/rules/     │  ← your single source of truth
└─────────┬───────────┘
          │ config-sync
    ┌─────┼─────────────────────────┐
    ▼     ▼     ▼     ▼     ▼       ▼
 AGENTS  GEMINI CURSOR COPILOT WINDSURF CLINE
   .md    .md   /rules   .md    /rules   /rules
                                         ▼
                              AIDER KIRO AMAZON-Q GOOSE TRAE ZED
                               .md /steer /rules  hints /rules .rules
  1. Source: .claude/rules/*.md — the most expressive format (frontmatter, glob patterns, conditional loading)
  2. Transform: Concatenate rules, strip tool-specific frontmatter, adapt format per tool
  3. Output: Native configs for each tool with <!-- Generated by config-sync --> headers

Smart Detection

Auto-detects which tools are already configured in your repo and reports them:

$ config-sync ./my-project
Source: 2,847 chars
Detected: cursor, copilot, codex
Generating: codex, gemini, cursor, copilot, windsurf, cline, aider, kiro, amazonq, goose, trae, zed

  + AGENTS.md (2,937 chars)
  + GEMINI.md (2,937 chars)
  + .cursor/rules/config-sync.mdc (2,933 chars)
  ...

Format Adaptations

Each tool gets properly formatted output:

  • Cursor: MDC frontmatter with globs: ** and alwaysApply: true
  • Aider: Condensed to bullet points
  • Goose: Plain text, one rule per line (no markdown)
  • All others: Flat markdown with generated header

Supported Tools

Tool Output File Format
Codex / Amp / OpenCode / Warp AGENTS.md Markdown
Gemini CLI GEMINI.md Markdown
Cursor .cursor/rules/config-sync.mdc MDC
GitHub Copilot .github/copilot-instructions.md Markdown
Windsurf .windsurf/rules/config-sync.md Markdown
Cline / Roo Code .clinerules/config-sync.md Markdown
Aider CONVENTIONS.md Condensed bullets
Kiro (AWS) .kiro/steering/config-sync.md Markdown
Amazon Q .amazonq/rules/config-sync.md Markdown
Goose (Block) .goosehints Plain text
Trae AI .trae/rules/config-sync.md Markdown
Zed .rules Markdown

Philosophy

Write once in the richest format. Compile to every target.

.claude/rules/ is your source code. The generated configs are compiled output. Edit the source, re-run config-sync, commit all files together.

Requirements

  • Python 3.10+
  • Zero external dependencies

License

MIT

Metadata

Release files for aiconfigsync 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiconfigsync 1.1.0
File Size Uploaded Provenance
aiconfigsync-1.1.0.tar.gz 7.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for aiconfigsync 1.1.0
File Interpreter ABI Platform
aiconfigsync-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 15.9 kB

Release files / aiconfigsync-1.1.0.tar.gz

Download URL aiconfigsync-1.1.0.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
0dffb3e36134660b5f306583778109d478c9450a41bcc91c688413a6e69526cb
BLAKE2b-256 checksum
How to use checksums
8759a69c45ec0619cd06869861c6469c5d101d20fe85650d77764297219ad879
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / aiconfigsync-1.1.0-py3-none-any.whl

Download URL aiconfigsync-1.1.0-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f8e9486f43296eb588ac9b3669bb0e66b1f01ca472bd41d0c09df86e5da18aef
BLAKE2b-256 checksum
How to use checksums
b6947e8c33aee31f4d4592ba67c4a07e060375e4c04cb76f7503c965ab955525
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Security for aiconfigsync 1.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page