Usage

dotagents [--user] <command> [options]

Global Options

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.

  • --agents <list> Comma-separated agent targets (claude, cursor, codex, vscode, opencode)
  • --force Overwrite existing agents.toml
dotagents init
dotagents init --agents claude,cursor
dotagents --user init

dotagents 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.

  • --frozen Fail if lockfile is missing or stale. Do not write lockfile. For CI.
  • --force Re-resolve and re-install all skills, ignoring cache and locked commits
dotagents install
dotagents install --frozen   # CI mode
dotagents install --force    # bypass cache

dotagents 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.

  • --name <name> Specify which skill to add (alias: --skill)
  • --ref <ref> Pin to a specific tag, branch, or commit
  • --all Add all skills from the source as a wildcard entry (name = "*")
# 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/custom

dotagents 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-bugs

dotagents 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 skill

dotagents sync

dotagents sync

Reconcile 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.

  • --command <cmd> Command to execute (stdio transport)
  • --args <arg> Command argument (repeatable)
  • --url <url> Server URL (HTTP transport)
  • --header <Key:Value> HTTP header (repeatable, url servers only)
  • --env <VAR> Environment variable name to pass through (repeatable)
# 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\ tok

dotagents mcp remove

dotagents mcp remove <name>

Remove an MCP server declaration from agents.toml and run install to regenerate agent configs.

dotagents mcp remove github

dotagents mcp list

dotagents mcp list [--json]

Show declared MCP servers. Use --json for machine-readable output.

dotagents mcp list
dotagents mcp list --json

dotagents list

dotagents list [--json]

Show installed skills and status. Use --json for machine-readable output.

  • Installed, integrity matches
  • ~ Modified locally since install
  • In config but not installed
  • ? Installed but not in lockfile

Configuration (agents.toml)

Top-level Fields

FieldTypeDefaultDescription
versioninteger--Schema version. Always 1.
gitignorebooleantrueGenerate .agents/.gitignore for managed skills. init sets this to false.
agentsstring[][]Agent targets: claude, cursor, codex, vscode, opencode

Skills

FieldTypeRequiredDescription
namestringYesSkill identifier. Use "*" for wildcard.
sourcestringYesowner/repo, owner/repo@ref, git:url, or path:relative
refstringNoTag, branch, or commit SHA to pin
pathstringNoSubdirectory within repo (when auto-discovery fails)
excludestring[]NoSkills to skip (wildcard entries only)

MCP Servers

FieldTypeRequiredDescription
namestringYesUnique server identifier
commandstringStdioCommand to execute
argsstring[]NoCommand arguments
urlstringHTTPServer URL
headerstableNoHTTP headers (url servers only, not needed with OAuth)
envstring[]NoEnvironment variable names to pass through

Hooks

FieldTypeRequiredDescription
eventstringYesPreToolUse, PostToolUse, UserPromptSubmit, Stop
matcherstringNoTool name filter
commandstringYesShell 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 install

When no agents.toml exists and you are not inside a git repo, dotagents falls back to user scope automatically.

Environment Variables

VariableDescription
DOTAGENTS_STATE_DIROverride cache location (default: ~/.local/dotagents)
DOTAGENTS_HOMEOverride user-scope location (default: ~/.agents)