A command-line tool for managing Sentry issues.
cargo install --path .git clone https://github.com/d6e/sentry-cli
cd sentry-cli
cargo build --releaseThe binary will be at target/release/sentry-cli.
Set your Sentry auth token via environment variable (recommended):
export SENTRY_AUTH_TOKEN="sntrys_..."
export SENTRY_ORG="your-organization"Or create a config file:
sentry-cli config init
# Edit ~/.config/sentry-cli/config.tomlConfig file format (~/.config/sentry-cli/config.toml):
default_org = "your-organization"
server_url = "https://sentry.io" # or your self-hosted URL
auth_token = "sntrys_..."
default_project = "your-project"Priority order: CLI flags > environment variables > config file > defaults
For self-hosted Sentry instances:
sentry-cli --server https://sentry.yourcompany.com issues listOr set in config:
server_url = "https://sentry.yourcompany.com"# List all unresolved issues
sentry-cli issues list
# Filter by project
sentry-cli issues list --project backend
# Filter by status
sentry-cli issues list --status resolved
# Custom search query
sentry-cli issues list --query "is:unresolved level:error"
# JSON output (for scripting)
sentry-cli issues list --output json
# Fetch all pages
sentry-cli issues list --all --limit 100sentry-cli issues view 1234567890
sentry-cli issues view PROJ-123
# JSON output
sentry-cli issues view 1234567890 --output json# Resolve a single issue
sentry-cli issues resolve 1234567890
# Resolve multiple issues
sentry-cli issues resolve 1234567890 1234567891
# Resolve in specific release
sentry-cli issues resolve 1234567890 --in-release 1.2.3
# Resolve in next release
sentry-cli issues resolve 1234567890 --in-next-releasesentry-cli issues unresolve 1234567890# Assign to user
sentry-cli issues assign 1234567890 --to user@example.com
# Assign to team
sentry-cli issues assign 1234567890 --to team:backend
# Unassign
sentry-cli issues assign 1234567890 --unassign# Ignore indefinitely
sentry-cli issues ignore 1234567890
# Ignore for 24 hours (1440 minutes)
sentry-cli issues ignore 1234567890 --duration 1440
# Ignore until 100 more events
sentry-cli issues ignore 1234567890 --count 100
# Ignore until escalating
sentry-cli issues ignore 1234567890 --until-escalating# Delete with confirmation prompt
sentry-cli issues delete 1234567890
# Skip confirmation
sentry-cli issues delete 1234567890 --confirm
# Delete multiple
sentry-cli issues delete 1234567890 1234567891 --confirm# Merge issues into a primary issue
sentry-cli issues merge 1234567890 1234567891 1234567892# Create config file
sentry-cli config init
# Show current config
sentry-cli config show
# Set config values
sentry-cli config set default_org my-org
sentry-cli config set auth_token sntrys_...--server <URL> Sentry server URL (default: https://sentry.io)
--org <ORG> Organization slug
--token <TOKEN> Auth token
-v, --verbose Enable verbose output (shows API requests)
-h, --help Print help
-V, --version Print version
| Variable | Description |
|---|---|
SENTRY_AUTH_TOKEN |
Authentication token |
SENTRY_ORG |
Default organization slug |
SENTRY_SERVER_URL |
Sentry server URL |
SENTRY_PROJECT |
Default project slug |
# Get all issue IDs
sentry-cli issues list --output json | jq -r '.[].id'
# Count issues by status
sentry-cli issues list --all --output json | jq 'group_by(.status) | map({status: .[0].status, count: length})'
# Resolve all issues matching a query
sentry-cli issues list --query "is:unresolved browser:Chrome" --output json | \
jq -r '.[].id' | \
xargs sentry-cli issues resolvesentry-cli -v issues list
# [verbose] Server: https://sentry.io/
# [verbose] Organization: my-org
# [verbose] GET https://sentry.io/api/0/organizations/my-org/issues/...
# [verbose] Response: 200 OKMIT