Generate AI coding assistant config files from a single source. 12 tools, 1 command.
Project description
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
- Source:
.claude/rules/*.md— the most expressive format (frontmatter, glob patterns, conditional loading) - Transform: Concatenate rules, strip tool-specific frontmatter, adapt format per tool
- 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: **andalwaysApply: 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aiconfigsync-1.0.1.tar.gz.
File metadata
- Download URL: aiconfigsync-1.0.1.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
02bc99dc324a0e8d2f6b797f897d59513abc743f79fdc919554afdac5b53b7b8
|
|
| MD5 |
5fc124626f6a04c17af1233ab02ff419
|
|
| BLAKE2b-256 |
0b67e3da6fd96e4a8ad7054d7c2e52e26c42dfa43dea5f1c1d6721b0cf41ea20
|
File details
Details for the file aiconfigsync-1.0.1-py3-none-any.whl.
File metadata
- Download URL: aiconfigsync-1.0.1-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac3eefd99aaf9949ea9079cbe3605c26f529bdf55929e062939734f4541ad36d
|
|
| MD5 |
942ab7662e3ab82d098e1b0fc49ab0a6
|
|
| BLAKE2b-256 |
4ce6374ca1c5c4dd4a7eac5eccba08c8f7efde81e5313795b3dda86932ffadad
|