sentry
Scannednpx machina-cli add skill tech-leads-club/agent-skills/sentry --openclawSentry (Read-only Observability)
Quick start
- If not already authenticated, ask the user to provide a valid
SENTRY_AUTH_TOKEN(read-only scopes such asproject:read,event:read) or to log in and create one before running commands. - Set
SENTRY_AUTH_TOKENas an env var. - Optional defaults:
SENTRY_ORG,SENTRY_PROJECT,SENTRY_BASE_URL. - Defaults: org/project
{your-org}/{your-project}, time range24h, environmentprod, limit 20 (max 50). - Always call the Sentry API (no heuristics, no caching).
If the token is missing, give the user these steps:
- Create a Sentry auth token: https://sentry.io/settings/account/api/auth-tokens/
- Create a token with read-only scopes such as
project:read,event:read, andorg:read. - Set
SENTRY_AUTH_TOKENas an environment variable in their system. - Offer to guide them through setting the environment variable for their OS/shell if needed.
- Never ask the user to paste the full token in chat. Ask them to set it locally and confirm when ready.
Core tasks (use bundled script)
Use scripts/sentry_api.py for deterministic API calls. It handles pagination and retries once on transient errors.
Skill path (set once)
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).
1) List issues (ordered by most recent)
python3 "$SENTRY_API" \
list-issues \
--org {your-org} \
--project {your-project} \
--environment prod \
--time-range 24h \
--limit 20 \
--query "is:unresolved"
2) Resolve an issue short ID to issue ID
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.
3) Issue detail
python3 "$SENTRY_API" \
issue-detail \
1234567890
4) Issue events
python3 "$SENTRY_API" \
issue-events \
1234567890 \
--limit 20
5) Event detail (no stack traces by default)
python3 "$SENTRY_API" \
event-detail \
--org {your-org} \
--project {your-project} \
abcdef1234567890
API requirements
Always use these endpoints (GET only):
- List issues:
/api/0/projects/{org_slug}/{project_slug}/issues/ - Issue detail:
/api/0/issues/{issue_id}/ - Events for issue:
/api/0/issues/{issue_id}/events/ - Event detail:
/api/0/projects/{org_slug}/{project_slug}/events/{event_id}/
Inputs and defaults
org_slug,project_slug: default to{your-org}/{your-project}(avoid non-prod orgs).time_range: default24h(pass asstatsPeriod).environment: defaultprod.limit: default 20, max 50 (paginate until limit reached).search_query: optionalqueryparameter.issue_short_id: resolve via list-issues query first.
Output formatting rules
- Issue list: show title, short_id, status, first_seen, last_seen, count, environments, top_tags; order by most recent.
- Event detail: include culprit, timestamp, environment, release, url.
- If no results, state explicitly.
- Redact PII in output (emails, IPs). Do not print raw stack traces.
- Never echo auth tokens.
Golden test inputs
- Org:
{your-org} - Project:
{your-project} - Issue short ID:
{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.
Source
git clone https://github.com/tech-leads-club/agent-skills/blob/main/packages/skills-catalog/skills/(monitoring)/sentry/SKILL.mdView on GitHub Overview
Sentry (Read-only Observability) lets you inspect issues, summarize production errors, and pull health data using the Sentry API. It runs read-only requests with a provided SENTRY_AUTH_TOKEN and supports deterministic API calls via scripts. It helps you quickly understand what's failing in prod and monitor health without altering config.
How This Skill Works
The skill uses the bundled script scripts/sentry_api.py to perform GET-based API calls for list-issues, issue-detail, and events. It handles pagination and retries once on transient errors, and outputs structured results. It always calls the Sentry API with no heuristics or caching.
When to Use It
- check Sentry
- what errors are in production?
- summarize Sentry issues
- recent crashes
- production error report
Quick Start
- Step 1: Export SENTRY_AUTH_TOKEN with read-only scopes as an environment variable.
- Step 2: (Optional) export SENTRY_ORG, SENTRY_PROJECT, and SENTRY_BASE_URL to configure defaults (prod, 24h, 20).
- Step 3: Run a sample read-only query, e.g., python3 "$SENTRY_API" list-issues --org {your-org} --project {your-project} --environment prod --time-range 24h --limit 20 --query "is:unresolved"
Best Practices
- Set SENTRY_AUTH_TOKEN in the environment with read-only scopes (project:read, event:read, org:read).
- Export optional defaults: SENTRY_ORG, SENTRY_PROJECT, SENTRY_BASE_URL, and rely on sensible defaults (prod, 24h, 20).
- Use the deterministic API script scripts/sentry_api.py for paging and a single retry on transient errors.
- Redact PII and never display tokens or raw stack traces in outputs.
- Always use GET endpoints and avoid caching or heuristics; do not mutate data.
Example Use Cases
- List the top 20 unresolved issues for prod in the last 24h.
- List issue details and recent events for issue ABC-123.
- Fetch events for a specific issue to inspect recent activity.
- Review the most recent crashes in production and summarize potential root causes.
- Generate a production error report for the last 24 hours.