Sentry CLI - A command-line interface for using Sentry built by robots and humans for robots and humans
The command-line interface for Sentry. Built for developers and AI agents.
Documentation | Getting Started | Commands
curl https://cli.sentry.dev/install -fsS | bash
brew install getsentry/tools/sentry
npm install -g sentry
pnpm add -g sentry
bun add -g sentry
npx sentry@latest
# Authenticate with Sentry
sentry auth login
# List issues (auto-detects project from your codebase)
sentry issue list
# Get AI-powered root cause analysis
sentry issue explain PROJ-ABC
# Generate a fix plan
sentry issue plan PROJ-ABC
.env files or source code. No flags needed.--json for scripting and pipelines.-w flag to open any resource in your browser.Run sentry --help to see all available commands, or browse the command reference.
Credentials are stored in ~/.sentry/ with restricted permissions (mode 600).
Use Sentry CLI programmatically in Node.js (≥22) or Bun without spawning a subprocess:
import createSentrySDK from "sentry";
const sdk = createSentrySDK({ token: "sntrys_..." });
// Typed methods for every CLI command
const orgs = await sdk.org.list();
const issues = await sdk.issue.list({ orgProject: "acme/frontend", limit: 5 });
const issue = await sdk.issue.view({ issue: "ACME-123" });
// Nested commands
await sdk.dashboard.widget.add({ display: "line", query: "count" }, "my-org/my-dashboard");
// Escape hatch for any CLI command
const version = await sdk.run("--version");
const text = await sdk.run("issue", "list", "-l", "5");
Options (all optional):
token — Auth token. Falls back to SENTRY_AUTH_TOKEN / SENTRY_TOKEN env vars.url — Sentry instance URL for self-hosted (e.g., "sentry.example.com").org — Default organization slug (avoids passing it on every call).project — Default project slug.text — Return human-readable string instead of parsed JSON (affects run() only).cwd — Working directory for DSN auto-detection. Defaults to process.cwd().signal — AbortSignal to cancel streaming commands (--follow, --refresh).Streaming commands return AsyncIterable — use for await...of and break to stop.
Errors are thrown as SentryError with .exitCode and .stderr.
git clone https://github.com/getsentry/cli.git
cd cli
bun install
# Run CLI in development mode
bun run dev --help
# With environment variables
bun run --env-file=.env.local src/bin.ts --help
bun run build # Build for current platform
bun run typecheck # Type checking
bun run lint # Check for issues
bun run lint:fix # Auto-fix issues
bun test # Run tests
See DEVELOPMENT.md for detailed setup and CONTRIBUTING.md for contribution guidelines.