One AGENTS.md, every tool.

Sync your AI coding instructions across every tool on your machine — with zero magic, just symlinks.

Different tools want different files at project root: AGENTS.md, CLAUDE.md, GEMINI.md, .cursorrules. There’s no standard, and waiting for one is expensive. Agentlink keeps them in sync through symlinks. Edit one, every tool sees the change.

Why Agentlink?

Creating AI instruction files is cheap — keeping them in sync is the hard part. Good instruction files matter, and they’re often generated by expensive models. Agentlink fixes the sync problem the boring way: one real file, many aliases.

One real file, many aliases

Pick a source (AGENTS.md, CLAUDE.md, whatever). Every other tool file is a symlink to it. No duplicates, no drift.

Zero codegen

No templates, no transforms, no surprise diffs. Symlinks are a 50-year-old OS feature. Edit the source, every tool sees it instantly.

Future-proof

Tomorrow’s AI tool wants workspace/ai/newthing.md? Add it to the config. Agentlink creates the directories and wires the link.

Project and global

Works in repos and under ~/.config/. One agentlink sync keeps both scopes in shape.

Idempotent

Re-run safely. Broken or misdirected links get repaired. Nothing is ever overwritten; real files are backed up before anything changes.

Automatic triggers

Built-in git hooks, shell hooks, and launchd integration keep things synced without you remembering to run it.

Tools covered out of the box

ToolFile it expects
AiderAGENTS.md
AmpAGENTS.md
AntigravityAGENTS.md
AutohandAGENTS.md
Claude CodeCLAUDE.md
Codex CLIAGENTS.md
CursorAGENTS.md
Factory (Droid)AGENTS.md
Gemini CLIGEMINI.md
GitHub Copilot.github/copilot-instructions.md
Goose.goosehints
Junie.junie/AGENTS.md
Kilo CodeAGENTS.md
OpenCodeAGENTS.md
RooCode.roo/rules/rules.md
WindsurfAGENTS.md
ZedAGENTS.md
Anything else(add to config)

Full registry in internal/registry/tools.go. Tools without a project-root instruction file (e.g. Cline, Continue) still work in global scope via their own config paths.

Scope is deliberately narrow: instruction files only. No MCP config, no chain configs. Simple on purpose.

Install

Pre-built binaries for macOS and Linux are on the v0.2.0 release page. Or build from source with Go 1.23+.

From source

git clone https://github.com/snapsynapse/agentlink.git
cd agentlink
go install ./cmd/agentlink/

# Verify
agentlink --help

Pre-built binary

# macOS (Apple Silicon)
curl -L -o agentlink https://github.com/snapsynapse/agentlink/releases/download/v0.2.0/agentlink-darwin-arm64
chmod +x agentlink && mv agentlink /usr/local/bin/

# macOS (Intel) / Linux (amd64)
# Replace darwin-arm64 with darwin-amd64 or linux-amd64

Checksums in SHA256SUMS.txt on the release page.

Usage

Declare your source file and the aliases you want. Agentlink creates and repairs the symlinks.

Project config

# .agentlink.yaml (in project root)
source: AGENTS.md
links:
  - CLAUDE.md
  - GEMINI.md
  - .cursorrules
  - .github/copilot-instructions.md

# Then:
agentlink sync

Global config

# ~/.config/agentlink/config.yaml
source: ~/AGENTS.md
links:
  - ~/.claude/CLAUDE.md
  - ~/.codex/AGENTS.md
  - ~/.gemini/GEMINI.md
  - ~/.config/opencode/AGENTS.md

# Then (auto-detects global config):
agentlink sync

Detect installed tools

# Scan the system for AI tool installs
# and report what's found.
agentlink detect

# Walk a directory tree and wire up
# symlinks in every repo with AGENTS.md.
agentlink scan ~/Git

Automatic triggers

# Install git/shell/launchd hooks so
# sync runs without you thinking about it.
agentlink hooks install

# Remove cleanly.
agentlink hooks remove