Install
- macOS / Linux
- Windows (PowerShell)
- Go
Authenticate
There are two ways to authenticate. Use automatic login for PandaProbe Cloud, or a manual API key for self-hosted deployments (or if you prefer to manage keys yourself).Method 1 — Automatic login (PandaProbe Cloud)
pandaprobe auth login currently supports PandaProbe Cloud only. Sign up at
app.pandaprobe.com before logging in. For self-hosted or
other non-SaaS endpoints, use Method 2 below.api_key + project_name to ~/.pandaprobe/config.yaml. On a headless
machine, add --no-browser to print the URL instead.
Method 2 — Manual API key
Create an API key in your PandaProbe dashboard, then store it together with your project name:You can also provide these per-command with
--api-key / --project / --endpoint,
or via the PANDAPROBE_API_KEY, PANDAPROBE_PROJECT_NAME, and PANDAPROBE_ENDPOINT
environment variables.Quickstart
Commands
Pagination is--limit (1–200) and --offset. Filtering happens server-side, so you
fetch only what you need.
Traces
traces list filters: --status (PENDING, RUNNING, COMPLETED, ERROR),
--session-id, --user-id, --name, --tags, --started-after, --started-before,
--sort-by (started_at, ended_at, name, latency, status), --sort-order
(asc, desc).
traces get returns the trace with its spans inlined. Use --spans-only for just the
spans array, and --kind / --status to filter spans. Span kinds: AGENT, TOOL,
LLM, RETRIEVER, CHAIN, EMBEDDING, OTHER. Span statuses: OK, ERROR, UNSET.
Sessions
sessions list filters: --user-id, --has-error, --started-after,
--started-before, --tags, --query, --sort-by (recent, trace_count,
latency, cost), --sort-order. sessions get accepts --include-traces
(default true).
Evaluations
Evaluation commands target traces or sessions via--target trace|session (default
trace). This is the only command group with write operations alongside the
read ones — the commands that create or modify data are called out explicitly below.
Read — inspect metrics, runs, and scores:
Monitors
Monitors schedule recurring evaluation runs over the traces or sessions matching a filter. Like the otherevals commands, monitors create derives its target from
--target trace|session (sent to the API as TRACE / SESSION).
Read — list monitors and the runs they have produced:
monitors create flags: --name and --metrics (required), --cadence (required;
every_6h, daily, weekly, or cron:<5-field expression>), --sampling-rate
(0–1), --model, --only-if-changed (default true), plus the same per-target filter
flags as evals runs create. --signal-weights is accepted for --target session
only. monitors update takes the same fields (filters as a single --filters '<json>'
object) and sends only the ones you set. monitors list filters by --status
(ACTIVE, PAUSED) with --limit / --offset.
Examples
Compose commands withjq:
Output and exit codes
By default the CLI emits JSON: data goes to stdout, errors to stderr — so output pipes cleanly intojq. Pass --format table for human-readable tables.
List commands return an items array plus a pagination block:
Configuration reference
Values resolve in this order (highest to lowest): command-line flags →PANDAPROBE_* environment variables → ~/.pandaprobe/config.yaml → built-in defaults.
Inspect the effective configuration (the API key is masked):
--verbose and --debug (log HTTP details to stderr, key masked),
--no-color, and --config <path> to use a non-default config file.
Shell completion
bash, zsh, fish, powershell.
