Reference

CLI Reference

Every command, flag, and exit code.

The agent-facing surface is the /evalglass <verb> umbrella the plugin exposes. Each verb is an instruction to issue an exact command and read back typed artifacts — the plugin never computes a verdict. Under it sit two CLIs: the host's vendored runtime (host evaluation) and the integration installer CLI (discover / plan / install / re-vendor).

The /evalglass verbs

VerbWhat it does
/evalglassHonest status overview; runs nothing.
setupDiscover candidate call sites, vendor the runtime, scaffold a proposed dataset/metrics/CI. Flags --scan-only, --dry-run, --ci, --upgrade.
connectImport exported OTel/OpenInference or local trace JSON (no SDK, no network), or scaffold a dataset.
connect --live <platform> experimentalOpt-in lane that scaffolds a live Langfuse/Phoenix/LangSmith pull in evalglass.yaml: credentials are env-var names (a literal secret is rejected), data_policy defaults to unknown (egress refused until you permit it), no provider SDK is imported, a missing extra is a clean SKIPPED, and a live pull is proposed and cannot gate. Off the required path.
discovering-metrics nextDeep-read code, output schemas, prompts, and traces (any agentic framework) → draft a proposed MetricCatalog; the output schema alone drafts a contract-tier structural floor with no traces. Everything proposed/informational. Discover metrics →
runRun via the vendored runtime; read back the verdict. run --example quickstart is the pre-install demo.
viewPer-metric status/validity/values; --by-call groups by explicit subject identity, never list order.
explainWhy a number is or isn't trustworthy, from typed authority/diagnostics only.
compare / baselineDelta only when comparable; baseline promotion is deliberate.
ciCopy the CI workflow (alias of setup --ci); exits on ci_should_fail only.
watch nextOne evaluation → compare to the baseline → write a typed drift.json → exit (cron/CI, not a resident daemon). A regression only when the runs are comparable and the paired interval clears zero; a no-comparable-regression result never means quality is fine.
add-metric · add-judge · calibratev1.1 authoring — scaffold proposed/uncalibrated assets; never authority.
No gate verb There is no gate/approve/certify/promote-gate verb. Activating a gate is a host YAML edit (metric_status: gating, threshold_approval: approved), guided by the promoting-a-gate skill — never a command.

Host evaluation — the vendored runtime

Host evaluation always runs the host's vendored _evalglass runtime, never the framework package and never via import — this is what keeps a run working after the plugin and the agent are gone:

bash

PYTHONPATH=evals python -m _evalglass.harness.cli run --config evals/evalglass.yaml [--out <dir>] [--format terminal|ci]
PYTHONPATH=evals python -m _evalglass.harness.cli baseline update --from <runrecord.json> --to <baseline.json>

Baseline promotion is explicit only — an ordinary run never writes a baseline. (When the framework is pip-installed, the evalglass console script is an alias for python -m evalglass.harness.cli.)

Integration-time — the installer CLI

Discovery, planning, install, and re-vendor run the bundled framework. The portable form (every runtime, incl. Codex) is python -m evalglass.installer; on Claude Code the plugin's bundled launcher ${CLAUDE_PLUGIN_ROOT}/bin/evalglass-launch runs the same code:

bash

python -m evalglass.installer discover --root .     # read-only candidate report
python -m evalglass.installer plan     --root .     # non-authoritative install plan
python -m evalglass.installer install  --root .
python -m evalglass.installer revendor --root . [--dry-run] [--confirm]

Each emits typed JSON to stdout; a refused clobber goes to stderr and exits 1. (When pip-installed, the evalglass-install console script is an alias.)

Exit codes

CodeMeaning
0informational or pass — build proceeds.
1fail or blocked — build fails.
2Setup / infrastructure error — not a quality verdict.

Next steps