AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Add Error Tracking

skill-gotempsh-temps-add-error-tracking · by gotempsh

|

No reviews yet
0 installs
17 views
0.0% view→install

Install

$ agentstack add skill-gotempsh-temps-add-error-tracking

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-gotempsh-temps-add-error-tracking)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
14d ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Add Error Tracking? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Add Error Tracking

Integrate Temps error tracking (Sentry-compatible) into an application. The Temps DSN is a drop-in replacement for a Sentry DSN — use the official Sentry SDK for the user's platform and point it at the Temps DSN via an environment variable.

Prefer Sentry's official per-framework skills when available

Temps is Sentry wire-compatible, so every skill Sentry publishes for their SDKs works against a Temps DSN. If the user's CLI already has one of these installed, route them to it and only substitute the DSN:

| User's platform | Sentry skill | Source | |---|---|---| | Next.js | /sentry-nextjs-sdk | getsentry/sentry-for-ai | | React (Vite, Remix, etc.) | /sentry-react-sdk | getsentry/sentry-for-ai | | Vanilla browser JS | /sentry-browser-sdk | getsentry/sentry-for-ai | | Node.js | /sentry-node-sdk | getsentry/sentry-for-ai | | React Native | /sentry-react-native-sdk | getsentry/sentry-for-ai | | Generic (language-agnostic) | /sentry-sdk-setup | getsentry/sentry-for-ai |

For platforms Sentry has no dedicated skill for (Vue, Svelte, Angular, Python, Go, Rust, Ruby, Java, PHP, .NET, Flutter, etc.), follow the setup in this file directly.

Always set the DSN from an environment variable — never hardcode it. The user will point the env var at their Temps DSN instead of a Sentry DSN.

Detect the platform

Infer the platform from the codebase:

  • package.json with "next"Next.js@sentry/nextjs
  • package.json with "react" and Vite/Remix/CRA → React@sentry/react
  • package.json with "vue" or "nuxt"Vue@sentry/vue
  • package.json with "svelte" or "@sveltejs/kit"Svelte@sentry/sveltekit
  • package.json with "@angular/core"Angular@sentry/angular
  • package.json with "express", "fastify", "@nestjs/core"Node.js@sentry/node
  • package.json with "react-native" or "expo"React Native@sentry/react-native
  • requirements.txt/pyproject.toml with Flask, Django, FastAPI → Pythonsentry-sdk
  • go.modGogithub.com/getsentry/sentry-go
  • Cargo.tomlRustsentry
  • Gemfile with railsRubysentry-ruby + sentry-rails
  • pom.xml/build.gradle with Spring → Javasentry-spring-boot-starter-jakarta
  • composer.json with laravel/framework or symfony/*PHPsentry/sentry
  • .csproj with Microsoft.AspNetCore.*.NETSentry.AspNetCore
  • pubspec.yaml with flutterFluttersentry_flutter

Get the DSN

The user's Temps project exposes a DSN at Error Tracking → DSN & Setup. It looks like:

https://@/

If the user has not provided a DSN, tell them to:

  1. Open their project in the Temps dashboard
  2. Go to Error Tracking → DSN & Setup
  3. Copy the DSN for the target environment

Always store the DSN in an environment variable. The exact variable name depends on the platform (browser bundlers often require a prefix to expose vars to the client):

| Platform | Env var name | |---|---| | Next.js | NEXT_PUBLIC_SENTRY_DSN | | Vite / React / Vue | VITE_SENTRY_DSN | | SvelteKit | PUBLIC_SENTRY_DSN | | Angular | SENTRY_DSN (injected via environment.ts) | | Everything else (Node, Python, Go, Rust, Ruby, Java, PHP, .NET, Flutter) | SENTRY_DSN |

# .env
SENTRY_DSN=https://@/

Platform setup

Every snippet below reads the DSN from an env var — do not hardcode it.

Next.js

npx @sentry/wizard@latest -i nextjs

Or manually:

npm install @sentry/nextjs
// sentry.client.config.ts
import * as Sentry from '@sentry/nextjs';

Sentry.init({
  dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
  tracesSampleRate: 1.0,
  replaysSessionSampleRate: 0.1,
  replaysOnErrorSampleRate: 1.0,
  integrations: [Sentry.replayIntegration()],
});

Mirror the config in sentry.server.config.ts and sentry.edge.config.ts (same dsn, no replay).

React (Vite, Remix, CRA)

npm install @sentry/react
// src/sentry.ts — import this first in main.tsx / root.tsx
import * as Sentry from '@sentry/react';

Sentry.init({
  dsn: import.meta.env.VITE_SENTRY_DSN,
  environment: import.meta.env.MODE,
  integrations: [Sentry.replayIntegration()],
  tracesSampleRate: 1.0,
  replaysSessionSampleRate: 0.1,
  replaysOnErrorSampleRate: 1.0,
});

Wrap the app root with `` for React render errors.

Vue (Vue 3 / Nuxt)

npm install @sentry/vue
// src/main.ts
import { createApp } from 'vue';
import * as Sentry from '@sentry/vue';
import App from './App.vue';

const app = createApp(App);

Sentry.init({
  app,
  dsn: import.meta.env.VITE_SENTRY_DSN,
  tracesSampleRate: 1.0,
});

app.mount('#app');

Svelte / SvelteKit

npx @sentry/wizard@latest -i sveltekit
// src/hooks.client.ts
import * as Sentry from '@sentry/sveltekit';
import { PUBLIC_SENTRY_DSN } from '$env/static/public';

Sentry.init({
  dsn: PUBLIC_SENTRY_DSN,
  tracesSampleRate: 1.0,
});

export const handleError = Sentry.handleErrorWithSentry();

Mirror in src/hooks.server.ts using $env/dynamic/private for the server DSN.

Angular

npm install @sentry/angular
// src/main.ts
import * as Sentry from '@sentry/angular';
import { environment } from './environments/environment';

Sentry.init({
  dsn: environment.sentryDsn,
  tracesSampleRate: 1.0,
});

Populate environment.sentryDsn from process.env.SENTRY_DSN at build time.

Vanilla JavaScript (browser)

npm install @sentry/browser
import * as Sentry from '@sentry/browser';

Sentry.init({
  dsn: import.meta.env.VITE_SENTRY_DSN,
  tracesSampleRate: 1.0,
  integrations: [Sentry.browserTracingIntegration(), Sentry.replayIntegration()],
});

Node.js

npm install @sentry/node
// Must be the first import in your entrypoint.
import * as Sentry from '@sentry/node';

Sentry.init({
  dsn: process.env.SENTRY_DSN,
  environment: process.env.NODE_ENV,
  tracesSampleRate: 1.0,
});

For Express:

import express from 'express';
import * as Sentry from '@sentry/node';

const app = express();
Sentry.setupExpressErrorHandler(app);

React Native

npx @sentry/wizard@latest -s -i reactNative
import * as Sentry from '@sentry/react-native';

Sentry.init({
  dsn: process.env.SENTRY_DSN,
  tracesSampleRate: 1.0,
  replaysSessionSampleRate: 0.1,
  replaysOnErrorSampleRate: 1.0,
});

export default Sentry.wrap(App);

Python

pip install sentry-sdk
import os
import sentry_sdk

sentry_sdk.init(
    dsn=os.environ["SENTRY_DSN"],
    environment=os.environ.get("ENV", "development"),
    traces_sample_rate=1.0,
    profiles_sample_rate=1.0,
)

Framework integrations:

# Flask
from sentry_sdk.integrations.flask import FlaskIntegration
sentry_sdk.init(dsn=os.environ["SENTRY_DSN"], integrations=[FlaskIntegration()])

# Django
from sentry_sdk.integrations.django import DjangoIntegration
sentry_sdk.init(dsn=os.environ["SENTRY_DSN"], integrations=[DjangoIntegration()])

# FastAPI
from sentry_sdk.integrations.starlette import StarletteIntegration
from sentry_sdk.integrations.fastapi import FastApiIntegration
sentry_sdk.init(
    dsn=os.environ["SENTRY_DSN"],
    integrations=[StarletteIntegration(), FastApiIntegration()],
)

Go

go get github.com/getsentry/sentry-go
package main

import (
    "log"
    "os"
    "time"

    "github.com/getsentry/sentry-go"
)

func main() {
    err := sentry.Init(sentry.ClientOptions{
        Dsn:              os.Getenv("SENTRY_DSN"),
        TracesSampleRate: 1.0,
        Environment:      os.Getenv("ENV"),
    })
    if err != nil {
        log.Fatalf("sentry.Init: %s", err)
    }
    defer sentry.Flush(2 * time.Second)
}

Rust

cargo add sentry sentry-tracing
use std::env;

fn main() {
    let _guard = sentry::init((
        env::var("SENTRY_DSN").expect("SENTRY_DSN must be set"),
        sentry::ClientOptions {
            release: sentry::release_name!(),
            traces_sample_rate: 1.0,
            environment: env::var("ENV").ok().map(Into::into),
            ..Default::default()
        },
    ));

    // Your app entrypoint
}

Ruby (Rails)

bundle add sentry-ruby sentry-rails
# config/initializers/sentry.rb
require "sentry-ruby"
require "sentry-rails"

Sentry.init do |config|
  config.dsn = ENV["SENTRY_DSN"]
  config.environment = ENV.fetch("RAILS_ENV", "development")
  config.traces_sample_rate = 1.0
end

Java (Spring Boot)


  io.sentry
  sentry-spring-boot-starter-jakarta
  7.14.0
# application.properties — Spring reads ${SENTRY_DSN} from the environment
sentry.dsn=${SENTRY_DSN}
sentry.environment=${ENV:development}
sentry.traces-sample-rate=1.0

PHP

composer require sentry/sentry
 $_ENV['SENTRY_DSN'],
    'environment' => $_ENV['APP_ENV'] ?? 'development',
    'traces_sample_rate' => 1.0,
]);

For Laravel, use sentry/sentry-laravel and configure via config/sentry.php reading env('SENTRY_DSN').

.NET (ASP.NET Core)

dotnet add package Sentry.AspNetCore
// Program.cs
builder.WebHost.UseSentry(options =>
{
    options.Dsn = Environment.GetEnvironmentVariable("SENTRY_DSN");
    options.Environment = builder.Environment.EnvironmentName;
    options.TracesSampleRate = 1.0;
});

Flutter

flutter pub add sentry_flutter
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';

Future main() async {
  await SentryFlutter.init(
    (options) {
      options.dsn = const String.fromEnvironment('SENTRY_DSN');
      options.tracesSampleRate = 1.0;
    },
    appRunner: () => runApp(const MyApp()),
  );
}

Pass the DSN at build time: flutter run --dart-define=SENTRY_DSN=$SENTRY_DSN.

Capture custom errors

JavaScript / TypeScript

import * as Sentry from '@sentry/react'; // or /browser, /node, /nextjs, etc.

try {
  doRiskyThing();
} catch (err) {
  Sentry.captureException(err);
}

Sentry.captureMessage('Something notable happened', 'warning');

Python

try:
    do_risky_thing()
except Exception as exc:
    sentry_sdk.capture_exception(exc)

sentry_sdk.capture_message("Something notable happened", level="warning")

Go

sentry.CaptureException(err)
sentry.CaptureMessage("Something notable happened")

Rust

sentry::capture_error(&err);
sentry::capture_message("Something notable happened", sentry::Level::Warning);

Source maps (JS/TS only)

Upload source maps during CI so the Temps dashboard shows original source in stack traces.

npm install --save-dev @sentry/cli
sentry-cli sourcemaps inject ./dist
sentry-cli sourcemaps upload \
  --url-prefix '~/' \
  --release "$GIT_SHA" \
  ./dist

The Temps dashboard also accepts source map uploads via Error Tracking → Source Maps in the UI.

Verification

After wiring up:

  1. Throw a deliberate error from the app:
  • JS / TS: throw new Error('Temps error tracking test');
  • Python: raise Exception('Temps error tracking test')
  • Go: sentry.CaptureException(errors.New("Temps test"))
  • Rust: panic!("Temps test") (inside a handler caught by the Sentry integration)
  1. Run the app and trigger the path that throws.
  2. Open Error Tracking → Error Groups in the Temps dashboard — the error should appear within a few seconds.
  3. Confirm the stack trace and environment are populated.

Common issues

  • Nothing shows up: Verify the DSN env var is loaded and the SDK is initialized before any code that might throw. For Node, Sentry.init must be the very first import.
  • Minified stack traces: Upload source maps (see above).
  • Browser apps not reporting: Make sure the env var uses the bundler's public prefix (NEXT_PUBLIC_, VITE_, PUBLIC_) so it reaches the client bundle.
  • Events missing in production: Confirm the deployment environment sets the DSN env var — local .env files are not copied automatically.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.