_______ ___ ___ __ ____ / __/ _ | / _ \/ _ \/ / / __/ _\ \/ __ |/ // / // / /__/ _/ /___/_/ |_/____/____/____/___/
One config. Zero drift.
Keep your agents, skills, commands, and configurations in sync across Claude Code, Codex, Copilot, Cursor, Gemini, and OpenCode on every machine.
also: pnpm dlx saddle-cli · bunx saddle-cli
Supported tools
Saddle detects which tools are installed and symlinks only what’s present. Nothing is written without your confirmation.
| Tool | Home | Skills | Agents | Commands | Root File | Config Files |
|---|---|---|---|---|---|---|
| OpenCode | ~/.config/opencode | Yes | Yes | Yes | AGENTS.md | Yes |
| Claude Code | ~/.claude | Yes | Yes | Yes | No | No |
| Codex | ~/.codex | Yes | Yes | Yes | AGENTS.md | No |
| Copilot | ~/.copilot | Yes | Yes | Yes | No | No |
| Cursor | ~/.cursor | Yes | Yes | Yes | No | No |
| Gemini | ~/.gemini | Yes | Yes | Yes | GEMINI.md | Yes |
How it works
Define
Keep agents, skills, commands, and configs in one canonical repo.
Detect
Saddle finds which AI tools are installed on your machine.
Link
Symlinks wire each tool to your canonical definitions.
Extend
Declarative YAML rules define what gets linked. Add support for any new tool by writing a single file.
Zero Config
Detects installed tools automatically. Grays out what's missing. Just run saddle and go.
Headless-ready
Full non-interactive mode for CI/CD. Use --dry-run, --yes, and --check to automate everything.
Community Rules
YAML rule files are shareable. Pick up community-maintained definitions for any tool in the ecosystem, or contribute your own.
Lockfile Tracking
Know exactly what Saddle installed. Verify sync status with --check. Safely remove everything with --uninstall.
Get started in 30 seconds
No install required. Pick your package manager and go.
Or install globally: npm install -g saddle-cli
Dial it in
Install once, configure flags and env vars, then clone and re-run on every new machine to restore your full setup in seconds.
# 1. Install the CLI onto your machine npm install -g saddle-cli # 2. Clone your canonical config repo somewhere permanent git clone https://github.com/your-username/your-config-repo.git ~/dev/ai cd ~/dev/ai # 3. Preview what will be linked on this machine saddle --dry-run --all # 4. Apply — symlinks your repo into each detected tool saddle --yes --all # 5. On any new machine, clone and re-run to restore everything saddle --check # exit 0 = in sync, exit 1 = drift detected
Canonical layout
├── agents/ AGENTS.md, GEMINI.md per tool ├── commands/ slash command files ├── skills/ skill subdirectories ├── configurations/ tool-specific config files ├── opencode/ OpenCode config └── rules/ per-tool YAML installer rules ├── claude.yaml ├── codex.yaml ├── cursor.yaml ├── gemini.yaml └── opencode.yaml