home / skills / openai / skills / sentry

sentry skill

/skills/.curated/sentry

This skill inspects Sentry issues and events, summarizes recent production errors, and fetches health data via the Sentry API using a read-only token.

npx playbooks add skill openai/skills --skill sentry

Review the files below or copy the command above to add this skill to your agents.

Files (6)
SKILL.md
3.7 KB
---
name: "sentry"
description: "Use when the user asks to inspect Sentry issues or events, summarize recent production errors, or pull basic Sentry health data via the Sentry API; perform read-only queries with the bundled script and require `SENTRY_AUTH_TOKEN`."
---


# Sentry (Read-only Observability)

## Quick start

- If not already authenticated, ask the user to provide a valid `SENTRY_AUTH_TOKEN` (read-only scopes such as `project:read`, `event:read`) or to log in and create one before running commands.
- Set `SENTRY_AUTH_TOKEN` as an env var.
- Optional defaults: `SENTRY_ORG`, `SENTRY_PROJECT`, `SENTRY_BASE_URL`.
- Defaults: org/project `{your-org}`/`{your-project}`, time range `24h`, environment `prod`, limit 20 (max 50).
- Always call the Sentry API (no heuristics, no caching).

If the token is missing, give the user these steps:
1. Create a Sentry auth token: https://sentry.io/settings/account/api/auth-tokens/
2. Create a token with read-only scopes such as `project:read`, `event:read`, and `org:read`.
3. Set `SENTRY_AUTH_TOKEN` as an environment variable in their system.
4. 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)

```bash
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export SENTRY_API="$CODEX_HOME/skills/sentry/scripts/sentry_api.py"
```

User-scoped skills install under `$CODEX_HOME/skills` (default: `~/.codex/skills`).

### 1) List issues (ordered by most recent)

```bash
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

```bash
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

```bash
python3 "$SENTRY_API" \
  issue-detail \
  1234567890
```

### 4) Issue events

```bash
python3 "$SENTRY_API" \
  issue-events \
  1234567890 \
  --limit 20
```

### 5) Event detail (no stack traces by default)

```bash
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`: 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.

## 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.

Overview

This skill inspects Sentry issues and events via the Sentry API in a read-only manner. It runs deterministic queries using the bundled script and requires a local SENTRY_AUTH_TOKEN with read scopes. The skill returns concise, redacted summaries of recent production errors and basic Sentry health data. It never exposes tokens or raw stack traces.

How this skill works

The skill calls the bundled scripts/sentry_api.py to perform GET requests to Sentry endpoints for issues, issue details, issue events, and event details. It uses sensible defaults (org/project, 24h time range, environment=prod, limit=20) and paginates until the requested limit. Outputs are formatted to show key fields (titles, short IDs, counts, timestamps, environments, top tags) and redact PII.

When to use it

  • Summarize recent production errors or top unresolved issues
  • Inspect a specific issue by short ID or internal issue ID
  • Fetch recent events for an issue and view event metadata
  • Get basic health or error volume data for a project/environment
  • Validate whether an error appeared in a recent deploy window

Best practices

  • Provide SENTRY_AUTH_TOKEN locally and export it as an environment variable before running commands
  • Prefer org/project defaults for production; avoid broad non-prod orgs in queries
  • Request limited, targeted queries (time range, environment, query) to keep results focused
  • Never paste the full auth token in chat; confirm the token is set locally
  • Respect output rules: redact PII and avoid printing raw stack traces

Example use cases

  • List the top 10 open issues for prod in the last 24h, ordered by most recent
  • Resolve a short ID like ABC-123 to get the internal issue ID and then fetch issue detail
  • Fetch the latest 20 events for a high-severity issue to see culprit, timestamp, and release info
  • Get a short production health snapshot: top errors, counts, and last seen in the past 24 hours
  • Search for errors containing a specific message or tag in a project environment

FAQ

What API token scopes are required?

Create a Sentry auth token with read-only scopes such as project:read, event:read, and org:read.

How do I provide the token?

Set SENTRY_AUTH_TOKEN as an environment variable on your machine. I can guide you through the export command for your OS/shell if needed.

Can I paste the token here?

No. Do not paste the token in chat. Set it locally and confirm when ready so the skill can access the API.