-
-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathindex.html
More file actions
350 lines (259 loc) · 90.5 KB
/
Copy pathindex.html
File metadata and controls
350 lines (259 loc) · 90.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
<!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-toc data-has-sidebar class="astro-pdyrgfef"> <head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Features | Sentry CLI</title><link rel="canonical" href="https://cli.sentry.dev/features/"/><link rel="sitemap" href="/sitemap-index.xml"/><link rel="icon" href="/favicon.png" type="image/png" sizes="256x256"/><script>
(function() {
let overscrollEl;
let pullDistance = 0;
let touchStartY = 0;
let isAtBottom = false;
function isLandingPage() {
const path = window.location.pathname;
// Works with both / (prod) and /pr-preview/pr-XX (preview)
return path === '/' ||
/^\/\_preview\/pr-(\d+|main)\/?$/.test(path);
}
function checkAtBottom() {
const scrollTop = window.scrollY || document.documentElement.scrollTop;
const scrollHeight = document.documentElement.scrollHeight;
const clientHeight = document.documentElement.clientHeight;
return scrollTop + clientHeight >= scrollHeight - 5;
}
function createOverscrollMessage() {
if (!isLandingPage()) return;
var command = 'curl https://cli.sentry.dev/install -fsS | bash';
overscrollEl = document.createElement('div');
overscrollEl.className = 'overscroll-message';
overscrollEl.innerHTML = '<span>You made it to the end. Might as well give it a try → <code class="overscroll-copy-cmd" title="Click to copy">' + command + '</code></span>';
document.body.appendChild(overscrollEl);
var codeEl = overscrollEl.querySelector('.overscroll-copy-cmd');
codeEl.addEventListener('click', function() {
if (!navigator.clipboard) return;
navigator.clipboard.writeText(command).then(function() {
codeEl.textContent = 'copied!';
setTimeout(function() { codeEl.textContent = command; }, 1500);
}).catch(function() {});
});
}
function updateOverscroll(distance) {
if (!overscrollEl) return;
const clampedDistance = Math.min(Math.max(distance, 0), 50);
const opacity = Math.min(clampedDistance / 15, 1);
const translateY = Math.min(clampedDistance * 2.5, 120);
overscrollEl.style.opacity = opacity;
overscrollEl.style.transform = 'translateX(-50%) translateY(-' + translateY + 'px)';
}
function handleTouchStart(e) {
if (!isLandingPage()) return;
touchStartY = e.touches[0].clientY;
isAtBottom = checkAtBottom();
}
function handleTouchMove(e) {
if (!isLandingPage() || !isAtBottom) return;
const touchY = e.touches[0].clientY;
pullDistance = touchStartY - touchY;
if (pullDistance > 0 && checkAtBottom()) {
updateOverscroll(pullDistance);
}
}
function handleTouchEnd() {
pullDistance = 0;
updateOverscroll(0);
}
function handleWheel(e) {
if (!isLandingPage()) return;
if (checkAtBottom() && e.deltaY > 0) {
pullDistance = Math.min(pullDistance + e.deltaY * 0.8, 50);
updateOverscroll(pullDistance);
clearTimeout(window.overscrollTimeout);
window.overscrollTimeout = setTimeout(function() {
pullDistance = 0;
updateOverscroll(0);
}, 5000);
} else if (e.deltaY < 0) {
clearTimeout(window.overscrollTimeout);
pullDistance = 0;
updateOverscroll(0);
}
}
document.addEventListener('DOMContentLoaded', function() {
createOverscrollMessage();
document.addEventListener('touchstart', handleTouchStart, { passive: true });
document.addEventListener('touchmove', handleTouchMove, { passive: true });
document.addEventListener('touchend', handleTouchEnd, { passive: true });
document.addEventListener('wheel', handleWheel, { passive: true });
});
})();
</script><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="true"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap"/><script defer data-domain="cli.sentry.dev" src="https://plausible.io/js/script.js"></script><style>html{background:#0a0a0f}</style><link rel="shortcut icon" href="/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v6.4.6"/><meta name="generator" content="Starlight v0.39.3"/><meta property="og:title" content="Features"/><meta property="og:type" content="article"/><meta property="og:url" content="https://cli.sentry.dev/features/"/><meta property="og:locale" content="en"/><meta property="og:description" content="Advanced features of the Sentry CLI"/><meta property="og:site_name" content="Sentry CLI"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="Advanced features of the Sentry CLI"/><meta property="og:image" content="https://cli.sentry.dev/og-image.png"/><meta name="twitter:image" content="https://cli.sentry.dev/og-image-twitter.png"/><meta name="color-scheme" content="dark"/><script>
window.StarlightThemeProvider = (() => {
const storedTheme =
typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme');
const theme =
storedTheme ||
(window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark');
document.documentElement.dataset.theme = theme === 'light' ? 'light' : 'dark';
return {
updatePickers(theme = storedTheme || 'auto') {
document.querySelectorAll('starlight-theme-select').forEach((picker) => {
const select = picker.querySelector('select');
if (select) select.value = theme;
/** @type {HTMLTemplateElement | null} */
const tmpl = document.querySelector(`#theme-icons`);
const newIcon = tmpl && tmpl.content.querySelector('.' + theme);
if (newIcon) {
const oldIcon = picker.querySelector('svg.label-icon');
if (oldIcon) {
oldIcon.replaceChildren(...newIcon.cloneNode(true).childNodes);
}
}
});
},
};
})();
</script><template id="theme-icons"><svg aria-hidden="true" class="light astro-sdw2zlvw" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg><svg aria-hidden="true" class="dark astro-sdw2zlvw" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg><svg aria-hidden="true" class="auto astro-sdw2zlvw" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg></template><link rel="stylesheet" href="/_astro/print.DNXP8c50.css" media="print"><link rel="stylesheet" href="/_astro/common.CNoBe8IV.css">
<link rel="stylesheet" href="/_astro/_astro_assets.lhRLVtS2.css"><script type="module" src="/_astro/page.DvD-49NE.js"></script></head> <body class="astro-pdyrgfef"> <a href="#_top" class="astro-omdumggt">Skip to content</a> <div class="page sl-flex astro-ylkcvuol"> <header class="header astro-ylkcvuol"><div class="header sl-flex astro-3ef6ksr2"> <div class="sl-flex header-left astro-3ef6ksr2"> <a href="/" class="site-title sl-flex astro-26v5pzbq"> <img class="astro-26v5pzbq" alt src="/_astro/logo.DPuxaczD.svg" width="1135" height="195"> <span class="sr-only astro-26v5pzbq" translate="no"> Sentry CLI </span> </a> </div> <div class="sl-flex header-right astro-3ef6ksr2"> <site-search class="astro-3ef6ksr2 astro-7m3t7hmb" data-translations="{"placeholder":"Search"}"> <button data-open-modal disabled aria-label="Search" aria-keyshortcuts="Control+K" class="astro-7m3t7hmb"> <svg aria-hidden="true" class="astro-7m3t7hmb astro-sdw2zlvw" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg> <span class="sl-hidden md:sl-block astro-7m3t7hmb" aria-hidden="true">Search</span> <kbd class="sl-hidden md:sl-flex astro-7m3t7hmb" style="display: none;"> <kbd class="astro-7m3t7hmb">Ctrl</kbd><kbd class="astro-7m3t7hmb">K</kbd> </kbd> </button> <dialog style="padding:0" aria-label="Search" class="astro-7m3t7hmb"> <div class="dialog-frame sl-flex astro-7m3t7hmb"> <button data-close-modal class="sl-flex md:sl-hidden astro-7m3t7hmb"> Cancel </button> <div class="search-container astro-7m3t7hmb"> <div id="starlight__search" class="astro-7m3t7hmb"></div> </div> </div> </dialog> </site-search> <script>
(() => {
const openBtn = document.querySelector('button[data-open-modal]');
const shortcut = openBtn?.querySelector('kbd');
if (!openBtn || !(shortcut instanceof HTMLElement)) return;
const platformKey = shortcut.querySelector('kbd');
if (platformKey && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)) {
platformKey.textContent = '⌘';
openBtn.setAttribute('aria-keyshortcuts', 'Meta+K');
}
shortcut.style.display = '';
})();
</script> <script type="module" src="/_astro/Search.astro_astro_type_script_index_0_lang.lq3t8uE2.js"></script> <span class="header-nav-link header-nav-active astro-3ef6ksr2">Docs</span> <a href="https://github.com/getsentry/cli" rel="me" class="sl-flex astro-ooqq2ph4"><span class="sr-only astro-ooqq2ph4">GitHub</span><svg aria-hidden="true" class="astro-ooqq2ph4 astro-sdw2zlvw" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a> </div> </div></header> <nav class="sidebar print:hidden astro-ylkcvuol" aria-label="Main"> <starlight-menu-button class="print:hidden astro-wyhhqgo6"> <button aria-expanded="false" aria-label="Menu" aria-controls="starlight__sidebar" class="sl-flex md:sl-hidden astro-wyhhqgo6"> <svg aria-hidden="true" class="open-menu astro-wyhhqgo6 astro-sdw2zlvw" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg> <svg aria-hidden="true" class="close-menu astro-wyhhqgo6 astro-sdw2zlvw" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="m13.41 12 6.3-6.29a1.004 1.004 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1.004 1.004 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 0 1.42.998.998 0 0 0 1.42 0l6.29-6.3 6.29 6.3a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.42L13.41 12Z"/></svg> </button> </starlight-menu-button> <script type="module">class s extends HTMLElement{constructor(){super(),this.btn=this.querySelector("button"),this.btn.addEventListener("click",()=>this.toggleExpanded());const t=this.closest("nav");t&&t.addEventListener("keyup",e=>this.closeOnEscape(e))}setExpanded(t){this.setAttribute("aria-expanded",String(t)),document.body.toggleAttribute("data-mobile-menu-expanded",t)}toggleExpanded(){this.setExpanded(this.getAttribute("aria-expanded")!=="true")}closeOnEscape(t){t.code==="Escape"&&(this.setExpanded(!1),this.btn.focus())}}customElements.define("starlight-menu-button",s);</script> <div id="starlight__sidebar" class="sidebar-pane astro-ylkcvuol"> <div class="sidebar-content sl-flex astro-ylkcvuol"> <sl-sidebar-state-persist data-hash="0gh7iiz" class="astro-vehkaqib"> <script aria-hidden="true">
(() => {
try {
if (!matchMedia('(min-width: 50em)').matches) return;
/** @type {HTMLElement | null} */
const target = document.querySelector('sl-sidebar-state-persist');
const state = JSON.parse(sessionStorage.getItem('sl-sidebar-state') || '0');
if (!target || !state || target.dataset.hash !== state.hash) return;
window._starlightScrollRestore = state.scroll;
customElements.define(
'sl-sidebar-restore',
class SidebarRestore extends HTMLElement {
connectedCallback() {
try {
const idx = parseInt(this.dataset.index || '');
const details = this.closest('details');
if (details && typeof state.open[idx] === 'boolean') details.open = state.open[idx];
} catch {}
}
}
);
} catch {}
})();
</script> <ul class="top-level astro-orhffnn4"> <li class="astro-orhffnn4"> <details open class="astro-orhffnn4"> <summary class="astro-orhffnn4"> <span class="group-label astro-orhffnn4"> <span class="large astro-orhffnn4">Getting Started</span> </span> <svg aria-hidden="true" class="caret astro-orhffnn4 astro-sdw2zlvw" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <sl-sidebar-restore data-index="0"></sl-sidebar-restore> <ul class="astro-orhffnn4"> <li class="astro-orhffnn4"> <a href="/" class="astro-orhffnn4"> <span class="astro-orhffnn4">Introduction</span> </a> </li><li class="astro-orhffnn4"> <a href="/getting-started/" class="astro-orhffnn4"> <span class="astro-orhffnn4">Installation</span> </a> </li><li class="astro-orhffnn4"> <a href="/migrating-from-v3/" class="astro-orhffnn4"> <span class="astro-orhffnn4">Migrating from v3</span> </a> </li><li class="astro-orhffnn4"> <a href="/self-hosted/" class="astro-orhffnn4"> <span class="astro-orhffnn4">Self-Hosted</span> </a> </li><li class="astro-orhffnn4"> <a href="/configuration/" class="astro-orhffnn4"> <span class="astro-orhffnn4">Configuration</span> </a> </li><li class="astro-orhffnn4"> <a href="/library-usage/" class="astro-orhffnn4"> <span class="astro-orhffnn4">Library Usage</span> </a> </li> </ul> </details> </li><li class="astro-orhffnn4"> <details open class="astro-orhffnn4"> <summary class="astro-orhffnn4"> <span class="group-label astro-orhffnn4"> <span class="large astro-orhffnn4">Commands</span> </span> <svg aria-hidden="true" class="caret astro-orhffnn4 astro-sdw2zlvw" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <sl-sidebar-restore data-index="1"></sl-sidebar-restore> <ul class="astro-orhffnn4"> <li class="astro-orhffnn4"> <a href="/commands/" class="astro-orhffnn4"> <span class="astro-orhffnn4">Commands</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/alert/" class="astro-orhffnn4"> <span class="astro-orhffnn4">alert</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/api/" class="astro-orhffnn4"> <span class="astro-orhffnn4">api</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/auth/" class="astro-orhffnn4"> <span class="astro-orhffnn4">auth</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/build/" class="astro-orhffnn4"> <span class="astro-orhffnn4">build</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/cli/" class="astro-orhffnn4"> <span class="astro-orhffnn4">cli</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/code-mappings/" class="astro-orhffnn4"> <span class="astro-orhffnn4">code-mappings</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/dart-symbol-map/" class="astro-orhffnn4"> <span class="astro-orhffnn4">dart-symbol-map</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/dashboard/" class="astro-orhffnn4"> <span class="astro-orhffnn4">dashboard</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/debug-files/" class="astro-orhffnn4"> <span class="astro-orhffnn4">debug-files</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/event/" class="astro-orhffnn4"> <span class="astro-orhffnn4">event</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/explore/" class="astro-orhffnn4"> <span class="astro-orhffnn4">explore</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/feedback/" class="astro-orhffnn4"> <span class="astro-orhffnn4">feedback</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/info/" class="astro-orhffnn4"> <span class="astro-orhffnn4">info</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/init/" class="astro-orhffnn4"> <span class="astro-orhffnn4">init</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/issue/" class="astro-orhffnn4"> <span class="astro-orhffnn4">issue</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/local/" class="astro-orhffnn4"> <span class="astro-orhffnn4">local</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/log/" class="astro-orhffnn4"> <span class="astro-orhffnn4">log</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/monitor/" class="astro-orhffnn4"> <span class="astro-orhffnn4">monitor</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/org/" class="astro-orhffnn4"> <span class="astro-orhffnn4">org</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/proguard/" class="astro-orhffnn4"> <span class="astro-orhffnn4">proguard</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/project/" class="astro-orhffnn4"> <span class="astro-orhffnn4">project</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/react-native/" class="astro-orhffnn4"> <span class="astro-orhffnn4">react-native</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/release/" class="astro-orhffnn4"> <span class="astro-orhffnn4">release</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/replay/" class="astro-orhffnn4"> <span class="astro-orhffnn4">replay</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/repo/" class="astro-orhffnn4"> <span class="astro-orhffnn4">repo</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/schema/" class="astro-orhffnn4"> <span class="astro-orhffnn4">schema</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/snapshots/" class="astro-orhffnn4"> <span class="astro-orhffnn4">snapshots</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/sourcemap/" class="astro-orhffnn4"> <span class="astro-orhffnn4">sourcemap</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/span/" class="astro-orhffnn4"> <span class="astro-orhffnn4">span</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/team/" class="astro-orhffnn4"> <span class="astro-orhffnn4">team</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/trace/" class="astro-orhffnn4"> <span class="astro-orhffnn4">trace</span> </a> </li><li class="astro-orhffnn4"> <a href="/commands/trial/" class="astro-orhffnn4"> <span class="astro-orhffnn4">trial</span> </a> </li> </ul> </details> </li><li class="astro-orhffnn4"> <details open class="astro-orhffnn4"> <summary class="astro-orhffnn4"> <span class="group-label astro-orhffnn4"> <span class="large astro-orhffnn4">Resources</span> </span> <svg aria-hidden="true" class="caret astro-orhffnn4 astro-sdw2zlvw" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <sl-sidebar-restore data-index="2"></sl-sidebar-restore> <ul class="astro-orhffnn4"> <li class="astro-orhffnn4"> <a href="/agentic-usage/" class="astro-orhffnn4"> <span class="astro-orhffnn4">Agentic Usage</span> </a> </li><li class="astro-orhffnn4"> <a href="/contributing/" class="astro-orhffnn4"> <span class="astro-orhffnn4">Contributing</span> </a> </li> </ul> </details> </li> </ul> <script aria-hidden="true">
(() => {
const scroller = document.getElementById('starlight__sidebar');
if (!window._starlightScrollRestore || !scroller) return;
scroller.scrollTop = window._starlightScrollRestore;
delete window._starlightScrollRestore;
})();
</script> </sl-sidebar-state-persist> <div class="md:sl-hidden"> <div class="mobile-preferences sl-flex"> <script type="module">class s extends HTMLElement{constructor(){super();const e=this.querySelector("select");e&&(e.addEventListener("change",t=>{t.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=t.currentTarget.value)}),window.addEventListener("pageshow",t=>{if(!t.persisted)return;const n=e.querySelector("option[selected]")?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}}customElements.define("starlight-lang-select",s);</script> </div> </div> </div> </div> </nav> <div class="main-frame astro-ylkcvuol"> <script type="module">const a=document.getElementById("starlight__sidebar"),n=a?.querySelector("sl-sidebar-state-persist"),o="sl-sidebar-state",i=()=>{let t=[];const e=n?.dataset.hash||"";try{const s=sessionStorage.getItem(o),r=JSON.parse(s||"{}");Array.isArray(r.open)&&r.hash===e&&(t=r.open)}catch{}return{hash:e,open:t,scroll:a?.scrollTop||0}},c=t=>{try{sessionStorage.setItem(o,JSON.stringify(t))}catch{}},d=()=>c(i()),l=(t,e)=>{const s=i();s.open[e]=t,c(s)};n?.addEventListener("click",t=>{if(!(t.target instanceof Element))return;const e=t.target.closest("summary")?.closest("details");if(!e)return;const s=e.querySelector("sl-sidebar-restore"),r=parseInt(s?.dataset.index||"");isNaN(r)||l(!e.open,r)});addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&d()});addEventListener("pageHide",d);</script> <div class="lg:sl-flex astro-tkgx3vob"> <aside class="right-sidebar-container print:hidden astro-tkgx3vob"> <div class="right-sidebar astro-tkgx3vob"> <div class="lg:sl-hidden astro-l5wbyfw3"><mobile-starlight-toc data-min-h="2" data-max-h="3" class="astro-m3zlhqyp"><nav aria-labelledby="starlight__on-this-page--mobile" class="astro-m3zlhqyp"><details id="starlight__mobile-toc" class="astro-m3zlhqyp"><summary id="starlight__on-this-page--mobile" class="sl-flex astro-m3zlhqyp"><span class="toggle sl-flex astro-m3zlhqyp">On this page<svg aria-hidden="true" class="caret astro-m3zlhqyp astro-sdw2zlvw" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></span><span class="display-current astro-m3zlhqyp"></span></summary><div class="dropdown astro-m3zlhqyp"><ul class="isMobile astro-6f3uql37" style="--depth: 0;"> <li class="astro-6f3uql37" style="--depth: 0;"> <a href="#_top" class="astro-6f3uql37" style="--depth: 0;"> <span class="astro-6f3uql37" style="--depth: 0;">Overview</span> </a> </li><li class="astro-6f3uql37" style="--depth: 0;"> <a href="#dsn-auto-detection" class="astro-6f3uql37" style="--depth: 0;"> <span class="astro-6f3uql37" style="--depth: 0;">DSN Auto-Detection</span> </a> <ul class="isMobile astro-6f3uql37" style="--depth: 1;"> <li class="astro-6f3uql37" style="--depth: 1;"> <a href="#how-it-works" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">How It Works</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#supported-languages" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Supported Languages</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#caching" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Caching</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#usage" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Usage</span> </a> </li> </ul> </li><li class="astro-6f3uql37" style="--depth: 0;"> <a href="#monorepo-support--alias-system" class="astro-6f3uql37" style="--depth: 0;"> <span class="astro-6f3uql37" style="--depth: 0;">Monorepo Support & Alias System</span> </a> <ul class="isMobile astro-6f3uql37" style="--depth: 1;"> <li class="astro-6f3uql37" style="--depth: 1;"> <a href="#how-aliases-work" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">How Aliases Work</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#using-alias-suffix-format" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Using Alias-Suffix Format</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#cross-organization-support" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Cross-Organization Support</span> </a> </li> </ul> </li><li class="astro-6f3uql37" style="--depth: 0;"> <a href="#issue-id-formats" class="astro-6f3uql37" style="--depth: 0;"> <span class="astro-6f3uql37" style="--depth: 0;">Issue ID Formats</span> </a> <ul class="isMobile astro-6f3uql37" style="--depth: 1;"> <li class="astro-6f3uql37" style="--depth: 1;"> <a href="#numeric-id" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Numeric ID</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#full-short-id" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Full Short ID</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#short-suffix" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Short Suffix</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#github-style--separator" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">GitHub-Style (# separator)</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#alias-suffix" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Alias-Suffix</span> </a> </li> </ul> </li><li class="astro-6f3uql37" style="--depth: 0;"> <a href="#ai-powered-analysis-with-seer" class="astro-6f3uql37" style="--depth: 0;"> <span class="astro-6f3uql37" style="--depth: 0;">AI-Powered Analysis with Seer</span> </a> <ul class="isMobile astro-6f3uql37" style="--depth: 1;"> <li class="astro-6f3uql37" style="--depth: 1;"> <a href="#root-cause-analysis" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Root Cause Analysis</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#fix-plans" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Fix Plans</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#requirements" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Requirements</span> </a> </li> </ul> </li> </ul></div></details></nav></mobile-starlight-toc><script type="module" src="/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.hwBsy0Mo.js"></script></div><div class="right-sidebar-panel sl-hidden lg:sl-block astro-l5wbyfw3"><div class="sl-container astro-l5wbyfw3"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">On this page</h2><ul class="astro-6f3uql37" style="--depth: 0;"> <li class="astro-6f3uql37" style="--depth: 0;"> <a href="#_top" class="astro-6f3uql37" style="--depth: 0;"> <span class="astro-6f3uql37" style="--depth: 0;">Overview</span> </a> </li><li class="astro-6f3uql37" style="--depth: 0;"> <a href="#dsn-auto-detection" class="astro-6f3uql37" style="--depth: 0;"> <span class="astro-6f3uql37" style="--depth: 0;">DSN Auto-Detection</span> </a> <ul class="astro-6f3uql37" style="--depth: 1;"> <li class="astro-6f3uql37" style="--depth: 1;"> <a href="#how-it-works" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">How It Works</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#supported-languages" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Supported Languages</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#caching" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Caching</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#usage" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Usage</span> </a> </li> </ul> </li><li class="astro-6f3uql37" style="--depth: 0;"> <a href="#monorepo-support--alias-system" class="astro-6f3uql37" style="--depth: 0;"> <span class="astro-6f3uql37" style="--depth: 0;">Monorepo Support & Alias System</span> </a> <ul class="astro-6f3uql37" style="--depth: 1;"> <li class="astro-6f3uql37" style="--depth: 1;"> <a href="#how-aliases-work" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">How Aliases Work</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#using-alias-suffix-format" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Using Alias-Suffix Format</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#cross-organization-support" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Cross-Organization Support</span> </a> </li> </ul> </li><li class="astro-6f3uql37" style="--depth: 0;"> <a href="#issue-id-formats" class="astro-6f3uql37" style="--depth: 0;"> <span class="astro-6f3uql37" style="--depth: 0;">Issue ID Formats</span> </a> <ul class="astro-6f3uql37" style="--depth: 1;"> <li class="astro-6f3uql37" style="--depth: 1;"> <a href="#numeric-id" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Numeric ID</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#full-short-id" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Full Short ID</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#short-suffix" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Short Suffix</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#github-style--separator" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">GitHub-Style (# separator)</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#alias-suffix" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Alias-Suffix</span> </a> </li> </ul> </li><li class="astro-6f3uql37" style="--depth: 0;"> <a href="#ai-powered-analysis-with-seer" class="astro-6f3uql37" style="--depth: 0;"> <span class="astro-6f3uql37" style="--depth: 0;">AI-Powered Analysis with Seer</span> </a> <ul class="astro-6f3uql37" style="--depth: 1;"> <li class="astro-6f3uql37" style="--depth: 1;"> <a href="#root-cause-analysis" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Root Cause Analysis</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#fix-plans" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Fix Plans</span> </a> </li><li class="astro-6f3uql37" style="--depth: 1;"> <a href="#requirements" class="astro-6f3uql37" style="--depth: 1;"> <span class="astro-6f3uql37" style="--depth: 1;">Requirements</span> </a> </li> </ul> </li> </ul></nav></starlight-toc><script type="module" src="/_astro/TableOfContents.astro_astro_type_script_index_0_lang.FuRcXuRY.js"></script> <div class="sentry-markdown-actions" aria-label="Markdown page actions"> <button class="sentry-markdown-action" type="button" aria-label="Copy as Markdown" title="Copy as Markdown" data-sentry-copy-markdown data-markdown-url="/features.md"> <span class="sentry-markdown-action-icon" aria-hidden="true"></span> <span data-sentry-copy-markdown-label>Markdown</span> </button> <span class="sentry-markdown-status" data-sentry-copy-markdown-status aria-live="polite"></span> </div> <script type="module">const r=new WeakSet;function s(){const i=document.querySelectorAll("[data-sentry-copy-markdown]");for(const t of i)r.has(t)||(r.add(t),t.addEventListener("click",async()=>{const a=t.dataset.markdownUrl,d=t.closest(".sentry-markdown-actions"),n=t.querySelector("[data-sentry-copy-markdown-label]"),e=d?.querySelector("[data-sentry-copy-markdown-status]");if(!a)return;const c=n?.textContent??"Markdown";t.disabled=!0,e&&(e.textContent="");try{const o=await fetch(a);if(!o.ok)throw new Error(`Markdown request failed with ${o.status}`);await navigator.clipboard.writeText(await o.text()),n&&(n.textContent="Copied"),e&&(e.textContent="Copied")}catch{n&&(n.textContent="Failed"),e&&(e.textContent="Copy failed")}finally{window.setTimeout(()=>{t.disabled=!1,n&&(n.textContent=c),e&&(e.textContent="")},1800)}}))}document.addEventListener("astro:page-load",s);s();</script></div></div> </div> </aside> <div class="main-pane astro-tkgx3vob"> <main data-pagefind-body class="astro-pdyrgfef" lang="en" dir="ltr"> <div class="content-panel astro-pswstjac"> <div class="sl-container astro-pswstjac"> <div class="page-title-wrapper astro-guvttfii"> <h1 id="_top" class="astro-guvttfii">Features</h1> </div> </div> </div> <div class="content-panel astro-pswstjac"> <div class="sl-container astro-pswstjac"> <div class="sl-markdown-content"> <p>The Sentry CLI includes several features designed to streamline your workflow, especially in complex project setups.</p>
<div class="sl-heading-wrapper level-h2"><h2 id="dsn-auto-detection">DSN Auto-Detection</h2><a class="sl-anchor-link" href="#dsn-auto-detection"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “DSN Auto-Detection”</span></a></div>
<p>The CLI automatically detects your Sentry project from your codebase, eliminating the need to specify the target for every command. DSN detection is one part of the <a href="./configuration/#resolution-priority">resolution priority chain</a> — it runs after checking for explicit arguments, environment variables, and <code dir="auto">.sentryclirc</code> config files.</p>
<div class="sl-heading-wrapper level-h3"><h3 id="how-it-works">How It Works</h3><a class="sl-anchor-link" href="#how-it-works"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “How It Works”</span></a></div>
<p>DSN detection follows this priority order (highest first):</p>
<ol>
<li><strong>Source code</strong> - Explicit DSN in <code dir="auto">Sentry.init()</code> calls</li>
<li><strong>Environment files</strong> - <code dir="auto">.env.local</code>, <code dir="auto">.env</code>, etc.</li>
<li><strong>Environment variable</strong> - <code dir="auto">SENTRY_DSN</code></li>
</ol>
<p>When a DSN is found, the CLI resolves it to your organization and project, then caches the result for fast subsequent lookups.</p>
<aside aria-label="Tip" class="starlight-aside starlight-aside--tip"><p class="starlight-aside__title" aria-hidden="true"><svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor" class="starlight-aside__icon"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.43909 8.85483L1.44039 8.85354L4.96668 5.33815C5.30653 4.99386 5.7685 4.79662 6.2524 4.78972L6.26553 4.78963L12.9014 4.78962L13.8479 3.84308C16.9187 0.772319 20.0546 0.770617 21.4678 0.975145C21.8617 1.02914 22.2271 1.21053 22.5083 1.4917C22.7894 1.77284 22.9708 2.13821 23.0248 2.53199C23.2294 3.94517 23.2278 7.08119 20.1569 10.1521L19.2107 11.0983V17.7338L19.2106 17.7469C19.2037 18.2308 19.0067 18.6933 18.6624 19.0331L15.1456 22.5608C14.9095 22.7966 14.6137 22.964 14.29 23.0449C13.9663 23.1259 13.6267 23.1174 13.3074 23.0204C12.9881 22.9235 12.7011 22.7417 12.4771 22.4944C12.2533 22.2473 12.1006 21.9441 12.0355 21.6171L11.1783 17.3417L6.65869 12.822L4.34847 12.3589L2.38351 11.965C2.05664 11.8998 1.75272 11.747 1.50564 11.5232C1.25835 11.2992 1.07653 11.0122 0.979561 10.6929C0.882595 10.3736 0.874125 10.034 0.955057 9.7103C1.03599 9.38659 1.20328 9.09092 1.43909 8.85483ZM6.8186 10.8724L2.94619 10.096L6.32006 6.73268H10.9583L6.8186 10.8724ZM15.2219 5.21703C17.681 2.75787 20.0783 2.75376 21.1124 2.8876C21.2462 3.92172 21.2421 6.31895 18.783 8.77812L12.0728 15.4883L8.51172 11.9272L15.2219 5.21703ZM13.9042 21.0538L13.1279 17.1811L17.2676 13.0414V17.68L13.9042 21.0538Z"></path><path d="M9.31827 18.3446C9.45046 17.8529 9.17864 17.3369 8.68945 17.1724C8.56178 17.1294 8.43145 17.1145 8.30512 17.1243C8.10513 17.1398 7.91519 17.2172 7.76181 17.3434C7.62613 17.455 7.51905 17.6048 7.45893 17.7835C6.97634 19.2186 5.77062 19.9878 4.52406 20.4029C4.08525 20.549 3.6605 20.644 3.29471 20.7053C3.35607 20.3395 3.45098 19.9148 3.59711 19.476C4.01221 18.2294 4.78141 17.0237 6.21648 16.5411C6.39528 16.481 6.54504 16.3739 6.65665 16.2382C6.85126 16.0016 6.92988 15.678 6.84417 15.3647C6.83922 15.3466 6.83373 15.3286 6.82767 15.3106C6.74106 15.053 6.55701 14.8557 6.33037 14.7459C6.10949 14.6389 5.84816 14.615 5.59715 14.6994C5.47743 14.7397 5.36103 14.7831 5.24786 14.8294C3.22626 15.6569 2.2347 17.4173 1.75357 18.8621C1.49662 19.6337 1.36993 20.3554 1.30679 20.8818C1.27505 21.1464 1.25893 21.3654 1.25072 21.5213C1.24662 21.5993 1.24448 21.6618 1.24337 21.7066L1.243 21.7226L1.24235 21.7605L1.2422 21.7771L1.24217 21.7827L1.24217 21.7856C1.24217 22.3221 1.67703 22.7579 2.2137 22.7579L2.2155 22.7579L2.22337 22.7578L2.23956 22.7577C2.25293 22.7575 2.27096 22.7572 2.29338 22.7567C2.33821 22.7555 2.40073 22.7534 2.47876 22.7493C2.63466 22.7411 2.85361 22.725 3.11822 22.6932C3.64462 22.6301 4.36636 22.5034 5.13797 22.2464C6.58274 21.7653 8.3431 20.7738 9.17063 18.7522C9.21696 18.639 9.26037 18.5226 9.30064 18.4029C9.30716 18.3835 9.31304 18.364 9.31827 18.3446Z"></path></svg>Tip</p><div class="starlight-aside__content"><p>For monorepos or when DSN detection picks up the wrong project, use a <a href="./configuration/#configuration-file-sentryclirc"><code dir="auto">.sentryclirc</code> config file</a> to pin your org/project explicitly.</p></div></aside>
<div class="sl-heading-wrapper level-h3"><h3 id="supported-languages">Supported Languages</h3><a class="sl-anchor-link" href="#supported-languages"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Supported Languages”</span></a></div>
<p>The CLI can detect DSNs from source code in these languages:</p>
<table><thead><tr><th>Language</th><th>File Extensions</th><th>Detection Pattern</th></tr></thead><tbody><tr><td>JavaScript/TypeScript</td><td><code dir="auto">.js</code>, <code dir="auto">.ts</code>, <code dir="auto">.jsx</code>, <code dir="auto">.tsx</code>, <code dir="auto">.mjs</code>, <code dir="auto">.cjs</code></td><td><code dir="auto">Sentry.init({ dsn: "..." })</code></td></tr><tr><td>Python</td><td><code dir="auto">.py</code></td><td><code dir="auto">sentry_sdk.init(dsn="...")</code></td></tr><tr><td>Go</td><td><code dir="auto">.go</code></td><td><code dir="auto">sentry.Init(sentry.ClientOptions{Dsn: "..."})</code></td></tr><tr><td>Java</td><td><code dir="auto">.java</code></td><td><code dir="auto">Sentry.init(options -> options.setDsn("..."))</code></td></tr><tr><td>Ruby</td><td><code dir="auto">.rb</code></td><td>`Sentry.init {</td></tr><tr><td>PHP</td><td><code dir="auto">.php</code></td><td><code dir="auto">\Sentry\init(['dsn' => '...'])</code></td></tr></tbody></table>
<div class="sl-heading-wrapper level-h3"><h3 id="caching">Caching</h3><a class="sl-anchor-link" href="#caching"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Caching”</span></a></div>
<p>To avoid scanning your codebase on every command, the CLI caches:</p>
<ul>
<li><strong>DSN location</strong> - Which file contains the DSN</li>
<li><strong>Resolved project</strong> - The org/project slugs from the API</li>
</ul>
<p>The cache is validated on each run by checking if the source file still contains the same DSN. If the DSN changes or the file is deleted, a full scan is triggered.</p>
<div class="sl-heading-wrapper level-h3"><h3 id="usage">Usage</h3><a class="sl-anchor-link" href="#usage"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Usage”</span></a></div>
<p>Once your project has a DSN configured, commands automatically use it:</p>
<div class="expressive-code"><style>@layer starlight.components{.expressive-code{font-family:var(--ec-uiFontFml);font-size:var(--ec-uiFontSize);font-weight:var(--ec-uiFontWg);line-height:var(--ec-uiLineHt);text-size-adjust:none;-webkit-text-size-adjust:none}.expressive-code *:not(:is(svg, svg *)){all:revert;box-sizing:border-box}.expressive-code pre{display:flex;margin:0;padding:0;border:var(--ec-brdWd) solid var(--ec-brdCol);border-radius:calc(var(--ec-brdRad) + var(--ec-brdWd));background:var(--ec-codeBg)}.expressive-code pre:focus-visible{outline:3px solid var(--ec-focusBrd);outline-offset:-3px}.expressive-code pre > code{all:unset;display:block;flex:1 0 100%;padding:var(--ec-codePadBlk) 0;color:var(--ec-codeFg);font-family:var(--ec-codeFontFml);font-size:var(--ec-codeFontSize);font-weight:var(--ec-codeFontWg);line-height:var(--ec-codeLineHt)}.expressive-code pre{overflow-x:auto}.expressive-code pre.wrap .ec-line .code{white-space:pre-wrap;overflow-wrap:break-word;min-width:min(20ch, var(--ecMaxLine, 20ch))}.expressive-code pre.wrap .ec-line .code span.indent{white-space:pre}.expressive-code .ec-line{direction:ltr;unicode-bidi:isolate;display:grid;grid-template-areas:'gutter code';grid-template-columns:auto 1fr;position:relative}.expressive-code .ec-line .gutter{grid-area:gutter;color:var(--ec-gtrFg)}.expressive-code .ec-line .gutter > *{pointer-events:none;user-select:none;-webkit-user-select:none}.expressive-code .ec-line .gutter ~ .code{--ecLineBrdCol:var(--ec-gtrBrdCol)}.expressive-code .ec-line.highlight .gutter{color:var(--ec-gtrHlFg)}.expressive-code .ec-line .code{grid-area:code;position:relative;box-sizing:content-box;padding-inline-start:calc(var(--ecIndent, 0ch) + var(--ec-codePadInl) - var(--ecGtrBrdWd));padding-inline-end:var(--ec-codePadInl);text-indent:calc(var(--ecIndent, 0ch) * -1)}.expressive-code .ec-line .code::before,.expressive-code .ec-line .code::after,.expressive-code .ec-line .code :where(*){text-indent:0}.expressive-code .ec-line .code{--ecGtrBrdWd:var(--ec-gtrBrdWd);border-inline-start:var(--ecGtrBrdWd) solid var(--ecLineBrdCol, transparent)}.expressive-code .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.expressive-code .ec-line.mark{--tmLineBgCol:var(--ec-tm-markBg)}.expressive-code .ec-line.mark .code{--ecLineBrdCol:var(--ec-tm-markBrdCol)}.expressive-code .ec-line.ins{--tmLineBgCol:var(--ec-tm-insBg);--tmLabel:var(--ec-tm-insDiffIndContent)}.expressive-code .ec-line.ins .code{--ecLineBrdCol:var(--ec-tm-insBrdCol)}.expressive-code .ec-line.ins .code::before{color:var(--ec-tm-insDiffIndCol)}.expressive-code .ec-line.del{--tmLineBgCol:var(--ec-tm-delBg);--tmLabel:var(--ec-tm-delDiffIndContent)}.expressive-code .ec-line.del .code{--ecLineBrdCol:var(--ec-tm-delBrdCol)}.expressive-code .ec-line.del .code::before{color:var(--ec-tm-delDiffIndCol)}.expressive-code .ec-line.mark,.expressive-code .ec-line.ins,.expressive-code .ec-line.del{background:var(--tmLineBgCol)}.expressive-code .ec-line.mark .code,.expressive-code .ec-line.ins .code,.expressive-code .ec-line.del .code{--ecGtrBrdWd:var(--ec-tm-lineMarkerAccentWd)}.expressive-code .ec-line.mark .code::before,.expressive-code .ec-line.ins .code::before,.expressive-code .ec-line.del .code::before{display:block;position:absolute;left:0;box-sizing:border-box;content:var(--tmLabel, ' ');padding-inline-start:var(--ec-tm-lineDiffIndMargLeft);text-align:center;white-space:pre}.expressive-code .ec-line.mark.tm-label .code::before,.expressive-code .ec-line.ins.tm-label .code::before,.expressive-code .ec-line.del.tm-label .code::before{background:var(--ecLineBrdCol);padding:0 calc(var(--ec-tm-lineMarkerLabelPadInl) + var(--ec-tm-lineMarkerAccentWd)) 0 var(--ec-tm-lineMarkerLabelPadInl);color:var(--ec-tm-lineMarkerLabelCol)}.expressive-code .ec-line mark{--tmInlineBgCol:var(--ec-tm-markBg);--tmInlineBrdCol:var(--ec-tm-markBrdCol)}.expressive-code .ec-line ins{--tmInlineBgCol:var(--ec-tm-insBg);--tmInlineBrdCol:var(--ec-tm-insBrdCol)}.expressive-code .ec-line del{--tmInlineBgCol:var(--ec-tm-delBg);--tmInlineBrdCol:var(--ec-tm-delBrdCol)}.expressive-code .ec-line mark,.expressive-code .ec-line ins,.expressive-code .ec-line del{all:unset;display:inline-block;position:relative;--tmBrdL:var(--ec-tm-inlMarkerBrdWd);--tmBrdR:var(--ec-tm-inlMarkerBrdWd);--tmRadL:var(--ec-tm-inlMarkerBrdRad);--tmRadR:var(--ec-tm-inlMarkerBrdRad);margin-inline:0.025rem;padding-inline:var(--ec-tm-inlMarkerPad);border-radius:var(--tmRadL) var(--tmRadR) var(--tmRadR) var(--tmRadL);background:var(--tmInlineBgCol);background-clip:padding-box}.expressive-code .ec-line mark.open-start,.expressive-code .ec-line ins.open-start,.expressive-code .ec-line del.open-start{margin-inline-start:0;padding-inline-start:0;--tmBrdL:0px;--tmRadL:0}.expressive-code .ec-line mark.open-end,.expressive-code .ec-line ins.open-end,.expressive-code .ec-line del.open-end{margin-inline-end:0;padding-inline-end:0;--tmBrdR:0px;--tmRadR:0}.expressive-code .ec-line mark::before,.expressive-code .ec-line ins::before,.expressive-code .ec-line del::before{content:'';position:absolute;pointer-events:none;display:inline-block;inset:0;border-radius:var(--tmRadL) var(--tmRadR) var(--tmRadR) var(--tmRadL);border:var(--ec-tm-inlMarkerBrdWd) solid var(--tmInlineBrdCol);border-inline-width:var(--tmBrdL) var(--tmBrdR)}.expressive-code .frame{all:unset;position:relative;display:block;--header-border-radius:calc(var(--ec-brdRad) + var(--ec-brdWd));--tab-border-radius:calc(var(--ec-frm-edTabBrdRad) + var(--ec-brdWd));--button-spacing:0.4rem;--code-background:var(--ec-frm-edBg);border-radius:var(--header-border-radius);box-shadow:var(--ec-frm-frameBoxShdCssVal)}.expressive-code .frame .header{display:none;z-index:1;position:relative;border-radius:var(--header-border-radius) var(--header-border-radius) 0 0}.expressive-code .frame.has-title pre,.expressive-code .frame.has-title code,.expressive-code .frame.is-terminal pre,.expressive-code .frame.is-terminal code{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.expressive-code .frame .title:empty:before{content:'\a0'}.expressive-code .frame.has-title:not(.is-terminal){--button-spacing:calc(1.9rem + 2 * (var(--ec-uiPadBlk) + var(--ec-frm-edActTabIndHt)))}.expressive-code .frame.has-title:not(.is-terminal) .title{position:relative;color:var(--ec-frm-edActTabFg);background:var(--ec-frm-edActTabBg);background-clip:padding-box;margin-block-start:var(--ec-frm-edTabsMargBlkStart);padding:calc(var(--ec-uiPadBlk) + var(--ec-frm-edActTabIndHt)) var(--ec-uiPadInl);border:var(--ec-brdWd) solid var(--ec-frm-edActTabBrdCol);border-radius:var(--tab-border-radius) var(--tab-border-radius) 0 0;border-bottom:none;overflow:hidden}.expressive-code .frame.has-title:not(.is-terminal) .title::after{content:'';position:absolute;pointer-events:none;inset:0;border-top:var(--ec-frm-edActTabIndHt) solid var(--ec-frm-edActTabIndTopCol);border-bottom:var(--ec-frm-edActTabIndHt) solid var(--ec-frm-edActTabIndBtmCol)}.expressive-code .frame.has-title:not(.is-terminal) .header{display:flex;background:linear-gradient(to top, var(--ec-frm-edTabBarBrdBtmCol) var(--ec-brdWd), transparent var(--ec-brdWd)),linear-gradient(var(--ec-frm-edTabBarBg), var(--ec-frm-edTabBarBg));background-repeat:no-repeat;padding-inline-start:var(--ec-frm-edTabsMargInlStart)}.expressive-code .frame.has-title:not(.is-terminal) .header::before{content:'';position:absolute;pointer-events:none;inset:0;border:var(--ec-brdWd) solid var(--ec-frm-edTabBarBrdCol);border-radius:inherit;border-bottom:none}.expressive-code .frame.is-terminal{--button-spacing:calc(1.9rem + var(--ec-brdWd) + 2 * var(--ec-uiPadBlk));--code-background:var(--ec-frm-trmBg)}.expressive-code .frame.is-terminal .header{display:flex;align-items:center;justify-content:center;padding-block:var(--ec-uiPadBlk);padding-block-end:calc(var(--ec-uiPadBlk) + var(--ec-brdWd));position:relative;font-weight:500;letter-spacing:0.025ch;color:var(--ec-frm-trmTtbFg);background:var(--ec-frm-trmTtbBg);border:var(--ec-brdWd) solid var(--ec-brdCol);border-bottom:none}.expressive-code .frame.is-terminal .header::before{content:'';position:absolute;pointer-events:none;left:var(--ec-uiPadInl);width:2.1rem;height:0.56rem;line-height:0;background-color:var(--ec-frm-trmTtbDotsFg);opacity:var(--ec-frm-trmTtbDotsOpa);-webkit-mask-image:var(--ec-frm-trmIcon);-webkit-mask-repeat:no-repeat;mask-image:var(--ec-frm-trmIcon);mask-repeat:no-repeat}.expressive-code .frame.is-terminal .header::after{content:'';position:absolute;pointer-events:none;inset:0;border-bottom:var(--ec-brdWd) solid var(--ec-frm-trmTtbBrdBtmCol)}.expressive-code .frame pre{background:var(--code-background)}.expressive-code .copy{display:flex;gap:0.25rem;flex-direction:row;position:absolute;inset-block-start:calc(var(--ec-brdWd) + var(--button-spacing));inset-inline-end:calc(var(--ec-brdWd) + var(--ec-uiPadInl) / 2)}@media (scripting: none){.expressive-code .copy{display:none}}.expressive-code .copy{direction:ltr;unicode-bidi:isolate}.expressive-code .copy button{position:relative;align-self:flex-end;margin:0;padding:0;border:none;border-radius:0.2rem;z-index:1;cursor:pointer;transition-property:opacity, background, border-color;transition-duration:0.2s;transition-timing-function:cubic-bezier(0.25, 0.46, 0.45, 0.94);width:2.5rem;height:2.5rem;background:var(--code-background);opacity:0.75}.expressive-code .copy button div{position:absolute;inset:0;border-radius:inherit;background:var(--ec-frm-inlBtnBg);opacity:var(--ec-frm-inlBtnBgIdleOpa);transition-property:inherit;transition-duration:inherit;transition-timing-function:inherit}.expressive-code .copy button::before{content:'';position:absolute;pointer-events:none;inset:0;border-radius:inherit;border:var(--ec-brdWd) solid var(--ec-frm-inlBtnBrd);opacity:var(--ec-frm-inlBtnBrdOpa)}.expressive-code .copy button::after{content:'';position:absolute;pointer-events:none;inset:0;background-color:var(--ec-frm-inlBtnFg);-webkit-mask-image:var(--ec-frm-copyIcon);-webkit-mask-repeat:no-repeat;mask-image:var(--ec-frm-copyIcon);mask-repeat:no-repeat;margin:0.475rem;line-height:0}.expressive-code .copy button:hover,.expressive-code .copy button:focus:focus-visible{opacity:1}.expressive-code .copy button:hover div,.expressive-code .copy button:focus:focus-visible div{opacity:var(--ec-frm-inlBtnBgHoverOrFocusOpa)}.expressive-code .copy button:active{opacity:1}.expressive-code .copy button:active div{opacity:var(--ec-frm-inlBtnBgActOpa)}.expressive-code .copy .feedback{--tooltip-arrow-size:0.35rem;--tooltip-bg:var(--ec-frm-tooltipSuccessBg);color:var(--ec-frm-tooltipSuccessFg);pointer-events:none;user-select:none;-webkit-user-select:none;position:relative;align-self:center;background-color:var(--tooltip-bg);z-index:99;padding:0.125rem 0.75rem;border-radius:0.2rem;margin-inline-end:var(--tooltip-arrow-size);opacity:0;transition-property:opacity, transform;transition-duration:0.2s;transition-timing-function:ease-in-out;transform:translate3d(0, 0.25rem, 0)}.expressive-code .copy .feedback::after{content:'';position:absolute;pointer-events:none;top:calc(50% - var(--tooltip-arrow-size));inset-inline-end:calc(-2 * (var(--tooltip-arrow-size) - 0.5px));border:var(--tooltip-arrow-size) solid transparent;border-inline-start-color:var(--tooltip-bg)}.expressive-code .copy .feedback.show{opacity:1;transform:translate3d(0, 0, 0)}@media (hover: hover){.expressive-code{}.expressive-code .copy button{opacity:0;width:2rem;height:2rem}.expressive-code .frame:hover .copy button:not(:hover),.expressive-code .frame:focus-within :focus-visible ~ .copy button:not(:hover),.expressive-code .frame .copy .feedback.show ~ button:not(:hover){opacity:0.75}}.expressive-code :nth-child(1 of .ec-line) .code{padding-inline-end:calc(2rem + var(--ec-codePadInl))}}@layer starlight.components{:root,:root:not([data-theme='sentry-monochrome']) .expressive-code[data-theme='sentry-monochrome']{--ec-brdRad:8px;--ec-brdWd:0px;--ec-brdCol:transparent;--ec-codeFontFml:var(--__sl-font-mono);--ec-codeFontSize:var(--sl-text-code);--ec-codeFontWg:400;--ec-codeLineHt:1.65;--ec-codePadBlk:0.9rem;--ec-codePadInl:1rem;--ec-codeBg:#111111;--ec-codeFg:#f5f5f5;--ec-codeSelBg:#303030;--ec-gtrBrdCol:var(--ve-line);--ec-gtrBrdWd:1.5px;--ec-gtrFg:var(--ve-text-tertiary);--ec-gtrHlFg:var(--ve-text);--ec-uiFontFml:var(--__sl-font);--ec-uiFontSize:0.82rem;--ec-uiFontWg:400;--ec-uiLineHt:1.4;--ec-uiPadBlk:0.35rem;--ec-uiPadInl:0.75rem;--ec-uiSelBg:#222222;--ec-uiSelFg:#ffffff;--ec-focusBrd:#ffffff;--ec-sbThumbCol:#3a3a3a;--ec-sbThumbHoverCol:#626262;--ec-tm-lineMarkerAccentMarg:0rem;--ec-tm-lineMarkerAccentWd:0.15rem;--ec-tm-lineMarkerLabelPadInl:0.2rem;--ec-tm-lineMarkerLabelCol:white;--ec-tm-lineDiffIndMargLeft:0.25rem;--ec-tm-inlMarkerBrdWd:1.5px;--ec-tm-inlMarkerBrdRad:0.2rem;--ec-tm-inlMarkerPad:0.15rem;--ec-tm-insDiffIndContent:'+';--ec-tm-delDiffIndContent:'-';--ec-tm-markBg:#174a9099;--ec-tm-markBrdCol:#4d70bcd0;--ec-tm-insBg:#1e571599;--ec-tm-insBrdCol:#487f3bd0;--ec-tm-insDiffIndCol:#79b169d0;--ec-tm-delBg:#862d2799;--ec-tm-delBrdCol:#b4554bd0;--ec-tm-delDiffIndCol:#ed8779d0;--ec-frm-shdCol:#0000005b;--ec-frm-frameBoxShdCssVal:none;--ec-frm-edActTabBg:#000000;--ec-frm-edActTabFg:#fafafa;--ec-frm-edActTabBrdCol:transparent;--ec-frm-edActTabIndHt:0px;--ec-frm-edActTabIndTopCol:transparent;--ec-frm-edActTabIndBtmCol:transparent;--ec-frm-edTabsMargInlStart:0;--ec-frm-edTabsMargBlkStart:0;--ec-frm-edTabBrdRad:8px;--ec-frm-edTabBarBg:#000000;--ec-frm-edTabBarBrdCol:transparent;--ec-frm-edTabBarBrdBtmCol:transparent;--ec-frm-edBg:#111111;--ec-frm-trmTtbFg:#fafafa;--ec-frm-trmTtbDotsFg:#fafafa;--ec-frm-trmTtbDotsOpa:0.15;--ec-frm-trmTtbBg:#111111;--ec-frm-trmTtbBrdBtmCol:transparent;--ec-frm-trmBg:#111111;--ec-frm-inlBtnBg:transparent;--ec-frm-inlBtnBgIdleOpa:0;--ec-frm-inlBtnBgHoverOrFocusOpa:0.2;--ec-frm-inlBtnBgActOpa:0.3;--ec-frm-inlBtnFg:var(--ve-text-secondary);--ec-frm-inlBtnBrd:transparent;--ec-frm-inlBtnBrdOpa:0.4;--ec-frm-tooltipSuccessBg:#098656;--ec-frm-tooltipSuccessFg:white;--ec-frm-copyIcon:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.75'%3E%3Cpath%20d%3D'M3%2019a2%202%200%200%201-1-2V2a2%202%200%200%201%201-1h13a2%202%200%200%201%202%201'%2F%3E%3Crect%20x%3D'6'%20y%3D'5'%20width%3D'16'%20height%3D'18'%20rx%3D'1.5'%20ry%3D'1.5'%2F%3E%3C%2Fsvg%3E");--ec-frm-trmIcon:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2060%2016'%20preserveAspectRatio%3D'xMidYMid%20meet'%3E%3Ccircle%20cx%3D'8'%20cy%3D'8'%20r%3D'8'%2F%3E%3Ccircle%20cx%3D'30'%20cy%3D'8'%20r%3D'8'%2F%3E%3Ccircle%20cx%3D'52'%20cy%3D'8'%20r%3D'8'%2F%3E%3C%2Fsvg%3E")}.expressive-code .ec-line :where(span[style^='--']:not([class])),:root:not([data-theme='sentry-monochrome']) .expressive-code[data-theme='sentry-monochrome'] .ec-line :where(span[style^='--']:not([class])){color:var(--0, inherit);background-color:var(--0bg, transparent);font-style:var(--0fs, inherit);font-weight:var(--0fw, inherit);text-decoration:var(--0td, inherit)}}</style><script type="module" src="/_astro/ec.0vx5m.js"></script><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#9E9E9E;--0fs:italic"># Instead of:</span></div></div><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">list</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">my-org/my-project</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#9E9E9E;--0fs:italic"># Just run:</span></div></div><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">list</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="sentry issue list my-org/my-projectsentry issue list"><div></div></button></div></figure></div>
<p>The CLI will show which project was detected:</p>
<div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#f5f5f5">Detected project: my-app (from .env)</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#f5f5f5">ID SHORT ID TITLE COUNT</span></div></div><div class="ec-line"><div class="code"><span style="--0:#f5f5f5">123456789 MYAPP-ABC TypeError: Cannot read prop... 142</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Detected project: my-app (from .env)ID SHORT ID TITLE COUNT123456789 MYAPP-ABC TypeError: Cannot read prop... 142"><div></div></button></div></figure></div>
<div class="sl-heading-wrapper level-h2"><h2 id="monorepo-support--alias-system">Monorepo Support & Alias System</h2><a class="sl-anchor-link" href="#monorepo-support--alias-system"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Monorepo Support & Alias System”</span></a></div>
<p>In monorepos with multiple Sentry projects, the CLI generates short aliases for each project, making it easy to work with issues across projects.</p>
<div class="sl-heading-wrapper level-h3"><h3 id="how-aliases-work">How Aliases Work</h3><a class="sl-anchor-link" href="#how-aliases-work"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “How Aliases Work”</span></a></div>
<p>When you run <code dir="auto">sentry issue list</code>, the CLI:</p>
<ol>
<li>Scans for DSNs in monorepo directories (<code dir="auto">packages/</code>, <code dir="auto">apps/</code>, etc.)</li>
<li>Generates unique short aliases for each project</li>
<li>Caches the aliases for use with other commands</li>
</ol>
<p>Aliases are the shortest unique prefix of each project slug. For example:</p>
<table><thead><tr><th>Project Slug</th><th>Alias</th></tr></thead><tbody><tr><td><code dir="auto">frontend</code></td><td><code dir="auto">f</code></td></tr><tr><td><code dir="auto">functions</code></td><td><code dir="auto">fu</code></td></tr><tr><td><code dir="auto">backend</code></td><td><code dir="auto">b</code></td></tr></tbody></table>
<p>For projects with a common prefix (like <code dir="auto">spotlight-electron</code>, <code dir="auto">spotlight-website</code>), the prefix is stripped first:</p>
<table><thead><tr><th>Project Slug</th><th>Alias</th></tr></thead><tbody><tr><td><code dir="auto">spotlight-electron</code></td><td><code dir="auto">e</code></td></tr><tr><td><code dir="auto">spotlight-website</code></td><td><code dir="auto">w</code></td></tr><tr><td><code dir="auto">spotlight-backend</code></td><td><code dir="auto">b</code></td></tr></tbody></table>
<div class="sl-heading-wrapper level-h3"><h3 id="using-alias-suffix-format">Using Alias-Suffix Format</h3><a class="sl-anchor-link" href="#using-alias-suffix-format"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Using Alias-Suffix Format”</span></a></div>
<p>After running <code dir="auto">issue list</code>, you can reference issues using the <code dir="auto">alias-suffix</code> format:</p>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#9E9E9E;--0fs:italic"># List issues - note the ALIAS column</span></div></div><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">list</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="sentry issue list"><div></div></button></div></figure></div>
<div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#f5f5f5">ALIAS SHORT ID TITLE COUNT</span></div></div><div class="ec-line"><div class="code"><span style="--0:#f5f5f5">e SPOTLIGHT-ELEC-4Y TypeError: Cannot read prop... 142</span></div></div><div class="ec-line"><div class="code"><span style="--0:#f5f5f5">w SPOTLIGHT-WEB-ABC Failed to fetch user data 89</span></div></div><div class="ec-line"><div class="code"><span style="--0:#f5f5f5">b SPOTLIGHT-BACK-XYZ Connection timeout 34</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="ALIAS SHORT ID TITLE COUNTe SPOTLIGHT-ELEC-4Y TypeError: Cannot read prop... 142w SPOTLIGHT-WEB-ABC Failed to fetch user data 89b SPOTLIGHT-BACK-XYZ Connection timeout 34"><div></div></button></div></figure></div>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#9E9E9E;--0fs:italic"># View issue using alias-suffix</span></div></div><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">view</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">e-4Y</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#9E9E9E;--0fs:italic"># Explain using alias-suffix</span></div></div><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">explain</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">w-ABC</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#9E9E9E;--0fs:italic"># Works with any issue command</span></div></div><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">plan</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">b-XYZ</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="sentry issue view e-4Ysentry issue explain w-ABCsentry issue plan b-XYZ"><div></div></button></div></figure></div>
<div class="sl-heading-wrapper level-h3"><h3 id="cross-organization-support">Cross-Organization Support</h3><a class="sl-anchor-link" href="#cross-organization-support"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Cross-Organization Support”</span></a></div>
<p>If you work with multiple organizations that have projects with the same slug, the CLI uses org-prefixed aliases:</p>
<div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#f5f5f5">ALIAS SHORT ID TITLE</span></div></div><div class="ec-line"><div class="code"><span style="--0:#f5f5f5">o1:api ORG1-API-123 Error in API handler</span></div></div><div class="ec-line"><div class="code"><span style="--0:#f5f5f5">o2:api ORG2-API-456 Database connection failed</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="ALIAS SHORT ID TITLEo1:api ORG1-API-123 Error in API handlero2:api ORG2-API-456 Database connection failed"><div></div></button></div></figure></div>
<div class="sl-heading-wrapper level-h2"><h2 id="issue-id-formats">Issue ID Formats</h2><a class="sl-anchor-link" href="#issue-id-formats"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Issue ID Formats”</span></a></div>
<p>The CLI accepts several formats for identifying issues:</p>
<div class="sl-heading-wrapper level-h3"><h3 id="numeric-id">Numeric ID</h3><a class="sl-anchor-link" href="#numeric-id"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Numeric ID”</span></a></div>
<p>The internal Sentry issue ID:</p>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">view</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFB86C">123456789</span></div></div><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">explain</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFB86C">987654321</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="sentry issue view 123456789sentry issue explain 987654321"><div></div></button></div></figure></div>
<div class="sl-heading-wrapper level-h3"><h3 id="full-short-id">Full Short ID</h3><a class="sl-anchor-link" href="#full-short-id"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Full Short ID”</span></a></div>
<p>The project-prefixed short ID shown in Sentry UI:</p>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">view</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">MYPROJECT-ABC</span></div></div><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">explain</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">FRONTEND-XYZ</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="sentry issue view MYPROJECT-ABCsentry issue explain FRONTEND-XYZ"><div></div></button></div></figure></div>
<div class="sl-heading-wrapper level-h3"><h3 id="short-suffix">Short Suffix</h3><a class="sl-anchor-link" href="#short-suffix"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Short Suffix”</span></a></div>
<p>Just the suffix portion when project context is provided via the <code dir="auto"><org>/</code> prefix:</p>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">view</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">my-org/myproject-ABC</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="sentry issue view my-org/myproject-ABC"><div></div></button></div></figure></div>
<div class="sl-heading-wrapper level-h3"><h3 id="github-style--separator">GitHub-Style (<code dir="auto">#</code> separator)</h3><a class="sl-anchor-link" href="#github-style--separator"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “GitHub-Style (# separator)”</span></a></div>
<p>A <code dir="auto">#</code> may be used in place of the final slash, matching how issues are referenced
on GitHub. This is handy for AI agents and tooling that emit <code dir="auto">org/project#SHORTID</code>:</p>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#9E9E9E;--0fs:italic"># Equivalent to my-org/my-project/PROJ-123</span></div></div><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">view</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">my-org/my-project#PROJ-123</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#9E9E9E;--0fs:italic"># Project context only (org auto-detected)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">view</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">my-project#PROJ-123</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="sentry issue view my-org/my-project#PROJ-123sentry issue view my-project#PROJ-123"><div></div></button></div></figure></div>
<div class="sl-heading-wrapper level-h3"><h3 id="alias-suffix">Alias-Suffix</h3><a class="sl-anchor-link" href="#alias-suffix"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Alias-Suffix”</span></a></div>
<p>The short alias plus suffix, available after running <code dir="auto">issue list</code>:</p>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#9E9E9E;--0fs:italic"># First, list issues to populate the alias cache</span></div></div><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">list</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#9E9E9E;--0fs:italic"># Then use alias-suffix format</span></div></div><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">view</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">e-4Y</span></div></div><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">explain</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">w-ABC</span></div></div><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">plan</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">b-XYZ</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="sentry issue listsentry issue view e-4Ysentry issue explain w-ABCsentry issue plan b-XYZ"><div></div></button></div></figure></div>
<p>This format is especially useful in monorepos where you're working across multiple projects.</p>
<div class="sl-heading-wrapper level-h2"><h2 id="ai-powered-analysis-with-seer">AI-Powered Analysis with Seer</h2><a class="sl-anchor-link" href="#ai-powered-analysis-with-seer"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “AI-Powered Analysis with Seer”</span></a></div>
<p>The CLI integrates with Sentry's Seer AI to provide root cause analysis and fix plans directly in your terminal.</p>
<div class="sl-heading-wrapper level-h3"><h3 id="root-cause-analysis">Root Cause Analysis</h3><a class="sl-anchor-link" href="#root-cause-analysis"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Root Cause Analysis”</span></a></div>
<p>Use <code dir="auto">sentry issue explain</code> to understand why an issue is happening:</p>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">explain</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">MYPROJECT-ABC</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="sentry issue explain MYPROJECT-ABC"><div></div></button></div></figure></div>
<p>Seer analyzes:</p>
<ul>
<li>Stack traces and error messages</li>
<li>Related events and patterns</li>
<li>Your codebase (via GitHub integration)</li>
</ul>
<p>And provides:</p>
<ul>
<li>Detailed root cause explanation</li>
<li>Reproduction steps</li>
<li>Relevant code locations</li>
</ul>
<div class="sl-heading-wrapper level-h3"><h3 id="fix-plans">Fix Plans</h3><a class="sl-anchor-link" href="#fix-plans"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Fix Plans”</span></a></div>
<p>After understanding the root cause, use <code dir="auto">sentry issue plan</code> to get actionable fix steps:</p>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#9AE6B4">sentry</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">issue</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">plan</span><span style="--0:#F5F5F5"> </span><span style="--0:#FFD166">MYPROJECT-ABC</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="sentry issue plan MYPROJECT-ABC"><div></div></button></div></figure></div>
<p>The plan includes:</p>
<ul>
<li>Specific files to modify</li>
<li>Code changes to make</li>
<li>Implementation guidance</li>
</ul>
<div class="sl-heading-wrapper level-h3"><h3 id="requirements">Requirements</h3><a class="sl-anchor-link" href="#requirements"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Requirements”</span></a></div>
<p>For Seer integration to work, you need:</p>
<ol>
<li><strong>Seer enabled</strong> for your organization</li>
<li><strong>GitHub integration</strong> configured with repository access</li>
<li><strong>Code mappings</strong> set up to link stack frames to source files</li>
</ol>
<p>See <a href="https://docs.sentry.io/product/issues/issue-details/ai-suggested-solution/">Sentry's Seer documentation</a> for setup instructions.</p> </div> <footer> <table role="presentation" width="100%" height="32" cellspacing="0" cellpadding="0"> <tbody> <tr> <td></td> </tr> </tbody> </table> <div class="pagination-links sentry-pagination-links print:hidden" dir="ltr"> </div> <table role="presentation" width="100%" height="72" cellspacing="0" cellpadding="0"> <tbody> <tr> <td align="center" valign="bottom"> <nav aria-label="Project links"> <a href="https://github.com/getsentry/cli" rel="me" aria-label="GitHub" title="GitHub"> <font color="#888888"> <svg aria-hidden="true" class=" astro-sdw2zlvw" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg> </font> </a> </nav> </td> </tr> </tbody> </table> </footer> </div> </div> </main> </div> </div> </div> </div> </body></html>