Centralize global AI agent instructions into one AGENTS.md file.
Project description
agents-md-sync centralizes global AI agent instructions in one canonical AGENTS.md
file and installs symlinks or copies to the paths expected by common agent CLIs.
Supported agents
| Agent | Target path |
|---|---|
| Amp | ~/.config/AGENTS.md |
| Codex CLI | ~/.codex/AGENTS.md |
| OpenCode | ~/.config/opencode/AGENTS.md |
| Gemini CLI | ~/.gemini/GEMINI.md |
| GitHub Copilot CLI | ~/.copilot/copilot-instructions.md |
| Claude Code | ~/.claude/CLAUDE.md |
Install
uvx agents-md-sync --help
For local development:
uv sync
uv run agents-md-sync --help
Quickstart
Create the canonical source from a specific file:
uvx agents-md-sync init --from ./my-instructions.md --yes
Or let agents-md-sync init scan existing agent instruction files and ask which one
to use as the base:
uvx agents-md-sync init
Install the configured source to every enabled target:
uvx agents-md-sync install --yes
Use copies instead of symlinks:
uvx agents-md-sync install --mode copy --yes
Show current target state:
uvx agents-md-sync status
Git-backed source
You can keep your canonical AGENTS.md in a Git repository. During init, pass
a repo URL directly:
uvx agents-md-sync init --repo git@github.com:user/agent-config.git --dest ~/.agent-config --yes
Or select one of your GitHub repositories interactively:
uvx agents-md-sync init --select-repo --yes
The interactive selector uses gh repo list and requires the GitHub CLI (gh)
to be installed and authenticated. If gh is unavailable or cannot list repos,
agents-md-sync falls back to asking for the repo URL manually.
When a repo is configured, agents-md-sync init clones it into --dest (default:
~/.agent-config) or runs git pull --ff-only if the destination already
exists. If the repo does not contain AGENTS.md, agents-md-sync writes the initial
source file there. The config is updated with:
[source]
path = "~/.agent-config/AGENTS.md"
[repo]
url = "git@github.com:user/agent-config.git"
dest = "~/.agent-config"
After editing the configured source:
uvx agents-md-sync edit
uvx agents-md-sync push -m "update team agent instructions"
agents-md-sync push commits and pushes changes to the configured repo. It only
tracks AGENTS.md, runs git pull --rebase --autostash first, and prints
No changes to push when there is nothing to publish. Use --dry-run to see
the commands without changing the repo.
agents-md-sync sync remains pull-only. Use it to clone or update a repository
containing AGENTS.md, save it in config, and reinstall targets:
uvx agents-md-sync sync --repo git@github.com:user/agent-config.git --dest ~/.agent-config --yes
After the first sync, this is enough:
uvx agents-md-sync sync --yes
Recommended Git-backed workflow:
uvx agents-md-sync init --select-repo
uvx agents-md-sync edit
uvx agents-md-sync push
uvx agents-md-sync sync --yes
Configuration
By default, config is stored at ~/.config/agents-md-sync/config.toml:
[source]
path = "~/.config/AGENTS.md"
[[targets]]
name = "my-agent"
path = "~/.my-agent/instructions.md"
enabled = true
Ad-hoc targets are also supported:
uvx agents-md-sync install --extra-target my-agent=~/.my-agent/instructions.md --only my-agent --yes
Development
This project uses uv, ruff, ty, pytest, and pytest-cov.
uv sync
uv run ruff check .
uv run ruff format --check .
uv run ty check
uv run pytest
uv run pytest enforces 100% coverage for agents_md_sync.
No pre-commit setup is required.
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 agents_md_sync-1.0.0.tar.gz.
File metadata
- Download URL: agents_md_sync-1.0.0.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99f98d8e9c05d09b5d9edb61087c0893b5ef59d71995b4cae1e66aa4562a9226
|
|
| MD5 |
f482964188165e18e1581143d321d629
|
|
| BLAKE2b-256 |
cd18cee8db90c675fb32e68418aaee9cafb08766eb036aaab5ec34ebd5d37ad7
|
Provenance
The following attestation bundles were made for agents_md_sync-1.0.0.tar.gz:
Publisher:
release.yml on leynier/agents-md-sync
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agents_md_sync-1.0.0.tar.gz -
Subject digest:
99f98d8e9c05d09b5d9edb61087c0893b5ef59d71995b4cae1e66aa4562a9226 - Sigstore transparency entry: 1545510962
- Sigstore integration time:
-
Permalink:
leynier/agents-md-sync@0a92a09028b9b2410d48b39d6f81b96b840f5524 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/leynier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0a92a09028b9b2410d48b39d6f81b96b840f5524 -
Trigger Event:
push
-
Statement type:
File details
Details for the file agents_md_sync-1.0.0-py3-none-any.whl.
File metadata
- Download URL: agents_md_sync-1.0.0-py3-none-any.whl
- Upload date:
- Size: 19.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f410284e8b1296fc592cf188b7fdc3fe347639000a9749069adbc7e5f1a7d335
|
|
| MD5 |
876c1c3fe1a2ee43a76b59d677b8bc38
|
|
| BLAKE2b-256 |
8c55fcbaad49967e249ba5425249c250c9dead56da90235e50629bbf7ada1ddf
|
Provenance
The following attestation bundles were made for agents_md_sync-1.0.0-py3-none-any.whl:
Publisher:
release.yml on leynier/agents-md-sync
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agents_md_sync-1.0.0-py3-none-any.whl -
Subject digest:
f410284e8b1296fc592cf188b7fdc3fe347639000a9749069adbc7e5f1a7d335 - Sigstore transparency entry: 1545511021
- Sigstore integration time:
-
Permalink:
leynier/agents-md-sync@0a92a09028b9b2410d48b39d6f81b96b840f5524 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/leynier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0a92a09028b9b2410d48b39d6f81b96b840f5524 -
Trigger Event:
push
-
Statement type: