SENTRY_AUTH_TOKEN (read-only scopes such as project:read, event:read) or to log in and create one before running commands.SENTRY_AUTH_TOKEN as an env var.SENTRY_ORG, SENTRY_PROJECT, SENTRY_BASE_URL.{your-org}/{your-project}, time range 24h, environment prod, limit 20 (max 50).If the token is missing, give the user these steps:
project:read, event:read, and org:read.SENTRY_AUTH_TOKEN as an environment variable in their system.Use scripts/sentry_api.py for deterministic API calls. It handles pagination and retries once on transient errors.
export AGENT_SKILLS_HOME="${AGENT_SKILLS_HOME:-$HOME/.agent-skills}"
export SENTRY_API="$AGENT_SKILLS_HOME/skills/sentry/scripts/sentry_api.py"
User-scoped skills install under $AGENT_SKILLS_HOME/skills (default: ~/.agent-skills/skills).
python3 "$SENTRY_API" \
list-issues \
--org {your-org} \
--project {your-project} \
--environment prod \
--time-range 24h \
--limit 20 \
--query "is:unresolved"
python3 "$SENTRY_API" \
list-issues \
--org {your-org} \
--project {your-project} \
--query "ABC-123" \
--limit 1
Use the returned id for issue detail or events.
python3 "$SENTRY_API" \
issue-detail \
1234567890
python3 "$SENTRY_API" \
issue-events \
1234567890 \
--limit 20
python3 "$SENTRY_API" \
event-detail \
--org {your-org} \
--project {your-project} \
abcdef1234567890
Always use these endpoints (GET only):
/api/0/projects/{org_slug}/{project_slug}/issues/
/api/0/issues/{issue_id}/
/api/0/issues/{issue_id}/events/
/api/0/projects/{org_slug}/{project_slug}/events/{event_id}/
org_slug, project_slug: default to {your-org}/{your-project} (avoid non-prod orgs).time_range: default 24h (pass as statsPeriod).environment: default prod.limit: default 20, max 50 (paginate until limit reached).search_query: optional query parameter.issue_short_id: resolve via list-issues query first.{your-org}
{your-project}
{ABC-123}
Example prompt: “List the top 10 open issues for prod in the last 24h.” Expected: ordered list with titles, short IDs, counts, last seen.