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 --tuiThe server listens on port 4400 by default and opens the web UI. Application observability can connect through normal Crux config:
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 supportThe 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 reindexLocal 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.