[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-sentry-sentry-sdk-setup":3,"mdc--q3x3oa-key":36,"related-org-sentry-sentry-sdk-setup":1488,"related-repo-sentry-sentry-sdk-setup":1667},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":31,"sourceUrl":34,"mdContent":35},"sentry-sdk-setup","setup Sentry SDKs in any project","Set up Sentry in any language or framework. Detects the user's platform and loads the right SDK skill. Use when asked to add Sentry, install an SDK, or set up error monitoring in a project.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"sentry","Sentry","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fsentry.png","getsentry",[13,17,20,23],{"name":14,"slug":15,"type":16},"Observability","observability","tag",{"name":18,"slug":19,"type":16},"Monitoring","monitoring",{"name":21,"slug":22,"type":16},"SDK","sdk",{"name":9,"slug":8,"type":16},237,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fsentry-for-ai","2026-07-11T05:52:55.782703","Apache-2.0",30,[30],"tag-production",{"repoUrl":25,"stars":24,"forks":28,"topics":32,"description":33},[30],"Teach your AI coding assistant how to use Sentry - setup, debugging, alerts, and more","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fsentry-for-ai\u002Ftree\u002FHEAD\u002Fskills-legacy\u002Fsentry-sdk-setup","---\nname: sentry-sdk-setup\ndescription: Set up Sentry in any language or framework. Detects the user's platform and loads the right SDK skill. Use when asked to add Sentry, install an SDK, or set up error monitoring in a project.\nlicense: Apache-2.0\nrole: router\n---\n\n> [All Skills](..\u002F..\u002FSKILL_TREE.md)\n\n# Sentry SDK Setup\n\nSet up Sentry error monitoring, tracing, and session replay in any language or framework. This page helps you find the right SDK skill for your project.\n\n## Start Here — Read This Before Doing Anything\n\n**Do not skip this section.** Do not assume which SDK the user needs based on their project files. Do not start installing packages or creating config files until you have confirmed the user's intent.\n\n1. **Detect the platform** from project files (`package.json`, `go.mod`, `requirements.txt`, `Gemfile`, `*.csproj`, `build.gradle`, etc.).\n2. **Tell the user what you found** and which SDK you recommend.\n3. **Wait for confirmation** before reading the skill and proceeding.\n\nEach SDK skill contains its own detection logic, prerequisites, and step-by-step configuration. Trust the skill — read it carefully and follow it. Do not improvise or take shortcuts.\n\n---\n\n## SDK Skills\n\n| Platform | Skill |\n|---|---|\n| Android | [`sentry-android-sdk`](..\u002Fsentry-android-sdk\u002FSKILL.md) |\n| browser JavaScript | [`sentry-browser-sdk`](..\u002Fsentry-browser-sdk\u002FSKILL.md) |\n| Cloudflare Workers and Pages | [`sentry-cloudflare-sdk`](..\u002Fsentry-cloudflare-sdk\u002FSKILL.md) |\n| Apple platforms (iOS, macOS, tvOS, watchOS, visionOS) | [`sentry-cocoa-sdk`](..\u002Fsentry-cocoa-sdk\u002FSKILL.md) |\n| .NET | [`sentry-dotnet-sdk`](..\u002Fsentry-dotnet-sdk\u002FSKILL.md) |\n| Elixir | [`sentry-elixir-sdk`](..\u002Fsentry-elixir-sdk\u002FSKILL.md) |\n| Go | [`sentry-go-sdk`](..\u002Fsentry-go-sdk\u002FSKILL.md) |\n| NestJS | [`sentry-nestjs-sdk`](..\u002Fsentry-nestjs-sdk\u002FSKILL.md) |\n| Next.js | [`sentry-nextjs-sdk`](..\u002Fsentry-nextjs-sdk\u002FSKILL.md) |\n| Node.js, Bun, and Deno | [`sentry-node-sdk`](..\u002Fsentry-node-sdk\u002FSKILL.md) |\n| PHP | [`sentry-php-sdk`](..\u002Fsentry-php-sdk\u002FSKILL.md) |\n| Python | [`sentry-python-sdk`](..\u002Fsentry-python-sdk\u002FSKILL.md) |\n| Flutter and Dart | [`sentry-flutter-sdk`](..\u002Fsentry-flutter-sdk\u002FSKILL.md) |\n| React Native and Expo | [`sentry-react-native-sdk`](..\u002Fsentry-react-native-sdk\u002FSKILL.md) |\n| React | [`sentry-react-sdk`](..\u002Fsentry-react-sdk\u002FSKILL.md) |\n| React Router Framework | [`sentry-react-router-framework-sdk`](..\u002Fsentry-react-router-framework-sdk\u002FSKILL.md) |\n| TanStack Start React | [`sentry-tanstack-start-sdk`](..\u002Fsentry-tanstack-start-sdk\u002FSKILL.md) |\n| Ruby | [`sentry-ruby-sdk`](..\u002Fsentry-ruby-sdk\u002FSKILL.md) |\n| Svelte and SvelteKit | [`sentry-svelte-sdk`](..\u002Fsentry-svelte-sdk\u002FSKILL.md) |\n\n### Platform Detection Priority\n\nWhen multiple SDKs could match, prefer the more specific one:\n\n- **Android** (`build.gradle` with android plugin) → `sentry-android-sdk`\n- **Cloudflare** (`wrangler.toml` or `wrangler.jsonc`) → `sentry-cloudflare-sdk` over `sentry-node-sdk`\n- **NestJS** (`@nestjs\u002Fcore`) → `sentry-nestjs-sdk` over `sentry-node-sdk`\n- **Next.js** → `sentry-nextjs-sdk` over `sentry-react-sdk` or `sentry-node-sdk`\n- **React Router Framework** (`@sentry\u002Freact-router` or `@react-router\u002F*`) → `sentry-react-router-framework-sdk` over `sentry-react-sdk`\n- **TanStack Start React** (`@tanstack\u002Freact-start`) → `sentry-tanstack-start-sdk` over `sentry-react-sdk`\n- **Flutter** (`pubspec.yaml` with `flutter:` dependency or `sentry_flutter`) → `sentry-flutter-sdk`\n- **React Native** → `sentry-react-native-sdk` over `sentry-react-sdk`\n- **PHP** with Laravel or Symfony → `sentry-php-sdk`\n- **Elixir** (`mix.exs` detected) → `sentry-elixir-sdk`\n- **Node.js \u002F Bun \u002F Deno** without a specific framework → `sentry-node-sdk`\n- **Browser JS** (vanilla, jQuery, static sites) → `sentry-browser-sdk`\n- **No match** → direct user to [Sentry Docs](https:\u002F\u002Fdocs.sentry.io\u002Fplatforms\u002F)\n\n## Quick Lookup\n\nMatch your project to a skill by keywords.\n\n| Keywords | Skill |\n|---|---|\n| android, kotlin, java, jetpack compose | [`sentry-android-sdk`](..\u002Fsentry-android-sdk\u002FSKILL.md) |\n| browser, vanilla js, javascript, jquery, cdn, wordpress, static site | [`sentry-browser-sdk`](..\u002Fsentry-browser-sdk\u002FSKILL.md) |\n| cloudflare, cloudflare workers, cloudflare pages, wrangler, durable objects, d1 | [`sentry-cloudflare-sdk`](..\u002Fsentry-cloudflare-sdk\u002FSKILL.md) |\n| ios, macos, swift, cocoa, tvos, watchos, visionos, swiftui, uikit | [`sentry-cocoa-sdk`](..\u002Fsentry-cocoa-sdk\u002FSKILL.md) |\n| .net, csharp, c#, asp.net, maui, wpf, winforms, blazor, azure functions | [`sentry-dotnet-sdk`](..\u002Fsentry-dotnet-sdk\u002FSKILL.md) |\n| go, golang, gin, echo, fiber | [`sentry-go-sdk`](..\u002Fsentry-go-sdk\u002FSKILL.md) |\n| elixir, phoenix, plug, oban | [`sentry-elixir-sdk`](..\u002Fsentry-elixir-sdk\u002FSKILL.md) |\n| nestjs, nest | [`sentry-nestjs-sdk`](..\u002Fsentry-nestjs-sdk\u002FSKILL.md) |\n| nextjs, next.js, next | [`sentry-nextjs-sdk`](..\u002Fsentry-nextjs-sdk\u002FSKILL.md) |\n| node, nodejs, node.js, bun, deno, express, fastify, koa, hapi | [`sentry-node-sdk`](..\u002Fsentry-node-sdk\u002FSKILL.md) |\n| php, laravel, symfony | [`sentry-php-sdk`](..\u002Fsentry-php-sdk\u002FSKILL.md) |\n| python, django, flask, fastapi, celery, starlette | [`sentry-python-sdk`](..\u002Fsentry-python-sdk\u002FSKILL.md) |\n| flutter, dart, pubspec | [`sentry-flutter-sdk`](..\u002Fsentry-flutter-sdk\u002FSKILL.md) |\n| react native, expo | [`sentry-react-native-sdk`](..\u002Fsentry-react-native-sdk\u002FSKILL.md) |\n| react, react router, tanstack, redux, vite | [`sentry-react-sdk`](..\u002Fsentry-react-sdk\u002FSKILL.md) |\n| react-router framework, @sentry\u002Freact-router, @react-router\u002Fdev, react-router reveal | [`sentry-react-router-framework-sdk`](..\u002Fsentry-react-router-framework-sdk\u002FSKILL.md) |\n| tanstack start, tanstack react start, @tanstack\u002Freact-start, tanstackstart-react | [`sentry-tanstack-start-sdk`](..\u002Fsentry-tanstack-start-sdk\u002FSKILL.md) |\n| ruby, rails, sinatra, sidekiq, rack | [`sentry-ruby-sdk`](..\u002Fsentry-ruby-sdk\u002FSKILL.md) |\n| svelte, sveltekit | [`sentry-svelte-sdk`](..\u002Fsentry-svelte-sdk\u002FSKILL.md) |\n\n---\n\n## Finding the DSN\n\nIf the user doesn't have their DSN, guide them to find it:\n\n1. Open the Sentry project settings page: `https:\u002F\u002Fsentry.io\u002Fsettings\u002Fprojects\u002F`\n2. Select the project\n3. Click **\"Client Keys (DSN)\"** in the left sidebar\n4. Copy the DSN\n\nYou can help the user open the page directly:\n```bash\nopen https:\u002F\u002Fsentry.io\u002Fsettings\u002Fprojects\u002F        # macOS\nxdg-open https:\u002F\u002Fsentry.io\u002Fsettings\u002Fprojects\u002F    # Linux\nstart https:\u002F\u002Fsentry.io\u002Fsettings\u002Fprojects\u002F        # Windows\n```\n\n> **Note:** The DSN is public and safe to include in source code. It is not a secret — it only identifies where to send events.\n\n---\n\nLooking for workflows or feature configuration instead? See the [full Skill Tree](..\u002F..\u002FSKILL_TREE.md).\n",{"data":37,"body":39},{"name":4,"description":6,"license":27,"role":38},"router",{"type":40,"children":41},"root",[42,59,65,70,77,88,168,173,177,183,610,617,622,935,941,946,1328,1331,1337,1342,1378,1383,1454,1467,1470,1482],{"type":43,"tag":44,"props":45,"children":46},"element","blockquote",{},[47],{"type":43,"tag":48,"props":49,"children":50},"p",{},[51],{"type":43,"tag":52,"props":53,"children":55},"a",{"href":54},"..\u002F..\u002FSKILL_TREE.md",[56],{"type":57,"value":58},"text","All Skills",{"type":43,"tag":60,"props":61,"children":62},"h1",{"id":4},[63],{"type":57,"value":64},"Sentry SDK Setup",{"type":43,"tag":48,"props":66,"children":67},{},[68],{"type":57,"value":69},"Set up Sentry error monitoring, tracing, and session replay in any language or framework. This page helps you find the right SDK skill for your project.",{"type":43,"tag":71,"props":72,"children":74},"h2",{"id":73},"start-here-read-this-before-doing-anything",[75],{"type":57,"value":76},"Start Here — Read This Before Doing Anything",{"type":43,"tag":48,"props":78,"children":79},{},[80,86],{"type":43,"tag":81,"props":82,"children":83},"strong",{},[84],{"type":57,"value":85},"Do not skip this section.",{"type":57,"value":87}," Do not assume which SDK the user needs based on their project files. Do not start installing packages or creating config files until you have confirmed the user's intent.",{"type":43,"tag":89,"props":90,"children":91},"ol",{},[92,148,158],{"type":43,"tag":93,"props":94,"children":95},"li",{},[96,101,103,110,112,118,119,125,126,132,133,139,140,146],{"type":43,"tag":81,"props":97,"children":98},{},[99],{"type":57,"value":100},"Detect the platform",{"type":57,"value":102}," from project files (",{"type":43,"tag":104,"props":105,"children":107},"code",{"className":106},[],[108],{"type":57,"value":109},"package.json",{"type":57,"value":111},", ",{"type":43,"tag":104,"props":113,"children":115},{"className":114},[],[116],{"type":57,"value":117},"go.mod",{"type":57,"value":111},{"type":43,"tag":104,"props":120,"children":122},{"className":121},[],[123],{"type":57,"value":124},"requirements.txt",{"type":57,"value":111},{"type":43,"tag":104,"props":127,"children":129},{"className":128},[],[130],{"type":57,"value":131},"Gemfile",{"type":57,"value":111},{"type":43,"tag":104,"props":134,"children":136},{"className":135},[],[137],{"type":57,"value":138},"*.csproj",{"type":57,"value":111},{"type":43,"tag":104,"props":141,"children":143},{"className":142},[],[144],{"type":57,"value":145},"build.gradle",{"type":57,"value":147},", etc.).",{"type":43,"tag":93,"props":149,"children":150},{},[151,156],{"type":43,"tag":81,"props":152,"children":153},{},[154],{"type":57,"value":155},"Tell the user what you found",{"type":57,"value":157}," and which SDK you recommend.",{"type":43,"tag":93,"props":159,"children":160},{},[161,166],{"type":43,"tag":81,"props":162,"children":163},{},[164],{"type":57,"value":165},"Wait for confirmation",{"type":57,"value":167}," before reading the skill and proceeding.",{"type":43,"tag":48,"props":169,"children":170},{},[171],{"type":57,"value":172},"Each SDK skill contains its own detection logic, prerequisites, and step-by-step configuration. Trust the skill — read it carefully and follow it. Do not improvise or take shortcuts.",{"type":43,"tag":174,"props":175,"children":176},"hr",{},[],{"type":43,"tag":71,"props":178,"children":180},{"id":179},"sdk-skills",[181],{"type":57,"value":182},"SDK Skills",{"type":43,"tag":184,"props":185,"children":186},"table",{},[187,206],{"type":43,"tag":188,"props":189,"children":190},"thead",{},[191],{"type":43,"tag":192,"props":193,"children":194},"tr",{},[195,201],{"type":43,"tag":196,"props":197,"children":198},"th",{},[199],{"type":57,"value":200},"Platform",{"type":43,"tag":196,"props":202,"children":203},{},[204],{"type":57,"value":205},"Skill",{"type":43,"tag":207,"props":208,"children":209},"tbody",{},[210,232,253,274,295,316,337,358,379,400,421,442,463,484,505,526,547,568,589],{"type":43,"tag":192,"props":211,"children":212},{},[213,219],{"type":43,"tag":214,"props":215,"children":216},"td",{},[217],{"type":57,"value":218},"Android",{"type":43,"tag":214,"props":220,"children":221},{},[222],{"type":43,"tag":52,"props":223,"children":225},{"href":224},"..\u002Fsentry-android-sdk\u002FSKILL.md",[226],{"type":43,"tag":104,"props":227,"children":229},{"className":228},[],[230],{"type":57,"value":231},"sentry-android-sdk",{"type":43,"tag":192,"props":233,"children":234},{},[235,240],{"type":43,"tag":214,"props":236,"children":237},{},[238],{"type":57,"value":239},"browser JavaScript",{"type":43,"tag":214,"props":241,"children":242},{},[243],{"type":43,"tag":52,"props":244,"children":246},{"href":245},"..\u002Fsentry-browser-sdk\u002FSKILL.md",[247],{"type":43,"tag":104,"props":248,"children":250},{"className":249},[],[251],{"type":57,"value":252},"sentry-browser-sdk",{"type":43,"tag":192,"props":254,"children":255},{},[256,261],{"type":43,"tag":214,"props":257,"children":258},{},[259],{"type":57,"value":260},"Cloudflare Workers and Pages",{"type":43,"tag":214,"props":262,"children":263},{},[264],{"type":43,"tag":52,"props":265,"children":267},{"href":266},"..\u002Fsentry-cloudflare-sdk\u002FSKILL.md",[268],{"type":43,"tag":104,"props":269,"children":271},{"className":270},[],[272],{"type":57,"value":273},"sentry-cloudflare-sdk",{"type":43,"tag":192,"props":275,"children":276},{},[277,282],{"type":43,"tag":214,"props":278,"children":279},{},[280],{"type":57,"value":281},"Apple platforms (iOS, macOS, tvOS, watchOS, visionOS)",{"type":43,"tag":214,"props":283,"children":284},{},[285],{"type":43,"tag":52,"props":286,"children":288},{"href":287},"..\u002Fsentry-cocoa-sdk\u002FSKILL.md",[289],{"type":43,"tag":104,"props":290,"children":292},{"className":291},[],[293],{"type":57,"value":294},"sentry-cocoa-sdk",{"type":43,"tag":192,"props":296,"children":297},{},[298,303],{"type":43,"tag":214,"props":299,"children":300},{},[301],{"type":57,"value":302},".NET",{"type":43,"tag":214,"props":304,"children":305},{},[306],{"type":43,"tag":52,"props":307,"children":309},{"href":308},"..\u002Fsentry-dotnet-sdk\u002FSKILL.md",[310],{"type":43,"tag":104,"props":311,"children":313},{"className":312},[],[314],{"type":57,"value":315},"sentry-dotnet-sdk",{"type":43,"tag":192,"props":317,"children":318},{},[319,324],{"type":43,"tag":214,"props":320,"children":321},{},[322],{"type":57,"value":323},"Elixir",{"type":43,"tag":214,"props":325,"children":326},{},[327],{"type":43,"tag":52,"props":328,"children":330},{"href":329},"..\u002Fsentry-elixir-sdk\u002FSKILL.md",[331],{"type":43,"tag":104,"props":332,"children":334},{"className":333},[],[335],{"type":57,"value":336},"sentry-elixir-sdk",{"type":43,"tag":192,"props":338,"children":339},{},[340,345],{"type":43,"tag":214,"props":341,"children":342},{},[343],{"type":57,"value":344},"Go",{"type":43,"tag":214,"props":346,"children":347},{},[348],{"type":43,"tag":52,"props":349,"children":351},{"href":350},"..\u002Fsentry-go-sdk\u002FSKILL.md",[352],{"type":43,"tag":104,"props":353,"children":355},{"className":354},[],[356],{"type":57,"value":357},"sentry-go-sdk",{"type":43,"tag":192,"props":359,"children":360},{},[361,366],{"type":43,"tag":214,"props":362,"children":363},{},[364],{"type":57,"value":365},"NestJS",{"type":43,"tag":214,"props":367,"children":368},{},[369],{"type":43,"tag":52,"props":370,"children":372},{"href":371},"..\u002Fsentry-nestjs-sdk\u002FSKILL.md",[373],{"type":43,"tag":104,"props":374,"children":376},{"className":375},[],[377],{"type":57,"value":378},"sentry-nestjs-sdk",{"type":43,"tag":192,"props":380,"children":381},{},[382,387],{"type":43,"tag":214,"props":383,"children":384},{},[385],{"type":57,"value":386},"Next.js",{"type":43,"tag":214,"props":388,"children":389},{},[390],{"type":43,"tag":52,"props":391,"children":393},{"href":392},"..\u002Fsentry-nextjs-sdk\u002FSKILL.md",[394],{"type":43,"tag":104,"props":395,"children":397},{"className":396},[],[398],{"type":57,"value":399},"sentry-nextjs-sdk",{"type":43,"tag":192,"props":401,"children":402},{},[403,408],{"type":43,"tag":214,"props":404,"children":405},{},[406],{"type":57,"value":407},"Node.js, Bun, and Deno",{"type":43,"tag":214,"props":409,"children":410},{},[411],{"type":43,"tag":52,"props":412,"children":414},{"href":413},"..\u002Fsentry-node-sdk\u002FSKILL.md",[415],{"type":43,"tag":104,"props":416,"children":418},{"className":417},[],[419],{"type":57,"value":420},"sentry-node-sdk",{"type":43,"tag":192,"props":422,"children":423},{},[424,429],{"type":43,"tag":214,"props":425,"children":426},{},[427],{"type":57,"value":428},"PHP",{"type":43,"tag":214,"props":430,"children":431},{},[432],{"type":43,"tag":52,"props":433,"children":435},{"href":434},"..\u002Fsentry-php-sdk\u002FSKILL.md",[436],{"type":43,"tag":104,"props":437,"children":439},{"className":438},[],[440],{"type":57,"value":441},"sentry-php-sdk",{"type":43,"tag":192,"props":443,"children":444},{},[445,450],{"type":43,"tag":214,"props":446,"children":447},{},[448],{"type":57,"value":449},"Python",{"type":43,"tag":214,"props":451,"children":452},{},[453],{"type":43,"tag":52,"props":454,"children":456},{"href":455},"..\u002Fsentry-python-sdk\u002FSKILL.md",[457],{"type":43,"tag":104,"props":458,"children":460},{"className":459},[],[461],{"type":57,"value":462},"sentry-python-sdk",{"type":43,"tag":192,"props":464,"children":465},{},[466,471],{"type":43,"tag":214,"props":467,"children":468},{},[469],{"type":57,"value":470},"Flutter and Dart",{"type":43,"tag":214,"props":472,"children":473},{},[474],{"type":43,"tag":52,"props":475,"children":477},{"href":476},"..\u002Fsentry-flutter-sdk\u002FSKILL.md",[478],{"type":43,"tag":104,"props":479,"children":481},{"className":480},[],[482],{"type":57,"value":483},"sentry-flutter-sdk",{"type":43,"tag":192,"props":485,"children":486},{},[487,492],{"type":43,"tag":214,"props":488,"children":489},{},[490],{"type":57,"value":491},"React Native and Expo",{"type":43,"tag":214,"props":493,"children":494},{},[495],{"type":43,"tag":52,"props":496,"children":498},{"href":497},"..\u002Fsentry-react-native-sdk\u002FSKILL.md",[499],{"type":43,"tag":104,"props":500,"children":502},{"className":501},[],[503],{"type":57,"value":504},"sentry-react-native-sdk",{"type":43,"tag":192,"props":506,"children":507},{},[508,513],{"type":43,"tag":214,"props":509,"children":510},{},[511],{"type":57,"value":512},"React",{"type":43,"tag":214,"props":514,"children":515},{},[516],{"type":43,"tag":52,"props":517,"children":519},{"href":518},"..\u002Fsentry-react-sdk\u002FSKILL.md",[520],{"type":43,"tag":104,"props":521,"children":523},{"className":522},[],[524],{"type":57,"value":525},"sentry-react-sdk",{"type":43,"tag":192,"props":527,"children":528},{},[529,534],{"type":43,"tag":214,"props":530,"children":531},{},[532],{"type":57,"value":533},"React Router Framework",{"type":43,"tag":214,"props":535,"children":536},{},[537],{"type":43,"tag":52,"props":538,"children":540},{"href":539},"..\u002Fsentry-react-router-framework-sdk\u002FSKILL.md",[541],{"type":43,"tag":104,"props":542,"children":544},{"className":543},[],[545],{"type":57,"value":546},"sentry-react-router-framework-sdk",{"type":43,"tag":192,"props":548,"children":549},{},[550,555],{"type":43,"tag":214,"props":551,"children":552},{},[553],{"type":57,"value":554},"TanStack Start React",{"type":43,"tag":214,"props":556,"children":557},{},[558],{"type":43,"tag":52,"props":559,"children":561},{"href":560},"..\u002Fsentry-tanstack-start-sdk\u002FSKILL.md",[562],{"type":43,"tag":104,"props":563,"children":565},{"className":564},[],[566],{"type":57,"value":567},"sentry-tanstack-start-sdk",{"type":43,"tag":192,"props":569,"children":570},{},[571,576],{"type":43,"tag":214,"props":572,"children":573},{},[574],{"type":57,"value":575},"Ruby",{"type":43,"tag":214,"props":577,"children":578},{},[579],{"type":43,"tag":52,"props":580,"children":582},{"href":581},"..\u002Fsentry-ruby-sdk\u002FSKILL.md",[583],{"type":43,"tag":104,"props":584,"children":586},{"className":585},[],[587],{"type":57,"value":588},"sentry-ruby-sdk",{"type":43,"tag":192,"props":590,"children":591},{},[592,597],{"type":43,"tag":214,"props":593,"children":594},{},[595],{"type":57,"value":596},"Svelte and SvelteKit",{"type":43,"tag":214,"props":598,"children":599},{},[600],{"type":43,"tag":52,"props":601,"children":603},{"href":602},"..\u002Fsentry-svelte-sdk\u002FSKILL.md",[604],{"type":43,"tag":104,"props":605,"children":607},{"className":606},[],[608],{"type":57,"value":609},"sentry-svelte-sdk",{"type":43,"tag":611,"props":612,"children":614},"h3",{"id":613},"platform-detection-priority",[615],{"type":57,"value":616},"Platform Detection Priority",{"type":43,"tag":48,"props":618,"children":619},{},[620],{"type":57,"value":621},"When multiple SDKs could match, prefer the more specific one:",{"type":43,"tag":623,"props":624,"children":625},"ul",{},[626,647,684,710,736,769,795,832,852,866,887,902,917],{"type":43,"tag":93,"props":627,"children":628},{},[629,633,635,640,642],{"type":43,"tag":81,"props":630,"children":631},{},[632],{"type":57,"value":218},{"type":57,"value":634}," (",{"type":43,"tag":104,"props":636,"children":638},{"className":637},[],[639],{"type":57,"value":145},{"type":57,"value":641}," with android plugin) → ",{"type":43,"tag":104,"props":643,"children":645},{"className":644},[],[646],{"type":57,"value":231},{"type":43,"tag":93,"props":648,"children":649},{},[650,655,656,662,664,670,672,677,679],{"type":43,"tag":81,"props":651,"children":652},{},[653],{"type":57,"value":654},"Cloudflare",{"type":57,"value":634},{"type":43,"tag":104,"props":657,"children":659},{"className":658},[],[660],{"type":57,"value":661},"wrangler.toml",{"type":57,"value":663}," or ",{"type":43,"tag":104,"props":665,"children":667},{"className":666},[],[668],{"type":57,"value":669},"wrangler.jsonc",{"type":57,"value":671},") → ",{"type":43,"tag":104,"props":673,"children":675},{"className":674},[],[676],{"type":57,"value":273},{"type":57,"value":678}," over ",{"type":43,"tag":104,"props":680,"children":682},{"className":681},[],[683],{"type":57,"value":420},{"type":43,"tag":93,"props":685,"children":686},{},[687,691,692,698,699,704,705],{"type":43,"tag":81,"props":688,"children":689},{},[690],{"type":57,"value":365},{"type":57,"value":634},{"type":43,"tag":104,"props":693,"children":695},{"className":694},[],[696],{"type":57,"value":697},"@nestjs\u002Fcore",{"type":57,"value":671},{"type":43,"tag":104,"props":700,"children":702},{"className":701},[],[703],{"type":57,"value":378},{"type":57,"value":678},{"type":43,"tag":104,"props":706,"children":708},{"className":707},[],[709],{"type":57,"value":420},{"type":43,"tag":93,"props":711,"children":712},{},[713,717,719,724,725,730,731],{"type":43,"tag":81,"props":714,"children":715},{},[716],{"type":57,"value":386},{"type":57,"value":718}," → ",{"type":43,"tag":104,"props":720,"children":722},{"className":721},[],[723],{"type":57,"value":399},{"type":57,"value":678},{"type":43,"tag":104,"props":726,"children":728},{"className":727},[],[729],{"type":57,"value":525},{"type":57,"value":663},{"type":43,"tag":104,"props":732,"children":734},{"className":733},[],[735],{"type":57,"value":420},{"type":43,"tag":93,"props":737,"children":738},{},[739,743,744,750,751,757,758,763,764],{"type":43,"tag":81,"props":740,"children":741},{},[742],{"type":57,"value":533},{"type":57,"value":634},{"type":43,"tag":104,"props":745,"children":747},{"className":746},[],[748],{"type":57,"value":749},"@sentry\u002Freact-router",{"type":57,"value":663},{"type":43,"tag":104,"props":752,"children":754},{"className":753},[],[755],{"type":57,"value":756},"@react-router\u002F*",{"type":57,"value":671},{"type":43,"tag":104,"props":759,"children":761},{"className":760},[],[762],{"type":57,"value":546},{"type":57,"value":678},{"type":43,"tag":104,"props":765,"children":767},{"className":766},[],[768],{"type":57,"value":525},{"type":43,"tag":93,"props":770,"children":771},{},[772,776,777,783,784,789,790],{"type":43,"tag":81,"props":773,"children":774},{},[775],{"type":57,"value":554},{"type":57,"value":634},{"type":43,"tag":104,"props":778,"children":780},{"className":779},[],[781],{"type":57,"value":782},"@tanstack\u002Freact-start",{"type":57,"value":671},{"type":43,"tag":104,"props":785,"children":787},{"className":786},[],[788],{"type":57,"value":567},{"type":57,"value":678},{"type":43,"tag":104,"props":791,"children":793},{"className":792},[],[794],{"type":57,"value":525},{"type":43,"tag":93,"props":796,"children":797},{},[798,803,804,810,812,818,820,826,827],{"type":43,"tag":81,"props":799,"children":800},{},[801],{"type":57,"value":802},"Flutter",{"type":57,"value":634},{"type":43,"tag":104,"props":805,"children":807},{"className":806},[],[808],{"type":57,"value":809},"pubspec.yaml",{"type":57,"value":811}," with ",{"type":43,"tag":104,"props":813,"children":815},{"className":814},[],[816],{"type":57,"value":817},"flutter:",{"type":57,"value":819}," dependency or ",{"type":43,"tag":104,"props":821,"children":823},{"className":822},[],[824],{"type":57,"value":825},"sentry_flutter",{"type":57,"value":671},{"type":43,"tag":104,"props":828,"children":830},{"className":829},[],[831],{"type":57,"value":483},{"type":43,"tag":93,"props":833,"children":834},{},[835,840,841,846,847],{"type":43,"tag":81,"props":836,"children":837},{},[838],{"type":57,"value":839},"React Native",{"type":57,"value":718},{"type":43,"tag":104,"props":842,"children":844},{"className":843},[],[845],{"type":57,"value":504},{"type":57,"value":678},{"type":43,"tag":104,"props":848,"children":850},{"className":849},[],[851],{"type":57,"value":525},{"type":43,"tag":93,"props":853,"children":854},{},[855,859,861],{"type":43,"tag":81,"props":856,"children":857},{},[858],{"type":57,"value":428},{"type":57,"value":860}," with Laravel or Symfony → ",{"type":43,"tag":104,"props":862,"children":864},{"className":863},[],[865],{"type":57,"value":441},{"type":43,"tag":93,"props":867,"children":868},{},[869,873,874,880,882],{"type":43,"tag":81,"props":870,"children":871},{},[872],{"type":57,"value":323},{"type":57,"value":634},{"type":43,"tag":104,"props":875,"children":877},{"className":876},[],[878],{"type":57,"value":879},"mix.exs",{"type":57,"value":881}," detected) → ",{"type":43,"tag":104,"props":883,"children":885},{"className":884},[],[886],{"type":57,"value":336},{"type":43,"tag":93,"props":888,"children":889},{},[890,895,897],{"type":43,"tag":81,"props":891,"children":892},{},[893],{"type":57,"value":894},"Node.js \u002F Bun \u002F Deno",{"type":57,"value":896}," without a specific framework → ",{"type":43,"tag":104,"props":898,"children":900},{"className":899},[],[901],{"type":57,"value":420},{"type":43,"tag":93,"props":903,"children":904},{},[905,910,912],{"type":43,"tag":81,"props":906,"children":907},{},[908],{"type":57,"value":909},"Browser JS",{"type":57,"value":911}," (vanilla, jQuery, static sites) → ",{"type":43,"tag":104,"props":913,"children":915},{"className":914},[],[916],{"type":57,"value":252},{"type":43,"tag":93,"props":918,"children":919},{},[920,925,927],{"type":43,"tag":81,"props":921,"children":922},{},[923],{"type":57,"value":924},"No match",{"type":57,"value":926}," → direct user to ",{"type":43,"tag":52,"props":928,"children":932},{"href":929,"rel":930},"https:\u002F\u002Fdocs.sentry.io\u002Fplatforms\u002F",[931],"nofollow",[933],{"type":57,"value":934},"Sentry Docs",{"type":43,"tag":71,"props":936,"children":938},{"id":937},"quick-lookup",[939],{"type":57,"value":940},"Quick Lookup",{"type":43,"tag":48,"props":942,"children":943},{},[944],{"type":57,"value":945},"Match your project to a skill by keywords.",{"type":43,"tag":184,"props":947,"children":948},{},[949,964],{"type":43,"tag":188,"props":950,"children":951},{},[952],{"type":43,"tag":192,"props":953,"children":954},{},[955,960],{"type":43,"tag":196,"props":956,"children":957},{},[958],{"type":57,"value":959},"Keywords",{"type":43,"tag":196,"props":961,"children":962},{},[963],{"type":57,"value":205},{"type":43,"tag":207,"props":965,"children":966},{},[967,986,1005,1024,1043,1062,1081,1100,1119,1138,1157,1176,1195,1214,1233,1252,1271,1290,1309],{"type":43,"tag":192,"props":968,"children":969},{},[970,975],{"type":43,"tag":214,"props":971,"children":972},{},[973],{"type":57,"value":974},"android, kotlin, java, jetpack compose",{"type":43,"tag":214,"props":976,"children":977},{},[978],{"type":43,"tag":52,"props":979,"children":980},{"href":224},[981],{"type":43,"tag":104,"props":982,"children":984},{"className":983},[],[985],{"type":57,"value":231},{"type":43,"tag":192,"props":987,"children":988},{},[989,994],{"type":43,"tag":214,"props":990,"children":991},{},[992],{"type":57,"value":993},"browser, vanilla js, javascript, jquery, cdn, wordpress, static site",{"type":43,"tag":214,"props":995,"children":996},{},[997],{"type":43,"tag":52,"props":998,"children":999},{"href":245},[1000],{"type":43,"tag":104,"props":1001,"children":1003},{"className":1002},[],[1004],{"type":57,"value":252},{"type":43,"tag":192,"props":1006,"children":1007},{},[1008,1013],{"type":43,"tag":214,"props":1009,"children":1010},{},[1011],{"type":57,"value":1012},"cloudflare, cloudflare workers, cloudflare pages, wrangler, durable objects, d1",{"type":43,"tag":214,"props":1014,"children":1015},{},[1016],{"type":43,"tag":52,"props":1017,"children":1018},{"href":266},[1019],{"type":43,"tag":104,"props":1020,"children":1022},{"className":1021},[],[1023],{"type":57,"value":273},{"type":43,"tag":192,"props":1025,"children":1026},{},[1027,1032],{"type":43,"tag":214,"props":1028,"children":1029},{},[1030],{"type":57,"value":1031},"ios, macos, swift, cocoa, tvos, watchos, visionos, swiftui, uikit",{"type":43,"tag":214,"props":1033,"children":1034},{},[1035],{"type":43,"tag":52,"props":1036,"children":1037},{"href":287},[1038],{"type":43,"tag":104,"props":1039,"children":1041},{"className":1040},[],[1042],{"type":57,"value":294},{"type":43,"tag":192,"props":1044,"children":1045},{},[1046,1051],{"type":43,"tag":214,"props":1047,"children":1048},{},[1049],{"type":57,"value":1050},".net, csharp, c#, asp.net, maui, wpf, winforms, blazor, azure functions",{"type":43,"tag":214,"props":1052,"children":1053},{},[1054],{"type":43,"tag":52,"props":1055,"children":1056},{"href":308},[1057],{"type":43,"tag":104,"props":1058,"children":1060},{"className":1059},[],[1061],{"type":57,"value":315},{"type":43,"tag":192,"props":1063,"children":1064},{},[1065,1070],{"type":43,"tag":214,"props":1066,"children":1067},{},[1068],{"type":57,"value":1069},"go, golang, gin, echo, fiber",{"type":43,"tag":214,"props":1071,"children":1072},{},[1073],{"type":43,"tag":52,"props":1074,"children":1075},{"href":350},[1076],{"type":43,"tag":104,"props":1077,"children":1079},{"className":1078},[],[1080],{"type":57,"value":357},{"type":43,"tag":192,"props":1082,"children":1083},{},[1084,1089],{"type":43,"tag":214,"props":1085,"children":1086},{},[1087],{"type":57,"value":1088},"elixir, phoenix, plug, oban",{"type":43,"tag":214,"props":1090,"children":1091},{},[1092],{"type":43,"tag":52,"props":1093,"children":1094},{"href":329},[1095],{"type":43,"tag":104,"props":1096,"children":1098},{"className":1097},[],[1099],{"type":57,"value":336},{"type":43,"tag":192,"props":1101,"children":1102},{},[1103,1108],{"type":43,"tag":214,"props":1104,"children":1105},{},[1106],{"type":57,"value":1107},"nestjs, nest",{"type":43,"tag":214,"props":1109,"children":1110},{},[1111],{"type":43,"tag":52,"props":1112,"children":1113},{"href":371},[1114],{"type":43,"tag":104,"props":1115,"children":1117},{"className":1116},[],[1118],{"type":57,"value":378},{"type":43,"tag":192,"props":1120,"children":1121},{},[1122,1127],{"type":43,"tag":214,"props":1123,"children":1124},{},[1125],{"type":57,"value":1126},"nextjs, next.js, next",{"type":43,"tag":214,"props":1128,"children":1129},{},[1130],{"type":43,"tag":52,"props":1131,"children":1132},{"href":392},[1133],{"type":43,"tag":104,"props":1134,"children":1136},{"className":1135},[],[1137],{"type":57,"value":399},{"type":43,"tag":192,"props":1139,"children":1140},{},[1141,1146],{"type":43,"tag":214,"props":1142,"children":1143},{},[1144],{"type":57,"value":1145},"node, nodejs, node.js, bun, deno, express, fastify, koa, hapi",{"type":43,"tag":214,"props":1147,"children":1148},{},[1149],{"type":43,"tag":52,"props":1150,"children":1151},{"href":413},[1152],{"type":43,"tag":104,"props":1153,"children":1155},{"className":1154},[],[1156],{"type":57,"value":420},{"type":43,"tag":192,"props":1158,"children":1159},{},[1160,1165],{"type":43,"tag":214,"props":1161,"children":1162},{},[1163],{"type":57,"value":1164},"php, laravel, symfony",{"type":43,"tag":214,"props":1166,"children":1167},{},[1168],{"type":43,"tag":52,"props":1169,"children":1170},{"href":434},[1171],{"type":43,"tag":104,"props":1172,"children":1174},{"className":1173},[],[1175],{"type":57,"value":441},{"type":43,"tag":192,"props":1177,"children":1178},{},[1179,1184],{"type":43,"tag":214,"props":1180,"children":1181},{},[1182],{"type":57,"value":1183},"python, django, flask, fastapi, celery, starlette",{"type":43,"tag":214,"props":1185,"children":1186},{},[1187],{"type":43,"tag":52,"props":1188,"children":1189},{"href":455},[1190],{"type":43,"tag":104,"props":1191,"children":1193},{"className":1192},[],[1194],{"type":57,"value":462},{"type":43,"tag":192,"props":1196,"children":1197},{},[1198,1203],{"type":43,"tag":214,"props":1199,"children":1200},{},[1201],{"type":57,"value":1202},"flutter, dart, pubspec",{"type":43,"tag":214,"props":1204,"children":1205},{},[1206],{"type":43,"tag":52,"props":1207,"children":1208},{"href":476},[1209],{"type":43,"tag":104,"props":1210,"children":1212},{"className":1211},[],[1213],{"type":57,"value":483},{"type":43,"tag":192,"props":1215,"children":1216},{},[1217,1222],{"type":43,"tag":214,"props":1218,"children":1219},{},[1220],{"type":57,"value":1221},"react native, expo",{"type":43,"tag":214,"props":1223,"children":1224},{},[1225],{"type":43,"tag":52,"props":1226,"children":1227},{"href":497},[1228],{"type":43,"tag":104,"props":1229,"children":1231},{"className":1230},[],[1232],{"type":57,"value":504},{"type":43,"tag":192,"props":1234,"children":1235},{},[1236,1241],{"type":43,"tag":214,"props":1237,"children":1238},{},[1239],{"type":57,"value":1240},"react, react router, tanstack, redux, vite",{"type":43,"tag":214,"props":1242,"children":1243},{},[1244],{"type":43,"tag":52,"props":1245,"children":1246},{"href":518},[1247],{"type":43,"tag":104,"props":1248,"children":1250},{"className":1249},[],[1251],{"type":57,"value":525},{"type":43,"tag":192,"props":1253,"children":1254},{},[1255,1260],{"type":43,"tag":214,"props":1256,"children":1257},{},[1258],{"type":57,"value":1259},"react-router framework, @sentry\u002Freact-router, @react-router\u002Fdev, react-router reveal",{"type":43,"tag":214,"props":1261,"children":1262},{},[1263],{"type":43,"tag":52,"props":1264,"children":1265},{"href":539},[1266],{"type":43,"tag":104,"props":1267,"children":1269},{"className":1268},[],[1270],{"type":57,"value":546},{"type":43,"tag":192,"props":1272,"children":1273},{},[1274,1279],{"type":43,"tag":214,"props":1275,"children":1276},{},[1277],{"type":57,"value":1278},"tanstack start, tanstack react start, @tanstack\u002Freact-start, tanstackstart-react",{"type":43,"tag":214,"props":1280,"children":1281},{},[1282],{"type":43,"tag":52,"props":1283,"children":1284},{"href":560},[1285],{"type":43,"tag":104,"props":1286,"children":1288},{"className":1287},[],[1289],{"type":57,"value":567},{"type":43,"tag":192,"props":1291,"children":1292},{},[1293,1298],{"type":43,"tag":214,"props":1294,"children":1295},{},[1296],{"type":57,"value":1297},"ruby, rails, sinatra, sidekiq, rack",{"type":43,"tag":214,"props":1299,"children":1300},{},[1301],{"type":43,"tag":52,"props":1302,"children":1303},{"href":581},[1304],{"type":43,"tag":104,"props":1305,"children":1307},{"className":1306},[],[1308],{"type":57,"value":588},{"type":43,"tag":192,"props":1310,"children":1311},{},[1312,1317],{"type":43,"tag":214,"props":1313,"children":1314},{},[1315],{"type":57,"value":1316},"svelte, sveltekit",{"type":43,"tag":214,"props":1318,"children":1319},{},[1320],{"type":43,"tag":52,"props":1321,"children":1322},{"href":602},[1323],{"type":43,"tag":104,"props":1324,"children":1326},{"className":1325},[],[1327],{"type":57,"value":609},{"type":43,"tag":174,"props":1329,"children":1330},{},[],{"type":43,"tag":71,"props":1332,"children":1334},{"id":1333},"finding-the-dsn",[1335],{"type":57,"value":1336},"Finding the DSN",{"type":43,"tag":48,"props":1338,"children":1339},{},[1340],{"type":57,"value":1341},"If the user doesn't have their DSN, guide them to find it:",{"type":43,"tag":89,"props":1343,"children":1344},{},[1345,1356,1361,1373],{"type":43,"tag":93,"props":1346,"children":1347},{},[1348,1350],{"type":57,"value":1349},"Open the Sentry project settings page: ",{"type":43,"tag":104,"props":1351,"children":1353},{"className":1352},[],[1354],{"type":57,"value":1355},"https:\u002F\u002Fsentry.io\u002Fsettings\u002Fprojects\u002F",{"type":43,"tag":93,"props":1357,"children":1358},{},[1359],{"type":57,"value":1360},"Select the project",{"type":43,"tag":93,"props":1362,"children":1363},{},[1364,1366,1371],{"type":57,"value":1365},"Click ",{"type":43,"tag":81,"props":1367,"children":1368},{},[1369],{"type":57,"value":1370},"\"Client Keys (DSN)\"",{"type":57,"value":1372}," in the left sidebar",{"type":43,"tag":93,"props":1374,"children":1375},{},[1376],{"type":57,"value":1377},"Copy the DSN",{"type":43,"tag":48,"props":1379,"children":1380},{},[1381],{"type":57,"value":1382},"You can help the user open the page directly:",{"type":43,"tag":1384,"props":1385,"children":1390},"pre",{"className":1386,"code":1387,"language":1388,"meta":1389,"style":1389},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","open https:\u002F\u002Fsentry.io\u002Fsettings\u002Fprojects\u002F        # macOS\nxdg-open https:\u002F\u002Fsentry.io\u002Fsettings\u002Fprojects\u002F    # Linux\nstart https:\u002F\u002Fsentry.io\u002Fsettings\u002Fprojects\u002F        # Windows\n","bash","",[1391],{"type":43,"tag":104,"props":1392,"children":1393},{"__ignoreMap":1389},[1394,1418,1436],{"type":43,"tag":1395,"props":1396,"children":1399},"span",{"class":1397,"line":1398},"line",1,[1400,1406,1412],{"type":43,"tag":1395,"props":1401,"children":1403},{"style":1402},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1404],{"type":57,"value":1405},"open",{"type":43,"tag":1395,"props":1407,"children":1409},{"style":1408},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1410],{"type":57,"value":1411}," https:\u002F\u002Fsentry.io\u002Fsettings\u002Fprojects\u002F",{"type":43,"tag":1395,"props":1413,"children":1415},{"style":1414},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1416],{"type":57,"value":1417},"        # macOS\n",{"type":43,"tag":1395,"props":1419,"children":1421},{"class":1397,"line":1420},2,[1422,1427,1431],{"type":43,"tag":1395,"props":1423,"children":1424},{"style":1402},[1425],{"type":57,"value":1426},"xdg-open",{"type":43,"tag":1395,"props":1428,"children":1429},{"style":1408},[1430],{"type":57,"value":1411},{"type":43,"tag":1395,"props":1432,"children":1433},{"style":1414},[1434],{"type":57,"value":1435},"    # Linux\n",{"type":43,"tag":1395,"props":1437,"children":1439},{"class":1397,"line":1438},3,[1440,1445,1449],{"type":43,"tag":1395,"props":1441,"children":1442},{"style":1402},[1443],{"type":57,"value":1444},"start",{"type":43,"tag":1395,"props":1446,"children":1447},{"style":1408},[1448],{"type":57,"value":1411},{"type":43,"tag":1395,"props":1450,"children":1451},{"style":1414},[1452],{"type":57,"value":1453},"        # Windows\n",{"type":43,"tag":44,"props":1455,"children":1456},{},[1457],{"type":43,"tag":48,"props":1458,"children":1459},{},[1460,1465],{"type":43,"tag":81,"props":1461,"children":1462},{},[1463],{"type":57,"value":1464},"Note:",{"type":57,"value":1466}," The DSN is public and safe to include in source code. It is not a secret — it only identifies where to send events.",{"type":43,"tag":174,"props":1468,"children":1469},{},[],{"type":43,"tag":48,"props":1471,"children":1472},{},[1473,1475,1480],{"type":57,"value":1474},"Looking for workflows or feature configuration instead? See the ",{"type":43,"tag":52,"props":1476,"children":1477},{"href":54},[1478],{"type":57,"value":1479},"full Skill Tree",{"type":57,"value":1481},".",{"type":43,"tag":1483,"props":1484,"children":1485},"style",{},[1486],{"type":57,"value":1487},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1489,"total":1666},[1490,1515,1529,1544,1558,1575,1591,1605,1615,1626,1636,1653],{"slug":1491,"name":1491,"fn":1492,"description":1493,"org":1494,"tags":1495,"stars":1512,"repoUrl":1513,"updatedAt":1514},"xcodebuildmcp","build and test Apple apps with XcodeBuildMCP","Official skill for XcodeBuildMCP. Use when doing iOS\u002FmacOS\u002FwatchOS\u002FtvOS\u002FvisionOS work (build, test, run, debug, log, UI automation).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1496,1499,1502,1505,1506,1509],{"name":1497,"slug":1498,"type":16},"Debugging","debugging",{"name":1500,"slug":1501,"type":16},"iOS","ios",{"name":1503,"slug":1504,"type":16},"macOS","macos",{"name":9,"slug":8,"type":16},{"name":1507,"slug":1508,"type":16},"Testing","testing",{"name":1510,"slug":1511,"type":16},"Xcode","xcode",6176,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002FXcodeBuildMCP","2026-04-06T18:13:34.8719",{"slug":1516,"name":1516,"fn":1517,"description":1518,"org":1519,"tags":1520,"stars":1512,"repoUrl":1513,"updatedAt":1528},"xcodebuildmcp-cli","build and test Apple apps via CLI","Official skill for the XcodeBuildMCP CLI. Use when doing iOS\u002FmacOS\u002FwatchOS\u002FtvOS\u002FvisionOS work (build, test, run, debug, log, UI automation).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1521,1524,1525,1526,1527],{"name":1522,"slug":1523,"type":16},"CLI","cli",{"name":1500,"slug":1501,"type":16},{"name":1503,"slug":1504,"type":16},{"name":1507,"slug":1508,"type":16},{"name":1510,"slug":1511,"type":16},"2026-04-06T18:13:36.13414",{"slug":1530,"name":1530,"fn":1531,"description":1532,"org":1533,"tags":1534,"stars":1541,"repoUrl":1542,"updatedAt":1543},"agents-md","maintain project instruction files","Creates and maintains concise AGENTS.md and CLAUDE.md project instruction files. Use when asked to create AGENTS.md, update AGENTS.md, maintain agent docs, set up CLAUDE.md, document repository agent conventions, or keep coding-agent instructions minimal and reference-backed.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1535,1538],{"name":1536,"slug":1537,"type":16},"Documentation","documentation",{"name":1539,"slug":1540,"type":16},"Engineering","engineering",861,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskills","2026-05-15T06:16:29.695991",{"slug":1545,"name":1545,"fn":1546,"description":1547,"org":1548,"tags":1549,"stars":1541,"repoUrl":1542,"updatedAt":1557},"blog-writing-guide","write and review engineering blog posts","Write, review, and improve blog posts for the Sentry engineering blog following Sentry's specific writing standards, voice, and quality bar. Use this skill whenever someone asks to write a blog post, draft a technical article, review blog content, improve a draft, write a product announcement, create an engineering deep-dive, or produce any written content destined for the Sentry blog or developer audience. Also trigger when the user mentions \"blog post,\" \"blog draft,\" \"write-up,\" \"announcement post,\" \"engineering post,\" \"deep dive,\" \"postmortem,\" or asks for help with technical writing for Sentry. Even if the user just says \"help me write about [feature\u002Ftopic]\" — if it sounds like it could become a Sentry blog post, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1550,1553,1554],{"name":1551,"slug":1552,"type":16},"Communications","communications",{"name":9,"slug":8,"type":16},{"name":1555,"slug":1556,"type":16},"Technical Writing","technical-writing","2026-05-15T06:16:33.38217",{"slug":1559,"name":1559,"fn":1560,"description":1561,"org":1562,"tags":1563,"stars":1541,"repoUrl":1542,"updatedAt":1574},"brand-guidelines","write copy following Sentry brand guidelines","Write copy following Sentry brand guidelines. Use when writing UI text, error messages, empty states, onboarding flows, 404 pages, documentation, marketing copy, or any user-facing content. Covers both Plain Speech (default) and Sentry Voice tones.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1564,1567,1570,1571],{"name":1565,"slug":1566,"type":16},"Branding","branding",{"name":1568,"slug":1569,"type":16},"Content Creation","content-creation",{"name":9,"slug":8,"type":16},{"name":1572,"slug":1573,"type":16},"UX Copy","ux-copy","2026-05-15T06:16:22.395707",{"slug":1576,"name":1576,"fn":1577,"description":1578,"org":1579,"tags":1580,"stars":1541,"repoUrl":1542,"updatedAt":1590},"claude-settings-audit","generate Claude Code settings permissions","Analyze a repository to generate recommended Claude Code settings.json permissions. Use when setting up a new project, auditing existing settings, or determining which read-only bash commands to allow. Detects tech stack, build tools, and monorepo structure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1581,1584,1587],{"name":1582,"slug":1583,"type":16},"Claude Code","claude-code",{"name":1585,"slug":1586,"type":16},"Configuration","configuration",{"name":1588,"slug":1589,"type":16},"Security","security","2026-05-15T06:16:44.335977",{"slug":1592,"name":1592,"fn":1593,"description":1594,"org":1595,"tags":1596,"stars":1541,"repoUrl":1542,"updatedAt":1604},"code-review","perform code reviews for Sentry projects","Perform code reviews following Sentry engineering practices. Use when reviewing pull requests, examining code changes, or providing feedback on code quality. Covers security, performance, testing, and design review.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1597,1599,1600,1603],{"name":1598,"slug":1592,"type":16},"Code Review",{"name":1539,"slug":1540,"type":16},{"name":1601,"slug":1602,"type":16},"Performance","performance",{"name":1588,"slug":1589,"type":16},"2026-05-15T06:16:35.824864",{"slug":1606,"name":1606,"fn":1607,"description":1608,"org":1609,"tags":1610,"stars":1541,"repoUrl":1542,"updatedAt":1614},"code-simplifier","simplify and refine source code","Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Use when asked to \"simplify code\", \"clean up code\", \"refactor for clarity\", \"improve readability\", or review recently modified code for elegance. Focuses on project-specific best practices.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1611],{"name":1612,"slug":1613,"type":16},"Code Analysis","code-analysis","2026-05-15T06:16:32.127981",{"slug":1616,"name":1616,"fn":1617,"description":1618,"org":1619,"tags":1620,"stars":1541,"repoUrl":1542,"updatedAt":1625},"commit","create commits with Sentry conventions","Use for every request to commit changes or draft a commit message. Creates Sentry-style conventional commits with issue references.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1621,1624],{"name":1622,"slug":1623,"type":16},"Git","git",{"name":9,"slug":8,"type":16},"2026-07-18T05:15:10.723937",{"slug":1627,"name":1627,"fn":1628,"description":1629,"org":1630,"tags":1631,"stars":1541,"repoUrl":1542,"updatedAt":1635},"create-branch","create git branches for Sentry workflows","Create a git branch following Sentry naming conventions. Use when asked to \"create a branch\", \"new branch\", \"start a branch\", \"make a branch\", \"switch to a new branch\", or when starting new work on the default branch.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1632,1633,1634],{"name":1539,"slug":1540,"type":16},{"name":1622,"slug":1623,"type":16},{"name":9,"slug":8,"type":16},"2026-05-15T06:16:39.458431",{"slug":1637,"name":1637,"fn":1638,"description":1639,"org":1640,"tags":1641,"stars":1541,"repoUrl":1542,"updatedAt":1652},"django-access-review","review Django access control and IDOR","Django access control and IDOR security review. Use when reviewing Django views, DRF viewsets, ORM queries, or any Python\u002FDjango code handling user authorization. Trigger keywords: \"IDOR\", \"access control\", \"authorization\", \"Django permissions\", \"object permissions\", \"tenant isolation\", \"broken access\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1642,1645,1646,1649,1651],{"name":1643,"slug":1644,"type":16},"Access Control","access-control",{"name":1612,"slug":1613,"type":16},{"name":1647,"slug":1648,"type":16},"Django","django",{"name":449,"slug":1650,"type":16},"python",{"name":1588,"slug":1589,"type":16},"2026-05-15T06:16:43.098698",{"slug":1654,"name":1654,"fn":1655,"description":1656,"org":1657,"tags":1658,"stars":1541,"repoUrl":1542,"updatedAt":1665},"django-perf-review","review and optimize Django performance","Django performance code review. Use when asked to \"review Django performance\", \"find N+1 queries\", \"optimize Django\", \"check queryset performance\", \"database performance\", \"Django ORM issues\", or audit Django code for performance problems.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1659,1660,1663,1664],{"name":1598,"slug":1592,"type":16},{"name":1661,"slug":1662,"type":16},"Database","database",{"name":1647,"slug":1648,"type":16},{"name":1601,"slug":1602,"type":16},"2026-05-15T06:16:24.832813",88,{"items":1668,"total":1756},[1669,1681,1693,1707,1718,1730,1743],{"slug":231,"name":231,"fn":1670,"description":1671,"org":1672,"tags":1673,"stars":24,"repoUrl":25,"updatedAt":1680},"setup Sentry SDK for Android","Full Sentry SDK setup for Android. Use when asked to \"add Sentry to Android\", \"install sentry-android\", \"setup Sentry in Android\", or configure error monitoring, tracing, profiling, session replay, or logging for Android applications. Supports Kotlin and Java codebases.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1674,1676,1677,1678,1679],{"name":218,"slug":1675,"type":16},"android",{"name":1497,"slug":1498,"type":16},{"name":14,"slug":15,"type":16},{"name":21,"slug":22,"type":16},{"name":9,"slug":8,"type":16},"2026-07-12T06:08:32.396344",{"slug":252,"name":252,"fn":1682,"description":1683,"org":1684,"tags":1685,"stars":24,"repoUrl":25,"updatedAt":1692},"setup Sentry error monitoring for browser applications","Full Sentry SDK setup for browser JavaScript. Use when asked to \"add Sentry to a website\", \"install @sentry\u002Fbrowser\", or configure error monitoring, tracing, session replay, or logging for vanilla JavaScript, jQuery, static sites, or WordPress.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1686,1687,1690,1691],{"name":1497,"slug":1498,"type":16},{"name":1688,"slug":1689,"type":16},"JavaScript","javascript",{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},"2026-07-18T05:47:44.437436",{"slug":273,"name":273,"fn":1694,"description":1695,"org":1696,"tags":1697,"stars":24,"repoUrl":25,"updatedAt":1706},"setup Sentry monitoring for Cloudflare","Full Sentry SDK setup for Cloudflare Workers and Pages. Use when asked to \"add Sentry to Cloudflare Workers\", \"install @sentry\u002Fcloudflare\", or configure error monitoring, tracing, logging, crons, or AI monitoring for Cloudflare Workers, Pages, Durable Objects, Queues, Workflows, or Hono on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1698,1700,1703,1704,1705],{"name":654,"slug":1699,"type":16},"cloudflare",{"name":1701,"slug":1702,"type":16},"Edge Functions","edge-functions",{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},"2026-07-11T05:53:25.361175",{"slug":294,"name":294,"fn":1708,"description":1709,"org":1710,"tags":1711,"stars":24,"repoUrl":25,"updatedAt":1717},"integrate Sentry SDK into Apple applications","Full Sentry SDK setup for Apple platforms (iOS, macOS, tvOS, watchOS, visionOS). Use when asked to \"add Sentry to iOS\", \"add Sentry to Swift\", \"install sentry-cocoa\", or configure error monitoring, tracing, profiling, session replay, logging, or metrics for Apple applications. Supports SwiftUI and UIKit.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1712,1713,1714,1715,1716],{"name":1500,"slug":1501,"type":16},{"name":1503,"slug":1504,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},"2026-07-11T05:52:57.042493",{"slug":315,"name":315,"fn":1719,"description":1720,"org":1721,"tags":1722,"stars":24,"repoUrl":25,"updatedAt":1729},"setup Sentry SDK for .NET","Full Sentry SDK setup for .NET. Use when asked to \"add Sentry to .NET\", \"install Sentry for C#\", or configure error monitoring, tracing, profiling, logging, or crons for ASP.NET Core, MAUI, WPF, WinForms, Blazor, Azure Functions, or any other .NET application.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1723,1725,1726,1727,1728],{"name":302,"slug":1724,"type":16},"net",{"name":1497,"slug":1498,"type":16},{"name":14,"slug":15,"type":16},{"name":21,"slug":22,"type":16},{"name":9,"slug":8,"type":16},"2026-07-12T06:08:33.793148",{"slug":336,"name":336,"fn":1731,"description":1732,"org":1733,"tags":1734,"stars":24,"repoUrl":25,"updatedAt":1742},"setup Sentry SDK for Elixir","Full Sentry SDK setup for Elixir. Use when asked to \"add Sentry to Elixir\", \"install sentry for Elixir\", or configure error monitoring, tracing, logging, or crons for Elixir, Phoenix, or Plug applications. Supports Phoenix, Plug, LiveView, Oban, and Quantum.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1735,1738,1740,1741],{"name":1736,"slug":1737,"type":16},"Backend","backend",{"name":323,"slug":1739,"type":16},"elixir",{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},"2026-07-11T05:53:11.69581",{"slug":1744,"name":1744,"fn":1745,"description":1746,"org":1747,"tags":1748,"stars":24,"repoUrl":25,"updatedAt":1755},"sentry-fix-issues","fix production issues with Sentry","Find and fix issues from Sentry using MCP. Use when asked to fix Sentry errors, debug production issues, investigate exceptions, or resolve bugs reported in Sentry. Methodically analyzes stack traces, breadcrumbs, traces, and context to identify root causes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1749,1750,1753,1754],{"name":1497,"slug":1498,"type":16},{"name":1751,"slug":1752,"type":16},"Incident Response","incident-response",{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},"2026-07-12T06:08:35.550824",27]