Skip to content

benwyrosdick/streamdeck-sentry

Repository files navigation

Sentry Insights plugin for StreamController

Sentry Insights

Surface Sentry issue insights on your Stream Deck, powered by the Sentry REST API.

Installation

From the StreamController store (once accepted): open StreamController → Store → search for Sentry InsightsInstall.

Manual / development install: clone this repo and symlink it into StreamController's plugin directory, naming the link after the plugin id (com_benwyrosdick_Sentry):

git clone https://github.com/benwyrosdick/streamdeck-sentry
ln -s "$(pwd)/streamdeck-sentry" \
  ~/.var/app/com.core447.StreamController/data/plugins/com_benwyrosdick_Sentry

Then (re)start StreamController. See Setup to add your Sentry credentials.

Actions

Action What it does
Issue Count Shows a live count of Sentry issues matching a filter (project, environment, status, first/last seen, time range). Press the key to open the equivalent Sentry issue stream in your browser.

The count comes from Sentry's issues-count endpoint, which returns just the total without fetching any issue rows. That total is capped at 100, so anything at or above that shows as 100+.

Setup

The plugin needs to know your Sentry URL, organization slug, and an auth token. There are two ways to provide them:

  1. In the plugin UI — open any Issue Count button's settings and fill in the Sentry URL, Organization slug, and Auth token fields at the top. These are shared across every Sentry button, so you only enter them once.

  2. From your environment — leave those fields blank and the plugin falls back to the same configuration sentry-cli uses:

    • the SENTRY_AUTH_TOKEN, SENTRY_ORG, and SENTRY_URL environment variables, then
    • ~/.sentryclirc ([auth] token, [defaults] org / url).

    This keeps your token out of StreamController's settings file entirely.

Create a token at Settings → Auth Tokens (an Organization Auth Token or a User Auth Token) with at least org:read, project:read, and event:read scopes. Self-hosted Sentry works too — set the Sentry URL to your instance.

Issue Count filters

Configure each button in its settings:

Setting Notes
Button label Short name shown on the key (e.g. "Prod Errors").
Project slug e.g. javascript-frontend. Blank = all projects in the org.
Environment Comma-separated (e.g. production,staging). Blank = all.
Status Unresolved (default) / Resolved / Archived (Ignored) / All.
First seen Filter by when the issue was first seen — within last hour/24h/7d/14d/30d, or older than 24h/7d/30d.
Last seen Same options, for when the issue was last seen.
Time range The date window the count is evaluated over (Sentry's statsPeriod). Default is 90 days.
Advanced query Raw Sentry search appended verbatim (e.g. level:error, assigned:me).

Examples

  • New in prod — Project: backend, Environment: production, Status: Unresolved, First seen: Within last 24h.
  • Going stale — Status: Unresolved, Last seen: Older than 30 days.
  • My errors — Status: Unresolved, Advanced query: assigned:me level:error.

Press a key to open the matching issue stream on Sentry in your browser.

Requirements

  • StreamController 1.5.0-beta.14 or newer.
  • A Sentry auth token (see Setup). No extra software is required — the plugin talks to the Sentry API directly using only the Python standard library.

Notes

  • Counts refresh in the background (every ~45s) and never block the UI.
  • If Sentry rate-limits the plugin (HTTP 429), polling pauses and the key shows a countdown until it resumes.
  • This is an unofficial community plugin and is not affiliated with or endorsed by Sentry. "Sentry" is a trademark of Functional Software, Inc.

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages