{"id":45374674,"url":"https://github.com/getsentry/dotagents","last_synced_at":"2026-03-10T06:12:50.073Z","repository":{"id":338900671,"uuid":"1152366627","full_name":"getsentry/dotagents","owner":"getsentry","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-03T06:39:57.000Z","size":502,"stargazers_count":78,"open_issues_count":2,"forks_count":5,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-03T08:24:39.651Z","etag":null,"topics":["tag-to-be-production-20260207"],"latest_commit_sha":null,"homepage":"https://dotagents.sentry.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/getsentry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"custom":["https://sentry.io/pricing/","https://sentry.io/"]}},"created_at":"2026-02-07T19:12:22.000Z","updated_at":"2026-03-03T07:43:31.000Z","dependencies_parsed_at":"2026-03-03T06:04:02.650Z","dependency_job_id":null,"html_url":"https://github.com/getsentry/dotagents","commit_stats":null,"previous_names":["getsentry/dotagents"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/getsentry/dotagents","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getsentry%2Fdotagents","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getsentry%2Fdotagents/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getsentry%2Fdotagents/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getsentry%2Fdotagents/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getsentry","download_url":"https://codeload.github.com/getsentry/dotagents/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getsentry%2Fdotagents/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30064870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["tag-to-be-production-20260207"],"created_at":"2026-02-21T16:01:01.258Z","updated_at":"2026-03-10T06:12:50.051Z","avatar_url":"https://github.com/getsentry.png","language":"TypeScript","readme":"# dotagents\n\nA package manager for `.agents` directories. Declare agent skill dependencies in `agents.toml`, lock versions for reproducibility, and let every tool on your team discover skills from a single place.\n\n## Why dotagents?\n\n**One source of truth.** Skills live in `.agents/skills/` and symlink into `.claude/skills/`, `.cursor/skills/`, or wherever your tools expect them. No copy-pasting between directories.\n\n**Reproducible.** `agents.lock` tracks managed skills. Pin versions directly in `agents.toml` with ref syntax.\n\n**Shareable.** Skills are directories with a `SKILL.md`. Host them in any git repo, discover them automatically, install with one command.\n\n**Multi-agent.** Configure Claude, Cursor, Codex, VS Code, OpenCode, and Pi from a single `agents.toml` -- skills, MCP servers, and hooks.\n\n## Quick Start\n\n```bash\nnpx @sentry/dotagents init\n```\n\nThe interactive setup walks you through selecting agents and trust policy. Then add skills:\n\n```bash\n# Add a skill from a GitHub repo\nnpx @sentry/dotagents add getsentry/skills find-bugs\n\n# Add multiple skills at once\nnpx @sentry/dotagents add getsentry/skills find-bugs code-review commit\n\n# Or add all skills from a repo\nnpx @sentry/dotagents add getsentry/skills --all\n```\n\nThis creates an `agents.toml` at your project root and an `agents.lock` tracking installed skills.\n\nAfter cloning a project that already has `agents.toml`, run `install` to fetch everything:\n\n```bash\nnpx @sentry/dotagents install\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `init` | Create `agents.toml` and `.agents/skills/` |\n| `add \u003csource\u003e [skills...]` | Add skill dependencies |\n| `remove \u003cname\u003e` | Remove a skill |\n| `install` | Install all dependencies from `agents.toml` |\n| `list` | Show installed skills and their status |\n| `sync` | Reconcile gitignore, symlinks, and verify state |\n| `mcp` | Manage MCP server declarations |\n| `trust` | Manage trusted sources |\n| `doctor` | Check project health and fix issues |\n\nAll commands accept `--user` to operate on user scope (`~/.agents/`) instead of the current project.\n\n## Source Formats\n\nSkills can come from GitHub, GitLab, any git server, or local directories:\n\n```toml\n[[skills]]\nname = \"find-bugs\"\nsource = \"getsentry/skills\"              # GitHub shorthand\n\n[[skills]]\nname = \"review\"\nsource = \"getsentry/skills@v1.0.0\"       # Pinned to a ref\n\n[[skills]]\nname = \"gitlab-skill\"\nsource = \"https://gitlab.com/group/repo\" # GitLab URL\n\n[[skills]]\nname = \"internal\"\nsource = \"git:https://git.corp.dev/repo\" # Any git server\n\n[[skills]]\nname = \"local\"\nsource = \"path:./my-skills/local-skill\"  # Local directory\n```\n\nShorthand (`owner/repo`) resolves to GitHub by default. Set `defaultRepositorySource = \"gitlab\"` in `agents.toml` to resolve to GitLab instead.\n\n## Agent Targets\n\nThe `agents` field tells dotagents which tools to configure:\n\n```toml\nagents = [\"claude\", \"cursor\"]\n```\n\n| Agent | Config Dir | MCP Config | Hooks |\n|-------|-----------|------------|-------|\n| `claude` | `.claude` | `.mcp.json` | `.claude/settings.json` |\n| `cursor` | `.cursor` | `.cursor/mcp.json` | `.cursor/hooks.json` |\n| `codex` | `.codex` | `.codex/config.toml` | -- |\n| `vscode` | `.vscode` | `.vscode/mcp.json` | `.claude/settings.json` |\n| `opencode` | `.claude` | `opencode.json` | -- |\n\n[Pi](https://github.com/badlogic/pi-mono) reads `.agents/skills/` natively and needs no configuration.\n\n## Documentation\n\nFor the full guide -- including MCP servers, hooks, trust policies, wildcard skills, user scope, and CI setup -- see the [documentation site](https://dotagents.sentry.dev).\n\n## Contributing\n\n```bash\ngit clone git@github.com:getsentry/dotagents.git\ncd dotagents\npnpm install\npnpm check  # lint + typecheck + test\n```\n\nRequires Node.js 20+ and pnpm.\n\n## License\n\nMIT\n","funding_links":["https://sentry.io/pricing/","https://sentry.io/"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetsentry%2Fdotagents","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetsentry%2Fdotagents","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetsentry%2Fdotagents/lists"}