Skip to main content

Keep AI-agent instruction files (CLAUDE.md, AGENTS.md, Cursor rules, Copilot) in sync from one source of truth, with a CI drift check.

Project description

agentsync

One source of truth for your AI-agent instructions. Stop hand-syncing CLAUDE.md, AGENTS.md, Cursor rules, and Copilot instructions — and fail CI when they drift.

Every coding agent wants its own file: CLAUDE.md, AGENTS.md, .cursor/rules/*.mdc, .github/copilot-instructions.md. Teams keep duplicate copies that silently diverge — the most-requested gap in the ecosystem. agentsync generates them all from one source and gives you a CI check that fails the build the moment they fall out of sync.

pipx install mujin-agentsync     # command: agentsync

agentsync sync     # AGENTS.md -> CLAUDE.md (zero config), or per .agentsync.json
agentsync check    # exit 1 if any generated file has drifted (drop into CI)

Zero config

If you have an AGENTS.md (or CLAUDE.md), agentsync sync mirrors it to the other one. That's the whole "Claude Code won't read my AGENTS.md" problem solved in one command.

Find what you already have — discover

Not sure which agent-config files are scattered around your repo? Let agentsync find them:

agentsync discover            # scan the project tree
agentsync discover --global   # also check ~/.claude, ~/.codex, …
found 5 agent-config file(s):
  AGENTS.md                          AGENTS.md standard (Codex, Gemini, Cursor, Zed, …)
  CLAUDE.md                          Claude Code
  .cursor/rules/main.mdc             Cursor
  .github/copilot-instructions.md    GitHub Copilot
  packages/api/CLAUDE.md             Claude Code

It recognizes CLAUDE.md, AGENTS.md, GEMINI.md, Cursor .mdc rules, Copilot instructions, and legacy .cursorrules/.clinerules/.windsurfrules — and skips node_modules, .git, etc. (Pattern-based on your project tree, not a full-disk crawl.)

Choose your source of truth

You decide which file is canonical. Precedence: --source flag › source in .agentsync.json › auto (first of AGENTS.md, CLAUDE.md).

agentsync sync --source CLAUDE.md     # make CLAUDE.md the source, generate the rest

More targets — .agentsync.json

{
  "source": "AGENTS.md",
  "targets": [
    { "path": "CLAUDE.md", "format": "markdown" },
    { "path": ".github/copilot-instructions.md", "format": "markdown" },
    { "path": ".cursor/rules/agents.mdc", "format": "cursor" }
  ]
}

agentsync init writes a starter config. cursor targets get the right .mdc frontmatter (alwaysApply: true); markdown targets are mirrored with a "generated — don't edit" header.

CI drift gate

# .github/workflows/agent-config.yml
jobs:
  agentsync:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with: { python-version: "3.11" }
      - run: pipx install mujin-agentsync
      - run: agentsync check     # fails the build if a generated file was hand-edited

Now nobody can quietly edit CLAUDE.md and let AGENTS.md rot — the source stays canonical.

Why this design

  • Deterministic. Targets are reproducible from the source, so check is exact — no guessing, no LLM, no network. Zero dependencies (Python ≥3.9).
  • Source-first. You pick the one file you actually maintain; everything else is generated.
  • Local and offline — it reads and writes files, nothing else.

Next to this

Once your agent config is consistent, audit it for security & quality with agentaudit (pipx install mujin-agentaudit) — it flags curl|bash, secret access, prompt injection, and more in skills / MCP servers / plugins.


Built by Mujin Labs — tooling for the autonomous-agent era. MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mujin_agentsync-0.2.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mujin_agentsync-0.2.0-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file mujin_agentsync-0.2.0.tar.gz.

File metadata

  • Download URL: mujin_agentsync-0.2.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.3

File hashes

Hashes for mujin_agentsync-0.2.0.tar.gz
Algorithm Hash digest
SHA256 92b70bae10d2701e4e0b54fa27f0c5173e7e04fbb34d340ddc6d79d5d89d4dc8
MD5 075e42385e2544f40166b99c694ed994
BLAKE2b-256 86d0ec3be450e8a6dc85730fe3c18fc30d59a0011c845cb5e640f5be931edeb5

See more details on using hashes here.

File details

Details for the file mujin_agentsync-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mujin_agentsync-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8ebde98242fbf59184a01327aad1d68bd67ae70a9d70bf03156db50bcc6dfe30
MD5 8b60a6566d9320d5d675f63564060c2a
BLAKE2b-256 791fbac90ddb34c8aced87cb1f88edc097720edc006e1823609c3a72cc1a9390

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page