Metadata-Version: 2.4
Name: aiconfigsync
Version: 1.0.0
Summary: Generate AI coding assistant config files from a single source. 12 tools, 1 command.
Project-URL: Homepage, https://github.com/nadalpiantini/config-sync
Project-URL: Repository, https://github.com/nadalpiantini/config-sync
Project-URL: Issues, https://github.com/nadalpiantini/config-sync/issues
License-Expression: MIT
License-File: LICENSE
Keywords: ai,claude,codex,coding,config,copilot,cursor,gemini
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# 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

```bash
pip install git+https://github.com/nadalpiantini/config-sync.git
```

Or with [pipx](https://pipx.pypa.io/) (recommended for CLI tools):

```bash
pipx install git+https://github.com/nadalpiantini/config-sync.git
```

Or clone and install locally:

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

## Usage

### Generate all configs

```bash
config-sync /path/to/your/repo
```

### Generate specific tools

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

### Preview without writing

```bash
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):

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

### List supported tools

```bash
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](LICENSE)
