Shared Tooling for Coding Agents
Declare skill dependencies in agents.toml, install with one command, and let every tool discover skills from one place.
Why dotagents?
One source of truth
Skills live in .agents/skills/ and symlink into .claude/, .cursor/, or wherever your tools expect them. Manage personal skills across all your projects with --user.
One command to install
agents.toml is committed, managed skills are gitignored. Collaborators run install and get the same setup.
Shareable
Skills are directories with a SKILL.md. Host them in any git repo, discover automatically, install with one command.
Multi-agent
Configure Claude, Cursor, Codex, VS Code, and OpenCode from a single agents.toml. Skills, MCP servers, and hooks.
Quick Start
Run init to set up a new project. The interactive setup walks you through selecting agents and trust policy.
$ npx @sentry/dotagents initSupported Agents
The agents array tells dotagents which tools to configure. Each agent gets skill symlinks, MCP server configs, and hook configs.
agents = ["claude", "cursor"]| Agent | Config Dir | MCP Config | Hooks |
|---|---|---|---|
claude | .claude | .mcp.json | .claude/settings.json |
cursor | .cursor | .cursor/mcp.json | .cursor/hooks.json |
codex | .codex | .codex/config.toml | -- |
vscode | .vscode | .vscode/mcp.json | .claude/settings.json |
opencode | .claude | opencode.json | -- |
Adding Skills
Use dotagents add to install skills from git repos or local directories.
# Add a single skill from a GitHub repo
dotagents add getsentry/skills --name find-bugs
# Add all skills from a repo
dotagents add getsentry/skills --all
# Pin to a specific ref
dotagents add getsentry/[email protected]
# Add from GitLab
dotagents add https://gitlab.com/group/repo --name find-bugs
# From a non-GitHub git server
dotagents add git:https://git.corp.dev/team/skills --name review
# From a local directory
dotagents add path:./my-skills/customWhen 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.
Shorthand owner/repo resolves using defaultRepositorySource in agents.toml (default: github).
Read the Guide for the full setup walkthrough, including trust policies, git hooks, and CI configuration.