Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/sidmanale643/northstar/llms.txt

Use this file to discover all available pages before exploring further.

The NorthStar dashboard is a Next.js 14 application that connects directly to the same Supabase project as your SDK. It provides a real-time window into every trace, session, and LLM call your agents produce — along with tools for managing prompt versions, running evaluations against datasets, and configuring alert rules and webhook endpoints.

Feature overview

Trace Viewer

Inspect individual agent runs with a DAG graph view of span relationships, a chronological span timeline, per-span input/output content, error details, and a full cost and token usage breakdown across all LLM calls in the run.

Sessions

Browse all agent sessions with filtering by date, status, project, and environment. Click into any session to see every run it contains and drill down to individual spans and events.

Prompts

Manage versioned prompt templates stored server-side. View the full version history for each prompt, switch between labeled versions (e.g. production, staging), compare versions side-by-side with a diff view, and test compiled templates in the built-in playground.

Evals

Browse eval datasets, launch eval runs against a dataset using deterministic graders or LLM judges, and review per-case grade breakdowns. Scores are stored back into the database and visible alongside the traces that generated them.

Settings

Manage project API keys, configure project-scoped provider keys for eval LLM judges (OpenAI, Anthropic, OpenRouter, and other LiteLLM-compatible providers), define webhook endpoints, and configure alert rules for error rate, P95 latency, and token budget thresholds.

Local development setup

The dashboard is a standalone Next.js app in the dashboard/ directory. It uses pnpm as its package manager.
1
Install dependencies
2
cd dashboard
pnpm install
3
Configure environment variables
4
Copy the example environment file and fill in the values for your Supabase project:
5
cp .env.local.example .env.local
6
Open .env.local and set all required variables (see the Environment variables section below).
7
Start the development server
8
pnpm dev
9
The dashboard will be available at http://localhost:3000.

Environment variables

The dashboard reads the following environment variables at runtime. All are required unless noted.
VariableRequiredDescription
NEXT_PUBLIC_SUPABASE_URLThe public API URL of your Supabase project, e.g. https://<project-ref>.supabase.co.
NEXT_PUBLIC_SUPABASE_ANON_KEYThe anon public key from your Supabase project settings. Used by the browser client for authenticated dashboard sessions.
SUPABASE_SERVICE_ROLE_KEYThe service_role secret key. Used by server-side Next.js routes to access the private schema tables that hold trace data.
DASHBOARD_API_KEYAn API key used to authenticate dashboard server-side API routes.
NORTHSTAR_DEMO_BACKEND_PROJECT_IDOptional Supabase project reference for a read-only demo dataset shown on the landing page.
PROVIDER_KEYS_ENCRYPTION_KEYA 32-byte base64 symmetric key used to encrypt project-scoped provider keys before storing them in the database. Required if you want to use LLM judges in eval runs. Generate with openssl rand -base64 32.
NEXT_PUBLIC_ prefixed variables are embedded into the browser bundle at build time. Do not put secrets in NEXT_PUBLIC_ variables.

Generating PROVIDER_KEYS_ENCRYPTION_KEY

openssl rand -base64 32
Set the output as the value of PROVIDER_KEYS_ENCRYPTION_KEY in both .env.local (for local development) and your production deployment environment.

Prompt playground

The Prompts section of the dashboard includes a built-in playground that lets you test any saved prompt version against live models without writing code. Select a prompt, choose a version or label, fill in any template variables (Jinja {{ variable }} or Python {variable} syntax), choose a provider and model from your configured provider keys, and run the completion directly from the browser. The playground uses the project-scoped provider keys stored in Settings → Provider Keys. Add at least one provider key before using the playground.
Use the playground to verify that a prompt behaves correctly before promoting it to the production label. Changes to the label are picked up immediately by any SDK call to northstar.pull_prompt("my-prompt", label="production").

Alert rules and webhooks

The Settings section of the dashboard lets you define alert rules scoped to a project. Three rule kinds are supported:
KindDescription
error_rateFires when the fraction of errored runs exceeds the configured threshold.
latency_p95Fires when the P95 run latency exceeds the configured threshold (in milliseconds).
token_budgetFires when token usage in a window exceeds the configured threshold.
Each rule can be toggled enabled or disabled without deleting it. Webhook URLs are registered per project in Settings → Webhooks; each webhook has a status of active or paused.

Connecting to your Supabase project

The dashboard connects to the same Supabase project used by the SDK. The NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY values are used for dashboard user authentication, while SUPABASE_SERVICE_ROLE_KEY is used in Next.js Server Components and API routes to query the private schema tables that hold your trace data. There is no separate database or data sync step — traces written by the SDK are immediately visible in the dashboard.

Build docs developers (and LLMs) love