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

Requires Go 1.23+. Binary releases and Homebrew formula are on the roadmap; for now, install from source.

From source

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

# Verify
agentlink --help

One-liner

go install github.com/snapsynapse/agentlink/cmd/agentlink@latest

# Make sure $GOPATH/bin is on PATH
export PATH="$HOME/go/bin:$PATH"

Installs the latest tagged release into your Go bin directory.

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:
agentlink sync --global

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

# Uninstall cleanly.
agentlink hooks uninstall