sentry-app-setup
The sentry-app-setup skill guides users through creating and configuring a Sentry internal integration that enables the assistant to authenticate with Sentry and manage issues, alerts, releases, and events autonomously. Use this when the assistant needs programmatic access to a Sentry organization's API without requiring OAuth authentication or manual token expiration management.
git clone --depth 1 https://github.com/vellum-ai/vellum-assistant /tmp/sentry-app-setup && cp -r /tmp/sentry-app-setup/skills/sentry-app-setup ~/.claude/skills/sentry-app-setupSKILL.md
## Overview
Set up a **Sentry internal integration** so the assistant can interact with a Sentry organization — querying issues, resolving events, managing releases, and monitoring alerts as its own entity.
Internal integrations are scoped to a single organization. They don't require an OAuth flow — you get an auth token immediately after creation. Tokens don't expire automatically (but can be revoked manually).
**Total manual effort: ~2 interactions** — create the integration and grab the auth token.
## Prerequisites
- User must be an **organization owner or manager** in Sentry
- User must be logged into Sentry in their browser
## Setup Flow
### Step 0: Check Existing Configuration
Before starting, check whether Sentry is already configured by running the check script:
```bash
bun skills/sentry-app-setup/scripts/check-config.ts
```
The script outputs JSON: `{ "configured": boolean, "details": string }`.
- If `configured` is `true` — Sentry is already set up. Offer to verify the connection or reconfigure.
- If `configured` is `false` — continue to Step 1.
### Step 1: Create the Internal Integration
Direct the user to create a new internal integration:
> Open **https://sentry.io/settings/developer-settings/new-internal/** to create a new internal integration.
Guide them through the form:
| Field | Value |
| --------------- | -------------------------------------------------------------------- |
| **Name** | The assistant's name. This is how the integration appears in Sentry. |
| **Webhook URL** | Leave blank (not needed for API-only usage) |
**Permissions** — set these based on what the assistant needs. Recommended defaults:
| Resource | Access Level |
| ----------------- | ------------ |
| **Issue & Event** | Read |
| **Project** | Read |
| **Organization** | Read |
Adjust permissions up or down based on the user's needs. The principle of least privilege applies — only request what you'll actually use. Add write access to Issue & Event or Project if the assistant needs to resolve issues or manage releases.
> Click **Save Changes** when done. The integration is automatically installed on the organization.
### Step 2: Collect the Auth Token
After saving, Sentry displays the integration's details page. An auth token is automatically generated.
Tell the user: on the integration details page, find the **Tokens** section and copy the auth token.
Then run the store script to securely collect and store the token:
```bash
bun skills/sentry-app-setup/scripts/store-token.ts
```
The script opens a secure credential prompt in the user's app, stores the token in the encrypted vault with the correct injection templates, and exits. No further action needed — if it exits 0, the token is stored.
### Step 3: Collect the Organization Slug
The org slug is needed for API calls. Ask the user for it — it's visible in their Sentry URL as `sentry.io/organizations/{slug}/`.
Remember the org slug for future API calls.
### Step 4: Verify
After storing the token, verify the connection:
```bash
curl -s https://sentry.io/api/0/organizations/{org_slug}/ \
-H "Content-Type: application/json"
```
Run with `network_mode: "proxied"` and the sentry credential. A successful response returns the organization's details.
If the response returns a 401, the token is invalid or revoked. If 403, the integration doesn't have `org:read` permission.
### Step 5: Set the Integration Logo (Optional)
Sentry supports uploading a logo for internal integrations through the web UI (not via API).
Direct the user:
> Go to **Settings > Developer Settings**, find your integration, and upload a logo.
**Logo** requirements: PNG, 256×256 to 1024×1024, transparent background (unless the logo fills the entire space).
**Small Icon** requirements (optional, separate upload): PNG, must use **only black with an alpha channel** — no colors, no white fill. Sentry rejects icons that use any color other than black.
### Step 6: Report Success
Summarize with the completed checklist:
"Setup complete!
✅ Internal integration created
✅ Auth token configured
✅ Connection verified
{logo_line}
Connected: {integration_name} in {org_slug}
Permissions: {list the configured permission levels}
Token: does not expire (can be revoked in Settings > Developer Settings)"
For `{logo_line}`:
- If logo was uploaded: `✅ Logo uploaded`
- If skipped: `⬜ Logo — upload anytime in Settings > Developer Settings`Set up, authenticate, and run external coding agents (Claude Code, Codex) via the Agent Client Protocol
Shop on Amazon and Amazon Fresh through your browser
Record and analyze API surfaces of web services
Build and edit small, personal visual tools and artifacts — dashboards, trackers, calculators, data visualizations, charts, simple landing pages, and slide decks the user wants for THEMSELVES. This is the right skill whenever the user asks to "visualize this," "make a chart," or "build an artifact" for their own use, or to edit an app they already built here. Do NOT reach for a ui_show dynamic_page to fake an artifact — build a real persistent app here. A one-off diagram, chart, or explainer that just accompanies an answer belongs to the visualize skill (ui_show visual), not an app. NOT for complex, multi-user, or shippable products — those go to a real project folder with a coding agent (see Scope below).
Drive a specific named macOS app via raw input bypassing the Accessibility tree
Migrate from ChatGPT, Claude, OpenClaw, Hermes, Manus, and other AI assistants into Vellum by inspecting their data exports, conversation archives, files, prompts, custom instructions, memory, saved memories, tools, GPTs, workflows, integrations, and relationships, then mapping as much as safely possible into Vellum primitives. Handles single-source and multi-source migrations with a unified, deduplicated inventory.
Chat with and search your complex documents — ask questions, extract tables and fields, and get answers grounded in the source. Connects the hosted Unstructured Transform MCP server to parse, structure, and enrich PDFs, Word/Excel/PowerPoint, images, scanned files, emails, and 60+ other formats into clean, AI-ready text for search, Q&A, and summarization without building a custom parsing pipeline.
Import conversation history from ChatGPT into Vellum