Crux
GuidesObservability

Devtools

Inspect production runs, Evals, Eval runs, Baselines, Review work, and source definitions locally.

Crux Devtools is the browser UI embedded in the native crux local runtime. It reads backend-owned services and projections; React components do not run Evals or reconstruct evidence.

Start Devtools

crux dev
crux dev --tui

The server listens on port 4400 by default and opens the web UI. Application observability can connect through normal Crux config:

crux.config.ts
import { config } from "@use-crux/core";

export default config({
  devtools: {
    serverUrl: "http://localhost:4400",
  },
});

Keep remote observability tokens in environment or platform secrets. Local loopback development does not require Eval-specific config.

Runs

Runs show the canonical observability graph: model calls, context resolution, retrieval, tools, safety decisions, cost, errors, and artifacts. Run detail links source definitions when the exact deployment manifest is available and labels historical or unresolved joins honestly.

Evals

The Evals page lists the single default Eval export discovered from every *.eval.ts file, its source, Cases, Variants, and latest status. Discovery is separate from execution:

crux eval list
crux eval support --plan
crux eval support

The CLI remains the V1 execution surface. Devtools does not start remote Eval work.

Eval runs

Eval runs show blocking status, completeness, selected Cases and Variants, reuse reasons, latency, cost, scores, checks, and authored Gates. A reused task can link to historical production evidence; that provenance does not imply the evidence was created in the current Eval run.

Use the CLI for saved-run inspection and comparison:

crux eval show <run-id>
crux eval diff <run-a> <run-b>

Baselines

A Baseline is one complete, unfiltered Eval run arm explicitly accepted by a user. Devtools enables Set as Baseline only when the backend reports the run eligible. Core performs the authoritative compatibility and atomic-write checks.

crux eval baseline set <run-id> [--variant <name>]

The view explains source, Case, scorer, Gate, Variant, schema, and parameter compatibility per comparison rather than showing a misleading global match.

Review

Production feedback() creates durable Review work linked to its canonical run. Reviewers can inspect bounded run context, resolve, dismiss, or choose Add to Eval.

The editor prefills production input and call context, never model output as expected truth. Saving delegates to the repository writer and reports one of added, linked, conflict, or pending-sync; it never overwrites an existing Case id.

Inspect

Inspect presents source-discovered prompts, contexts, tools, routing, agents, flows, Evals, relations, safe schemas, and diagnostics from the Project Index. Runtime evidence enriches this authored view without becoming source truth. Historical manifest joins are resolved only against the exact project and manifest identity.

Force a source rebuild only when needed:

crux index reindex

Local files and privacy

Private Eval runs and evidence live under .crux/evals/ and should remain gitignored. Source-controlled project truth consists of Eval source, hand-authored Case files (including sibling .cases.jsonl), and explicit .baseline.json pointers. Review comments, corrections, raw inputs, outputs, tokens, and credentials do not belong in Baseline files.

The local service uses SQLite WAL, busy timeouts, and bounded read models for concurrent observability and Review traffic. The browser consumes those services over the local HTTP/event API.

On this page