Skip to main content
The PandaProbe CLI is a single binary for working with the PandaProbe API from your terminal: list and inspect traces, sessions, and spans; create eval runs; read evaluation scores and details; and manage scheduled evaluation monitors.

Install

Verify the install:

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.
This opens your browser, authenticates you against PandaProbe Cloud, mints a 90-day API key, and writes 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:
For self-hosted or non-default deployments, also set the endpoint:
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:
Write — create runs and submit scores:
These three commands — together with the evals monitors lifecycle commands below — execute write endpoints. Everything else in the CLI is read-only.

Monitors

Monitors schedule recurring evaluation runs over the traces or sessions matching a filter. Like the other evals 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:
Write — create, update, and control monitors:
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 with jq:

Output and exit codes

By default the CLI emits JSON: data goes to stdout, errors to stderr — so output pipes cleanly into jq. Pass --format table for human-readable tables. List commands return an items array plus a pagination block:
Errors are JSON objects on stderr:
Exit codes are part of the contract:

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):
Other global flags: --verbose and --debug (log HTTP details to stderr, key masked), --no-color, and --config <path> to use a non-default config file.

Shell completion

Supported shells: bash, zsh, fish, powershell.