Catalog PyPI
PACKAGE EXPLORERView in registry

aiconfigsync

PyPI

Generate AI coding assistant config files from a single source. 12 tools, 1 command.

aiclaudecodexcodingconfigcopilotcursorgemini
Versions collected1
Direct dependencies0From release 1.1.0
Last observed21 Oct, 10:15 UTC

README

Version 1.1.0 documentation

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:

ToolConfig File
Claude CodeCLAUDE.md + .claude/rules/
Codex CLI / Amp / OpenCode / WarpAGENTS.md
Gemini CLIGEMINI.md
Cursor.cursor/rules/*.mdc
GitHub Copilot.github/copilot-instructions.md
Windsurf.windsurf/rules/
Cline / Roo Code.clinerules/
AiderCONVENTIONS.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

ToolOutput FileFormat
Codex / Amp / OpenCode / WarpAGENTS.mdMarkdown
Gemini CLIGEMINI.mdMarkdown
Cursor.cursor/rules/config-sync.mdcMDC
GitHub Copilot.github/copilot-instructions.mdMarkdown
Windsurf.windsurf/rules/config-sync.mdMarkdown
Cline / Roo Code.clinerules/config-sync.mdMarkdown
AiderCONVENTIONS.mdCondensed bullets
Kiro (AWS).kiro/steering/config-sync.mdMarkdown
Amazon Q.amazonq/rules/config-sync.mdMarkdown
Goose (Block).goosehintsPlain text
Trae AI.trae/rules/config-sync.mdMarkdown
Zed.rulesMarkdown

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

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
1.1.019 Apr 20260

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
nadalpiantini/config-sync

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 10:15 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:626cf36e30b49b001985a5087aed6b220a2600aa4580e0ce1284505639212b0c