{
  "markdown": "## Documentation \nhttps://dhruvtilva.github.io/sentry/\n\n\n![Version](https://img.shields.io/badge/version-v1.0.0-6C5CE7?style=flat-square) ![License](https://img.shields.io/badge/license-MIT-00B894?style=flat-square) ![Node](https://img.shields.io/badge/node-18%2B-2D3436?style=flat-square) ![Platform](https://img.shields.io/badge/platform-Claude%20Code-6C5CE7?style=flat-square) ![Status](https://img.shields.io/badge/status-Active-00B894?style=flat-square)\n\n> Fix live Sentry production errors directly inside Claude Code — no browser, no copy-paste, no context switching.\n\n## Demo\n\n```\n> /sentry:triage\n\nFetching top Sentry issues...\n\n#1  [fatal]  ISSUE-8821  TypeError: Cannot read properties of null\n    File: src/checkout/payment.js line 142\n    Events: 847 times · Last seen: 2 minutes ago\n\n#2  [error]  ISSUE-8819  UnhandledPromiseRejection in order.service.ts\n    File: src/orders/order.service.ts line 89\n    Events: 203 times · Last seen: 14 minutes ago\n\nWhich issue should I fix?\n```\n\n## Features\n\n- 🔴 Real-time error detection via background monitor\n- 🧠 AI root cause analysis with your actual source code\n- ⚡ One-command triage, search, and fix workflow\n- 🔒 Auth token stored in system keychain\n- 🌐 Works with any language Sentry supports\n- 🔁 Auto-resolves issues after fix (optional)\n\n## Installation\n\n**Prerequisites**\n- Node.js 18+\n- A Sentry account with API access\n- A Sentry API token\n\n**Install**\n1. Install Claude Code:\n   ```\n   npm install -g @anthropic-ai/claude-code\n   ```\n2. Install the plugin:\n   ```\n   /plugin install sentry@claude-plugins-official\n   ```\n3. Enable and configure when prompted.\n\n## Configuration\n\nWhen you first enable the plugin, Claude Code will automatically\nask for these 3 values:\n\n### 1. Sentry Auth Token\n\nThis is your API key to access Sentry.\n\nSteps to get it:\n1. Go to https://sentry.io and login\n2. Click your profile icon (bottom left)\n3. Go to Settings → Account → API → Auth Tokens\n4. Click \"Create New Token\"\n5. Give it a name like \"claude-plugin\"\n6. Under permissions select: project:read, issue:read, issue:write\n7. Click \"Create Token\"\n8. Copy the token shown (you only see it once)\n\n### 2. Organization Slug\n\nThis is your Sentry organization identifier.\n\nSteps to get it:\n1. Go to https://sentry.io and login\n2. Look at your browser URL — it will look like:\n    https://sentry.io/organizations/YOUR-ORG-SLUG/\n3. Copy the part that says YOUR-ORG-SLUG\n    Example: if URL is sentry.io/organizations/acme-corp/\n    then your slug is: acme-corp\n\n### 3. Project Slug\n\nThis is your specific Sentry project identifier.\n\nSteps to get it:\n1. Go to https://sentry.io and login\n2. Click \"Projects\" in the left sidebar\n3. Click on your project\n4. Look at your browser URL — it will look like:\n    https://sentry.io/organizations/YOUR-ORG/issues/?project=YOUR-PROJECT-SLUG\n5. Or go to Settings → Projects → click your project\n    The URL will be:\n    https://sentry.io/settings/YOUR-ORG/projects/YOUR-PROJECT-SLUG/\n6. Copy YOUR-PROJECT-SLUG\n\n### Quick Reference Table\n\n| Field | Where to find it | Example value |\n|---|---|---|\n| Auth Token | Settings → API → Auth Tokens → Create New Token | sntrys_abc123... |\n| Organization Slug | Your Sentry URL after /organizations/ | acme-corp |\n| Project Slug | Your Sentry URL after /projects/ | my-website |\n\n### Required Token Permissions\n\nWhen creating your Auth Token make sure to enable:\n- project:read — to list projects\n- issue:read — to fetch errors and stack traces\n- issue:write — to mark issues resolved (optional)\n\n## Usage\n\n**/sentry:triage**\n```\n> /sentry:triage\n#1  [error]  ISSUE-1021  Null pointer in checkout flow\n    File: src/checkout/payment.js line 142\n    Events: 312 times · Last seen: 4 minutes ago\n```\n\n**/sentry:fix ISSUE-123**\n```\n> /sentry:fix ISSUE-123\nReading stack trace...\nRoot cause: cart object is null when user has no active session\nFix: add optional chaining + fallback default\n```\n\n**/sentry:search \"keyword\"**\n```\n> /sentry:search \"checkout\"\n#1  [fatal]  ISSUE-8821  TypeError: Cannot read properties of null\n#2  [error]  ISSUE-8819  UnhandledPromiseRejection in order.service.ts\n```\n\n**Background Monitor**\n```\n[SENTRY ALERT] 2 critical/fatal issue(s) detected. Run /sentry:triage to investigate.\n```\n\n## How It Works\n\nThe plugin runs as an MCP server inside Claude Code, pulls live issue data from the Sentry REST API, and pairs it with your local source files so Claude can pinpoint the exact root cause and propose a fix.\n\n```\n[Your Terminal] -> [Claude Code] -> [Sentry Plugin]\n                              -> [MCP Server (Node.js)]\n                              -> [Sentry REST API]\n                              -> [Your Sentry Project]\n```\n\n## Plugin Structure\n\n```\nsentry/\n├── .claude-plugin/\n│   └── plugin.json        # Plugin manifest\n├── agents/\n│   └── sentry-debugger.md # Deep analysis agent\n├── bin/\n│   └── poll-sentry.sh     # Background monitor\n├── hooks/\n│   └── hooks.json         # SessionStart installer\n├── monitors/\n│   └── monitors.json      # Background monitors\n├── skills/\n│   ├── fix/SKILL.md       # Fetch issue + propose fix\n│   ├── search/SKILL.md    # Search issues\n│   └── triage/SKILL.md    # List top unresolved issues\n├── .mcp.json              # MCP server config\n├── server.js              # MCP server implementation\n├── package.json           # Node dependencies\n├── README.md\n├── CHANGELOG.md\n└── LICENSE\n```\n\n## Contributing\n\n1. Fork the repo\n2. Make your changes\n3. Open a pull request\n\n## License\n\nMIT — see [LICENSE](LICENSE)\n\n## Acknowledgements\n\n- Built for the Claude Code Plugin Marketplace\n- Powered by the Sentry REST API\n",
  "bytes": 5618,
  "sha": "f2231c310c397ee673299713d377736c3280abf511bf0837dc4f52b72f2c8432",
  "repo_slug": "dhruvtilva/sentry",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_dhruvtilva_sentry_sentry_error_assistant_52a6d235/readme"
}