skills/sentry/SKILL.md
Sentry error monitoring and issue tracking skill for retrieving issues, events, and project health data. Use when working with error tracking, exceptions, crashes, debugging production issues, or analyzing error patterns.
npx skillsauth add jakenuts/agent-skills sentryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Created by Return Zero Inc.
Comprehensive Sentry integration for Claude Code providing issue retrieval, event analysis, error tracking, and project health monitoring capabilities.
This skill uses environment variables managed by jelly-dotenv. See skills/jelly-dotenv/SKILL.md for configuration details.
Required variables:
SENTRY_AUTH_TOKEN - Your Sentry authentication token (org or personal)SENTRY_ORG or SENTRY_ORGANIZATION - Organization slugOptional variables:
SENTRY_PROJECT - Default project slugSENTRY_REGION - API region: us (default), deSENTRY_TIMEOUT - Request timeout in ms (default: 30000)Variables can be configured in either:
skills/jelly-dotenv/.env (skill-common, highest priority)/.env (project-specific, fallback)The skill automatically detects Sentry credentials using flexible pattern matching:
# ✅ Standard naming (recommended)
SENTRY_AUTH_TOKEN=sntrys_your_token_here
SENTRY_ORG=my-organization
SENTRY_PROJECT=my-project
# ✅ Alternative naming
SENTRY_ORGANIZATION=my-organization
SENTRY_TOKEN=sntrys_your_token_here
# ✅ Wildcard patterns (auto-detected)
PROD_SENTRY_TOKEN=sntrys_your_token_here
PROD_SENTRY_ORG=my-organization
# ✅ Optional settings
SENTRY_REGION=us # us (default), de
SENTRY_TIMEOUT=30000 # Request timeout in ms
Supports US and EU (Germany) regions:
# US (default)
SENTRY_REGION=us
# Base URL: https://sentry.io/api/0/
# Germany/EU
SENTRY_REGION=de
# Base URL: https://de.sentry.io/api/0/
GET /api/0/organizations/ - List organizationsGET /api/0/organizations/{org}/ - Get organization detailsGET /api/0/organizations/{org}/projects/ - List projectsGET /api/0/organizations/{org}/issues/ - List organization issuesGET /api/0/projects/{org}/{project}/issues/ - List project issues (deprecated)GET /api/0/organizations/{org}/issues/{issue_id}/ - Get issue detailsPUT /api/0/organizations/{org}/issues/{issue_id}/ - Update issueDELETE /api/0/organizations/{org}/issues/{issue_id}/ - Delete issueGET /api/0/organizations/{org}/issues/{issue_id}/events/ - List issue eventsGET /api/0/projects/{org}/{project}/events/ - List project error eventsGET /api/0/projects/{org}/{project}/events/{event_id}/ - Get event detailsGET /api/0/organizations/{org}/issues/{issue_id}/tags/ - List issue tagsGET /api/0/organizations/{org}/issues/{issue_id}/tags/{tag}/values/ - Get tag valuesUser Request: "Show me all unresolved Sentry issues"
Skill Actions:
# Load environment variables
source skills/jelly-dotenv/load-env.sh
# Build API URL
SENTRY_BASE_URL="${SENTRY_REGION:-us}"
if [ "$SENTRY_BASE_URL" = "de" ]; then
SENTRY_BASE_URL="https://de.sentry.io"
else
SENTRY_BASE_URL="https://sentry.io"
fi
# List unresolved issues
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/?query=is:unresolved" | jq .
User Request: "Show me details for issue 123456"
Skill Actions:
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/123456/" | jq .
User Request: "Show me the last 10 events for issue 123456"
Skill Actions:
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/123456/events/?limit=10" | jq .
User Request: "Find all issues containing 'NullPointerException'"
Skill Actions:
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/?query=NullPointerException" | jq .
User Request: "Show recent errors for my-project"
Skill Actions:
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/projects/${SENTRY_ORG}/my-project/events/" | jq .
User Request: "Resolve issue 123456"
Skill Actions:
curl -s -X PUT \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"status": "resolved"}' \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/123456/" | jq .
User Request: "Show me all Sentry projects"
Skill Actions:
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/projects/" | jq .
The skill provides comprehensive error handling with actionable messages:
For command-line usage with jelly-dotenv:
# Load environment variables from jelly-dotenv (with fallback to project root)
source skills/jelly-dotenv/load-env.sh
# Determine base URL
if [ "${SENTRY_REGION:-us}" = "de" ]; then
SENTRY_BASE_URL="https://de.sentry.io"
else
SENTRY_BASE_URL="https://sentry.io"
fi
# Sentry API curl helper
sentry-curl() {
local endpoint="$1"
shift
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
-H "Content-Type: application/json" \
"$@" \
"${SENTRY_BASE_URL}/api/0${endpoint}" | jq .
}
# List unresolved issues
sentry-issues() {
local query="${1:-is:unresolved}"
sentry-curl "/organizations/${SENTRY_ORG}/issues/?query=${query}"
}
# Get issue details
sentry-issue() {
local issue_id="$1"
sentry-curl "/organizations/${SENTRY_ORG}/issues/${issue_id}/"
}
# List issue events
sentry-events() {
local issue_id="$1"
local limit="${2:-10}"
sentry-curl "/organizations/${SENTRY_ORG}/issues/${issue_id}/events/?limit=${limit}"
}
# List projects
sentry-projects() {
sentry-curl "/organizations/${SENTRY_ORG}/projects/"
}
# Resolve issue
sentry-resolve() {
local issue_id="$1"
sentry-curl "/organizations/${SENTRY_ORG}/issues/${issue_id}/" \
-X PUT -d '{"status": "resolved"}'
}
# Ignore issue
sentry-ignore() {
local issue_id="$1"
sentry-curl "/organizations/${SENTRY_ORG}/issues/${issue_id}/" \
-X PUT -d '{"status": "ignored"}'
}
Add to your ~/.bashrc or ~/.zshrc:
# Sentry quick commands
alias sentry-unresolved='sentry-issues "is:unresolved"'
alias sentry-new='sentry-issues "is:unresolved firstSeen:-24h"'
alias sentry-critical='sentry-issues "is:unresolved level:fatal"'
Usage:
# List unresolved issues
sentry-issues
# Get specific issue
sentry-issue 123456
# List events for issue
sentry-events 123456 20
# List projects
sentry-projects
# Resolve an issue
sentry-resolve 123456
# Search for specific errors
sentry-issues "TypeError is:unresolved"
Sentry supports a powerful search syntax:
is:unresolved - Unresolved issuesis:resolved - Resolved issuesis:ignored - Ignored issuesfirstSeen:-24h - First seen in last 24 hourslastSeen:-1w - Last seen in past weekage:-30d - Created in last 30 dayslevel:error - Error level issueslevel:fatal - Fatal/crash levellevel:warning - Warning levelis:assigned - Assigned to someoneis:unassigned - Not assignedassigned:me - Assigned to current user# Critical unresolved issues from today
sentry-issues "is:unresolved level:fatal firstSeen:-24h"
# Unassigned errors from past week
sentry-issues "is:unresolved is:unassigned lastSeen:-1w"
This skill activates automatically when users mention:
The skill will:
Solution: Add auth token to .env file:
SENTRY_AUTH_TOKEN=sntrys_your_token_here
SENTRY_ORG=my-organization
Solution:
Solution: Verify SENTRY_ORG matches your organization slug (not display name)
Solution:
development
WordPress content management via REST API for managing posts. Requires Node.js and WordPress REST API credentials.
development
WolverineFx (.NET) framework for in-process command/event handling, asynchronous messaging, durable inbox/outbox, sagas, and HTTP endpoints. Use when working in a .NET project that references `WolverineFx*` packages, calls `UseWolverine()`, or whenever the user asks about Wolverine handlers, message routing, transactional outbox, transports (RabbitMQ, Azure Service Bus, SQS, Kafka, NATS, Pulsar, PostgreSQL, SQL Server, Redis, MQTT, etc.), Wolverine.HTTP endpoints, Marten/EF Core/RavenDb integration, sagas/process managers, middleware, cascading messages, side effects, FluentValidation integration, tracked-session testing, or migrating to/from MediatR/NServiceBus/MassTransit. Also applies to Critter Stack and JasperFx conversations that mention Wolverine.
tools
Search and analyze DealerVision production logs via SolarWinds Observability API. Use when investigating errors, debugging issues, checking system health, or when the user mentions logs, SolarWinds, production errors, or system monitoring. Requires the `logs` CLI tool to be installed.
tools
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.