| Crates.io | agentsync |
| lib.rs | agentsync |
| version | 1.14.5 |
| created_at | 2026-01-17 09:05:40.997142+00 |
| updated_at | 2026-01-24 12:33:25.888236+00 |
| description | A fast CLI tool to sync AI agent configurations and MCP servers across Claude, Copilot, Cursor, and more using symbolic links. |
| homepage | https://github.com/dallay/agentsync |
| repository | https://github.com/dallay/agentsync |
| max_upload_size | |
| id | 2050169 |
| size | 698,020 |
A fast, portable CLI tool for synchronizing AI agent configurations across multiple AI coding
assistants using symbolic links.

Different AI coding tools expect configuration files in various locations:
| Tool | Instructions | Commands | Skills |
|---|---|---|---|
| Claude Code | CLAUDE.md |
.claude/commands/ |
.claude/skills/ |
| GitHub Copilot | .github/copilot-instructions.md |
.github/agents/ |
- |
| Cursor | .cursor/rules/ |
- | - |
| Codex CLI | AGENTS.md |
- | .codex/skills/ |
| Gemini CLI | GEMINI.md |
.gemini/commands/ |
.gemini/skills/ |
| OpenCode | AGENTS.md |
.opencode/command/ |
.opencode/skill/ |
AgentSync maintains a single source of truth in .agents/ and creates symlinks to all required
locations.
.gitignoreDownload the latest release for your platform:
# macOS (Apple Silicon)
curl -LO https://github.com/dallay/agentsync/releases/latest/download/agentsync-aarch64-apple-darwin.tar.gz
tar xzf agentsync-aarch64-apple-darwin.tar.gz
sudo mv agentsync-*/agentsync /usr/local/bin/
# macOS (Intel)
curl -LO https://github.com/dallay/agentsync/releases/latest/download/agentsync-x86_64-apple-darwin.tar.gz
tar xzf agentsync-x86_64-apple-darwin.tar.gz
sudo mv agentsync-*/agentsync /usr/local/bin/
# Linux (x86_64)
curl -LO https://github.com/dallay/agentsync/releases/latest/download/agentsync-x86_64-unknown-linux-gnu.tar.gz
tar xzf agentsync-x86_64-unknown-linux-gnu.tar.gz
sudo mv agentsync-*/agentsync /usr/local/bin/
# Linux (ARM64)
curl -LO https://github.com/dallay/agentsync/releases/latest/download/agentsync-aarch64-unknown-linux-gnu.tar.gz
tar xzf agentsync-aarch64-unknown-linux-gnu.tar.gz
sudo mv agentsync-*/agentsync /usr/local/bin/
cargo install --git https://github.com/dallay/agentsync
Or clone and build:
git clone https://github.com/dallay/agentsync
cd agentsync
cargo build --release
# Binary at ./target/release/agentsync
cargo install agentsync
cd your-project
agentsync init
This creates .agents/agentsync.toml with a default configuration.
Edit the configuration to match your needs (see Configuration)
Apply the configuration:
agentsync apply
package.json):{
"scripts": {
"prepare": "agentsync apply || true"
}
}
# Initialize a new configuration
agentsync init
# Apply configuration (create symlinks)
agentsync apply
# Clean existing symlinks before applying
agentsync apply --clean
# Remove all managed symlinks
agentsync clean
# Use a custom config file
agentsync apply --config /path/to/config.toml
# Dry run (show what would be done without making changes)
agentsync apply --dry-run
# Show version
agentsync --version
Configuration is stored in .agents/agentsync.toml:
# Source directory (relative to this config file)
source_dir = "."
# Gitignore management
[gitignore]
enabled = true
marker = "AI Agent Symlinks"
entries = [
"CLAUDE.md",
"GEMINI.md",
".github/copilot-instructions.md",
]
# Agent definitions
[agents.claude]
enabled = true
description = "Claude Code - Anthropic's AI coding assistant"
[agents.claude.targets.instructions]
source = "AGENTS.md"
destination = "CLAUDE.md"
type = "symlink"
[agents.claude.targets.commands]
source = "command"
destination = ".claude/commands"
type = "symlink-contents"
pattern = "*.agent.md"
AgentSync can automatically generate MCP configuration files for supported agents (Claude Code, GitHub Copilot, Gemini CLI, VS Code).
This allows you to define MCP servers once in agentsync.toml and have them synchronized to all
agent-specific config files.
[mcp]
enabled = true
# Strategy for existing files: "merge" (default) or "overwrite"
# "merge" preserves existing servers but overwrites conflicts with TOML config
merge_strategy = "merge"
# Define servers once
[mcp_servers.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "."]
[mcp_servers.git]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-git", "--repository", "."]
# Optional fields:
# env = { "KEY" = "VALUE" }
# disabled = false
.mcp.json.copilot/mcp-config.json.gemini/settings.json (automatically adds trust: true).vscode/mcp.json.opencode/mcp.jsonWhen merge_strategy = "merge":
agentsync.toml.agentsync.toml wins and overwrites the existing one.agentsync.toml are preserved.| Type | Description |
|---|---|
symlink |
Create a symlink to the source file/directory |
symlink-contents |
Create symlinks for each file in the source directory |
The symlink-contents type optionally supports a pattern field (glob pattern like *.md) to
filter which files to link.
.agents/
βββ agentsync.toml # Configuration file
βββ AGENTS.md # Main agent instructions (single source)
βββ .mcp.json # MCP server configurations
βββ command/ # Agent commands
β βββ review.agent.md
β βββ test.agent.md
βββ skills/ # Shared knowledge/skills
β βββ kotlin/
β βββ SKILL.md
βββ prompts/ # Reusable prompts
βββ code-review.prompt.md
After running agentsync apply:
project-root/
βββ CLAUDE.md β .agents/AGENTS.md
βββ GEMINI.md β .agents/AGENTS.md
βββ AGENTS.md β .agents/AGENTS.md
βββ .mcp.json β .agents/.mcp.json
βββ .claude/
β βββ commands/ β symlinks to .agents/command/*.agent.md
βββ .gemini/
β βββ commands/ β symlinks to .agents/command/*.agent.md
βββ .github/
βββ copilot-instructions.md β .agents/AGENTS.md
βββ agents/ β symlinks to .agents/command/*.agent.md
AgentSync gracefully handles CI environments where the binary isn't available:
{
"scripts": {
"agents:sync": "agentsync apply || echo 'agentsync not installed, skipping'",
"prepare": "lefthook install && npm run agents:sync"
}
}
The symlinks are primarily for local development. CI builds typically don't need them.
If you need agentsync in CI, add it to your workflow:
- name: Install agentsync
run: |
curl -LO https://github.com/dallay/agentsync/releases/latest/download/agentsync-x86_64-unknown-linux-gnu.tar.gz
tar xzf agentsync-x86_64-unknown-linux-gnu.tar.gz
sudo mv agentsync-*/agentsync /usr/local/bin/
This project is a monorepo containing a Rust core and a JavaScript/TypeScript wrapper.
Install JavaScript dependencies:
pnpm install
Build the Rust binary:
cargo build
This project uses a Makefile to orchestrate common tasks.
make rust-test
make js-test
make all
make fmt
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feat/amazing-feature)git commit -m 'feat: add amazing feature')git push origin feat/amazing-feature)MIT License - see LICENSE for details.