Usage
dotagents [--user] <command> [options]Global Options
--userOperate on user scope (~/.agents/) instead of the current project--help,-hShow help--version,-VShow version
Commands
dotagents init
dotagents init [--agents claude,cursor] [--force]Initialize a new project with agents.toml and .agents/skills/. Interactive mode prompts for agent targets, gitignore preference, and trust policy.
dotagents init
dotagents init --agents claude,cursor
dotagents --user initdotagents install
dotagents install [--frozen] [--force]Install all skill dependencies from agents.toml. Resolves sources, copies skills, writes lockfile, creates symlinks, generates MCP and hook configs.
dotagents install
dotagents install --frozen # CI mode
dotagents install --force # bypass cachedotagents add
dotagents add <source> [--name <name>] [--ref <ref>] [--all]Add a skill dependency and install it. Auto-discovers skills in the repo. When a repo has one skill, it is added automatically. When multiple are found, use --name to pick one or --all to add them all as a wildcard entry.
# Single skill from GitHub
dotagents add getsentry/skills --name find-bugs
# All skills from a repo
dotagents add getsentry/skills --all
# Pinned to a version
dotagents add getsentry/warden@v1.0.0
# Non-GitHub git server
dotagents add git:https://git.corp.dev/team/skills --name review
# Local directory
dotagents add path:./my-skills/customdotagents remove
dotagents remove <name>Remove a skill from agents.toml, delete from disk, and update the lockfile. For wildcard-sourced skills, adds to the exclude list instead of removing the entire wildcard entry.
dotagents remove find-bugsdotagents update
dotagents update [name]Update all or one skill to latest version. Skips SHA-pinned refs. For wildcards, re-discovers all skills and adds or removes as needed. Prints a changelog showing old and new commits.
dotagents update # all skills
dotagents update find-bugs # one skilldotagents sync
dotagents syncReconcile project state: adopt orphaned skills, regenerate gitignore, verify integrity hashes, repair symlinks and MCP/hook configs. Reports issues as warnings or errors.
dotagents mcp add
dotagents mcp add <name> --command <cmd> [--args <a>...] [--env <VAR>...] dotagents mcp add <name> --url <url> [--header <Key:Value>...] [--env <VAR>...]Add an MCP server declaration to agents.toml and run install to generate agent configs. Specify exactly one transport: --command for stdio or --url for HTTP.
# Stdio server
dotagents mcp add github --command npx --args -y --args @modelcontextprotocol/server-github --env GITHUB_TOKEN
# HTTP server with auth header
dotagents mcp add remote --url https://mcp.example.com/sse --header Authorization:Bearer\ tokdotagents mcp remove
dotagents mcp remove <name>Remove an MCP server declaration from agents.toml and run install to regenerate agent configs.
dotagents mcp remove githubdotagents mcp list
dotagents mcp list [--json]Show declared MCP servers. Use --json for machine-readable output.
dotagents mcp list
dotagents mcp list --jsondotagents list
dotagents list [--json]Show installed skills and status. Use --json for machine-readable output.
Configuration (agents.toml)
Top-level Fields
| Field | Type | Default | Description |
|---|---|---|---|
version | integer | -- | Schema version. Always 1. |
gitignore | boolean | true | Generate .agents/.gitignore for managed skills. init sets this to false. |
agents | string[] | [] | Agent targets: claude, cursor, codex, vscode, opencode |
Skills
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Skill identifier. Use "*" for wildcard. |
source | string | Yes | owner/repo, owner/repo@ref, git:url, or path:relative |
ref | string | No | Tag, branch, or commit SHA to pin |
path | string | No | Subdirectory within repo (when auto-discovery fails) |
exclude | string[] | No | Skills to skip (wildcard entries only) |
MCP Servers
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Unique server identifier |
command | string | Stdio | Command to execute |
args | string[] | No | Command arguments |
url | string | HTTP | Server URL |
headers | table | No | HTTP headers (url servers only, not needed with OAuth) |
env | string[] | No | Environment variable names to pass through |
Hooks
| Field | Type | Required | Description |
|---|---|---|---|
event | string | Yes | PreToolUse, PostToolUse, UserPromptSubmit, Stop |
matcher | string | No | Tool name filter |
command | string | Yes | Shell command to execute |
Scopes
Project Scope (default)
Operates on the current project. Requires agents.toml at the project root. Skills go to .agents/skills/, lockfile to agents.lock.
User Scope (--user)
Manages skills shared across all projects. Files live in ~/.agents/ (override with DOTAGENTS_HOME). Symlinks go to ~/.claude/skills/ and ~/.cursor/skills/.
dotagents --user init
dotagents --user add getsentry/skills --all
dotagents --user installWhen no agents.toml exists and you are not inside a git repo, dotagents falls back to user scope automatically.
Environment Variables
| Variable | Description |
|---|---|
DOTAGENTS_STATE_DIR | Override cache location (default: ~/.local/dotagents) |
DOTAGENTS_HOME | Override user-scope location (default: ~/.agents) |