CLI reference
exd ships three binaries. Pick the one that matches your role.
| Binary | Audience | What it does |
|---|---|---|
exd | Developers, agents, CI | Authoring, evaluation, telemetry analysis, manifest push/pull. The day-to-day tool. |
exd-server | Operators | The long-running HTTP service. |
exd-server-admin | Operators | Operate the service: bootstrap, migrate, tenants, namespaces, tokens. |
A fourth binary, exd-server-git-hook, is invoked by exd-server during git push and is not user-facing.
Before diving in, skim conventions — global flags (--format, --http-backend, --manifest), environment variables (EXD_*), the --ctx k=v parser, exit-code conventions, and the JSON provenance envelope are shared across every exd subcommand.
exd — by goal
Author a flag manifest
| Command | Use when |
|---|---|
exd lint | You edited a TOML file and want every diagnostic before pushing. |
exd schema | You want the typed context shape a flag (or whole flag namespace) expects, in human / JSON / JSON Schema / Rust / TypeScript form. |
exd fixtures | You want a paste-ready (ctx, expected variant) test table for an SDK. |
Investigate flag behavior
| Command | Use when |
|---|---|
exd eval | "What variant does this user get?" — single-shot lookup, scriptable. |
exd explain | "What does this flag actually do?" — static description, codebase-specific pitfalls + configuration notes, optional counterfactual outcome. |
Move a manifest between disk and server
| Command | Use when |
|---|---|
exd manifest push | Promote a linted flag namespace to the server (from CI or a workstation). |
exd manifest pull | Snapshot the server-of-record's current flag namespace to disk. |
exd manifest versions | Inspect the version history of a server-hosted flag namespace. |
Analyze evaluation telemetry
See the telemetry surface index for the full catalogue. Common entry points:
| Command | Use when |
|---|---|
exd telemetry summary | "How many evaluations, per variant, in the last 24 h?" |
exd telemetry srm | "Did my rollout actually serve the split I declared?" |
exd telemetry rules | "Which rules are firing, which never fire?" |
exd telemetry coverage | "Which flags have no traffic at all?" |
exd telemetry dead-flags | "Which flags only ever return the catch-all?" |
exd telemetry simulate | "If I push this candidate manifest, how would last week's traffic look?" |
exd telemetry tail | Live-follow a sink during a rollout. |
exd telemetry capabilities | Discover every query, its parameters, and the diagnostics it can raise. |
exd-server* — by goal
Stand up a server
exd-server-admin bootstrap— initialize the database and mint the first superadmin token.exd-server— launch the HTTP service (foreground or via your init system).
Onboard a team
exd-server-admin tenant create— register the tenant.exd-server-admin namespace create— register the flag namespace under that tenant.exd-server-admin token mint— issue the right token kind (namespace-writefor CI,namespace-clientfor browser SDKs, etc.).
Run upgrades
exd-server-admin migrate— apply pending schema migrations after a binary upgrade.exd-server-admin token list/revoke— audit and rotate credentials.
Conventions and shared concepts
Stability
The set of subcommands, the common flag names, the JSON envelope shape, and the T-code set are stable per spec version. New subcommands and new common flags may be added at minor versions. Renames or removals are major-version changes. Per-command "Output (human)" rendering details are NOT stable — pipe --format json for scripted consumers.