| name | sentry |
|---|---|
| description | Fetch and analyze Sentry issues, events, transactions, and logs. Helps agents debug errors, find root causes, and understand what happened at specific times. |
Sentry Skill
Access Sentry data via the API for debugging and investigation. Uses auth token from ~/.sentryclirc.
Quick Reference
| Task | Command |
|---|---|
| Find errors on a date | search-events.js --org X --start 2025-12-23T15:00:00 --level error |
| List open issues | list-issues.js --org X --status unresolved |
| Get issue details | fetch-issue.js <issue-id-or-url> --latest |
| Get event details | fetch-event.js <event-id> --org X --project Y |
| Search logs | search-logs.js --org X --project Y "level:error" |
Common Debugging Workflows
"What went wrong at this time?"
Find events around a specific timestamp:
# Find all events in a 2-hour window
./scripts/search-events.js --org myorg --project backend \
--start 2025-12-23T15:00:00 --end 2025-12-23T17:00:00
# Filter to just errors
./scripts/search-events.js --org myorg --start 2025-12-23T15:00:00 \
--level error
# Find a specific transaction type
./scripts/search-events.js --org myorg --start 2025-12-23T15:00:00 \
--transaction process-incoming-email
"What errors have occurred recently?"
# List unresolved errors from last 24 hours
./scripts/list-issues.js --org myorg --status unresolved --level error --period 24h
# Find high-frequency issues
./scripts/list-issues.js --org myorg --query "times_seen:>50" --sort freq
# Issues affecting users
./scripts/list-issues.js --org myorg --query "is:unresolved has:user" --sort user
"Get details about a specific issue/event"
# Get issue with latest stack trace
./scripts/fetch-issue.js 5765604106 --latest
./scripts/fetch-issue.js https://sentry.io/organizations/myorg/issues/123/ --latest
./scripts/fetch-issue.js MYPROJ-123 --org myorg --latest
# Get specific event with all breadcrumbs
./scripts/fetch-event.js abc123def456 --org myorg --project backend --breadcrumbs
"Find events with a specific tag"
# Find by custom tag (e.g., thread_id, user_id)
./scripts/search-events.js --org myorg --tag thread_id:th_abc123
# Find by user email
./scripts/search-events.js --org myorg --query "user.email:*@example.com"
Fetch Issue
./scripts/fetch-issue.js <issue-id-or-url> [options]
Get details about a specific issue (grouped error).
Accepts:
- Issue ID: 5765604106
- Issue URL: https://sentry.io/organizations/sentry/issues/5765604106/
- New URL format: https://myorg.sentry.io/issues/5765604106/
- Short ID: JAVASCRIPT-ABC (requires --org flag)
Options:
- --latest - Include the latest event with full stack trace
- --org <org> - Organization slug (for short IDs)
- --json - Output raw JSON
Output includes:
- Title, culprit, status, level
- First/last seen timestamps
- Event count and user impact
- Tags and environment info
- With --latest: stack trace, request details, breadcrumbs, runtime context
Fetch Event
./scripts/fetch-event.js <event-id> --org <org> --project <project> [options]
Get full details of a specific event by its ID.
Options:
- --org, -o <org> - Organization slug (required)
- --project, -p <project> - Project slug (required)
- --breadcrumbs, -b - Show all breadcrumbs (default: last 30)
- --spans - Show span tree for transactions
- --json - Output raw JSON
Output includes:
- Timestamp, project, title, message
- All tags
- Context (runtime, browser, OS, trace info)
- Request details
- Exception with stack trace
- Breadcrumbs
- Spans (with --spans)
Search Events
./scripts/search-events.js [options]
Search for events (transactions, errors) using Sentry Discover.
Time Range Options:
- --period, -t <period> - Relative time (24h, 7d, 14d)
- --start <datetime> - Start time (ISO 8601: 2025-12-23T15:00:00)
- --end <datetime> - End time (ISO 8601)
Filter Options:
- --org, -o <org> - Organization slug (required)
- --project, -p <project> - Project slug or ID
- --query, -q <query> - Discover search query
- --transaction <name> - Transaction name filter
- --tag <key:value> - Tag filter (repeatable)
- --level <level> - Level filter (error, warning, info)
- --limit, -n <n> - Max results (default: 25, max: 100)
- --fields <fields> - Comma-separated fields to include
Query Syntax:
transaction:process-* Wildcard transaction match
level:error Filter by level
user.email:[email protected] Filter by user
environment:production Filter by environment
has:stack.filename Has stack trace
List Issues
./scripts/list-issues.js [options]
List and search issues (grouped errors) in a project.
Options:
- --org, -o <org> - Organization slug (required)
- --project, -p <project> - Project slug (repeatable)
- --query, -q <query> - Issue search query
- --status <status> - unresolved, resolved, ignored
- --level <level> - error, warning, info, fatal
- --period, -t <period> - Time period (default: 14d)
- --limit, -n <n> - Max results (default: 25)
- --sort <sort> - date, new, priority, freq, user
- --json - Output raw JSON
Query Syntax:
is:unresolved Status filter
is:assigned Has assignee
assigned:me Assigned to current user
level:error Level filter
firstSeen:+7d First seen > 7 days ago
lastSeen:-24h Last seen within 24h
times_seen:>100 Event count filter
has:user Has user context
error.handled:0 Unhandled errors only
Search Logs
./scripts/search-logs.js [query|url] [options]
Search for logs in Sentry's Logs Explorer.
Options:
- --org, -o <org> - Organization slug (required unless URL provided)
- --project, -p <project> - Filter by project slug or ID
- --period, -t <period> - Time period (default: 24h)
- --limit, -n <n> - Max results (default: 100, max: 1000)
- --json - Output raw JSON
Query Syntax:
level:error Filter by level (trace, debug, info, warn, error, fatal)
message:*timeout* Search message text with wildcards
trace:abc123 Filter by trace ID
project:my-project Filter by project slug
Accepts Sentry URLs:
./scripts/search-logs.js "https://myorg.sentry.io/explore/logs/?project=123&statsPeriod=7d"
Tips for Debugging
-
Start broad, then narrow down: Use
search-events.jswith a time range first, then drill into specific events -
Use breadcrumbs: The
--breadcrumbsflag onfetch-event.jsshows the full history of what happened before an error -
Look for patterns: Use
list-issues.js --sort freqto find frequently occurring problems -
Check related events: If you find one event, look for others with the same transaction name or trace ID
-
Tags are your friend: Custom tags like
thread_id,user_id,request_idhelp correlate events