Reference¶
Tldr
agr add installs skills, agr sync installs everything from agr.toml,
agr config manages settings. agrx runs skills ephemerally. Handles:
user/skill, user/repo/skill, or ./local. Add -g for global scope.
Complete reference for all agr and agrx commands. For guided
setup, start with the Tutorial.
What is agr? A package manager for AI agent skills. A skill is a folder
with a SKILL.md file containing instructions for an AI coding agent — see
Creating Skills to build your own. A
handle like user/skill or user/repo/skill points
to a skill on GitHub. Browse available skills in the
Skill Directory. agr installs skills into
supported tools including Claude Code, Cursor, Codex, OpenCode,
GitHub Copilot, and Antigravity. agr.toml tracks dependencies — commit it so
your team shares the same skills.
Quick Reference¶
Install & Remove¶
agr add user/skill # Install from GitHub
agr add user/repo/skill # Install from a specific repo
agr add ./path/to/skill # Install from local directory
agr add user/skill user/other-skill # Install multiple at once
agr add user/skill --overwrite # Update to latest version
agr remove user/skill # Uninstall a skill
Global Skills¶
agr add -g user/skill # Install globally (all projects)
agr list -g # List global skills
agr sync -g # Sync global dependencies
agr remove -g user/skill # Remove a global skill
Team Sync¶
Try Without Installing¶
agrx user/skill # Run once, then clean up
agrx user/skill -p "Extract tables" # Pass a prompt
agrx user/skill -i # Interactive: skill + chat
agrx user/skill --tool cursor # Use a specific tool
Create & Share¶
See the full Creating Skills guide for details.
agr init my-skill # Scaffold a new skill
agr add ./my-skill # Test locally
agr add ./my-skill -o # Reinstall after editing
Configuration¶
agr init # Create agr.toml (auto-detects tools)
agr config show # View current config
agr config set tools claude cursor # Target multiple tools
agr config set default_tool claude # Set default for agrx
agr config add tools codex # Add a tool without replacing
agr config remove tools codex # Stop syncing to a tool (⚠ deletes its skills)
Removing a tool deletes its skills
agr config remove tools <name> also deletes all skills from that tool's
skills directory. Skills remain in your other configured tools and can be
reinstalled with agr config add tools <name>.
Handle Format¶
agr add user/skill # github.com/user/skills repo, "skill" directory
agr add user/repo/skill # github.com/user/repo repo, "skill" directory
agr add ./path/to/skill # Local directory on disk
Two-part handles (user/skill) assume a repo named skills. Use three parts
when the repo has a different name. See Handle Resolution
for the full lookup rules.
Sources & Private Repos¶
export GITHUB_TOKEN="ghp_aBcDeFgHiJkL01234567890mNoPqRsTuVwXy" # Authenticate for private repos
agr config add sources gitlab \
--url "https://gitlab.com/{owner}/{repo}.git" # Custom source
agr add user/skill --source gitlab # Use a specific source
agr config set default_source gitlab # Change default source
Instruction Syncing¶
agr config set sync_instructions true # Enable syncing
agr config set canonical_instructions CLAUDE.md # Set source of truth
agr sync # Copies to AGENTS.md, GEMINI.md
Global Options¶
These apply to all agr commands (not agrx):
--quiet,-q— Suppress non-error output--version,-v— Show version and exit
CLI Commands¶
agr add¶
Install skills from GitHub or local paths. Skills are installed into your tool's
skills folder (e.g. .claude/skills/, .agents/skills/, .cursor/skills/,
.opencode/skills/, .github/skills/, .gemini/skills/).
If no agr.toml exists, agr add creates one automatically and detects which
tools you use from repo signals. You don't need to run agr init first.
Arguments:
handle— Skill handle (user/skilloruser/repo/skill) or local path (./path)
Options:
--overwrite,-o— Replace existing skills--source,-s<name>— Use a specific source fromagr.toml--global,-g— Install globally using~/.agr/agr.tomland tool global directories
Examples:
agr add anthropics/skills/frontend-design
agr add -g anthropics/skills/frontend-design
agr add kasperjunge/commit kasperjunge/pr
agr add ./my-skill
agr add anthropics/skills/pdf --overwrite
agr add anthropics/skills/pdf --source github
agr remove¶
Uninstall skills from all configured tools and remove them from agr.toml.
Each skill is deleted from every tool's skills directory (e.g., .claude/skills/,
.cursor/skills/) and its dependency entry is removed from the manifest.
Arguments:
handle— Skill handle or local path (same formats asagr add)
Options:
--global,-g— Remove from global skills directory and~/.agr/agr.toml
Examples:
agr remove anthropics/skills/frontend-design
agr remove -g anthropics/skills/frontend-design
agr remove kasperjunge/commit
agr remove ./my-skill
agr sync¶
Install all dependencies from agr.toml, sync instruction files, and run any
pending directory migrations.
Synced instructions: CLAUDE.md -> AGENTS.md
Up to date: anthropics/skills/frontend-design
Up to date: anthropics/skills/pdf
Installed: kasperjunge/commit
Summary: 2 up to date, 1 installed
Each agr sync run performs up to three stages before reporting results:
- Instruction sync — copies the canonical instruction file to other tools' instruction files (only when
sync_instructions = trueand 2+ tools are configured) - Migrations — renames skill directories to match current naming conventions (e.g., Cursor nested → flat, Codex
.codex/→.agents/, OpenCode.opencode/skill/→.opencode/skills/, Antigravity.agent/→.gemini/). This happens automatically — no manual steps needed. - Dependency install — installs any skills from
agr.tomlthat are not yet present. Skills from the same repository are batched into a single download.
Options:
--global,-g— Sync global dependencies from~/.agr/agr.toml
agr list¶
Show all skills and their installation status.
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┓
┃ Skill ┃ Type ┃ Status ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━┩
│ anthropics/skills/frontend-design │ remote │ installed │
│ anthropics/skills/pdf │ remote │ partial (claude) │
│ kasperjunge/commit │ remote │ not synced │
│ ./skills/local-skill │ local │ installed │
└───────────────────────────────────┴────────┴──────────────────────┘
Status values:
| Status | Meaning |
|---|---|
installed |
Installed in all configured tools |
partial (tool1, tool2) |
Installed in some tools but not all — lists which tools have it |
not synced |
Listed in agr.toml but not installed in any tool. Run agr sync to install. |
invalid |
Handle in agr.toml cannot be parsed. Check the handle format. |
Partial installs
You'll see partial status when using multiple tools
and a skill is only installed in some of them. Run agr sync to install the
missing copies, or agr add <handle> --overwrite to reinstall everywhere.
Options:
--global,-g— List global skills from~/.agr/agr.toml
agr init¶
Create agr.toml or a skill scaffold.
agr init creates agr.toml and auto-detects which tools you use from repo
signals (.claude/, CLAUDE.md, .cursor/, .cursorrules, etc.).
Options:
--tools— Comma-separated tool list (e.g.,claude,codex,opencode)--default-tool— Default tool foragrxand instruction sync--sync-instructions/--no-sync-instructions— Sync instruction files onagr sync--canonical-instructions— Canonical instruction file (AGENTS.md,CLAUDE.md, orGEMINI.md)
Examples:
agr init # Creates agr.toml in current directory
agr init my-skill # Creates my-skill/SKILL.md
agr init --tools claude,codex,opencode --default-tool claude
agr init --sync-instructions --canonical-instructions CLAUDE.md
agr config¶
Manage agr.toml configuration.
Config: /Users/you/project/agr.toml
tools = claude, codex, opencode
default_tool = claude
default_source = github
sync_instructions = true
canonical_instructions = CLAUDE.md
Sources:
- github [git] https://github.com/{owner}/{repo}.git (default)
All subcommands:
agr config show # View formatted config
agr config path # Print agr.toml path
agr config edit # Open in $VISUAL or $EDITOR
agr config get <key> # Read a config value
agr config set <key> <values> # Write scalar or replace list
agr config add <key> <values> # Append to list
agr config remove <key> <values> # Remove from list
agr config unset <key> # Clear to default
Valid keys: tools, default_tool, default_source, sync_instructions, canonical_instructions, sources
Options (on all subcommands):
--global,-g— Operate on~/.agr/agr.tomlinstead of local
Options (on add only):
--type— Source type (when key issources). Defaults togit.--url— Source URL (when key issources)
Examples:
agr config set tools claude codex opencode
agr config set default_tool claude
agr config add tools cursor
agr config remove tools cursor # ⚠ deletes skills from that tool
agr config set sync_instructions true
agr config set canonical_instructions CLAUDE.md
agr config add sources my-source --url "https://git.example.com/{owner}/{repo}.git"
agr config unset default_tool
agrx¶
Run a skill temporarily without adding to agr.toml.
Downloads the skill, runs it with the selected tool, and cleans up afterwards. See the agrx guide for usage patterns and examples.
Options:
--tool,-t— Tool CLI to use (claude, cursor, codex, opencode, copilot, antigravity). Overridesdefault_toolfrom config.--interactive,-i— Run skill, then continue in interactive mode--prompt,-p— Prompt to pass to the skill--global,-g— Install to the global tool skills directory instead of the repo-local one--source,-s<name>— Use a specific source fromagr.toml
Examples:
agrx anthropics/skills/pdf
agrx anthropics/skills/pdf -p "Extract tables from report.pdf"
agrx kasperjunge/commit -i
agrx kasperjunge/commit --source github
agr.toml Format¶
default_source = "github" # (1)!
tools = ["claude", "codex", "opencode"] # (2)!
default_tool = "claude" # (3)!
sync_instructions = true # (4)!
canonical_instructions = "CLAUDE.md" # (5)!
dependencies = [ # (6)!
{handle = "anthropics/skills/frontend-design", type = "skill"},
{handle = "kasperjunge/commit", type = "skill"},
{handle = "team/internal-tool", type = "skill", source = "my-server"}, # (7)!
{path = "./local-skill", type = "skill"}, # (8)!
]
[[source]] # (9)!
name = "github"
type = "git"
url = "https://github.com/{owner}/{repo}.git"
- Source used when
--sourceis not passed toagr addoragrx - Skills are installed into all listed tools on every
agr addandagr sync - Tool used by
agrxand for instruction sync — defaults to the first intools - Copies the canonical instruction file to other tools on
agr sync - The instruction file treated as the source of truth (
CLAUDE.md,AGENTS.md, orGEMINI.md) - Must appear before any
[[source]]blocks — each entry needstype = "skill"plus eitherhandleorpath - Pin a dependency to a specific source instead of using
default_source - Local path dependencies point to a directory on disk — no Git fetch needed
- Each
[[source]]defines a Git server URL template with{owner}and{repo}placeholders
Python SDK¶
For programmatic access to skills, use the Python SDK — it provides
Skill, list_skills, skill_info, and caching APIs.
Troubleshooting¶
See the Troubleshooting page for solutions to common errors — installation failures, handle format issues, authentication problems, and more.
What's New¶
See the Changelog for release notes, new features, and breaking changes.
Next Steps¶
- Creating Skills — Build and publish your own skills
- Core Concepts — Understand handles, sources, and scopes
- Teams — Share skills across your team with
agr.toml