Command line
The terminal.
The real way in.
`dials` is a typed, scoped, shell-friendly CLI. It runs the same paths the dashboard and the API run. Use it locally, in CI, in agents, in dotfiles.
At a glance
A CLI you can script around.
Install
`npm i -g @dials/cli`
Single binary install. Bun and Deno also supported.
Output
Human or JSON
Default human. Pass `--json` and pipe to `jq`.
Auth
Scoped session
Logs in via the same identity surface as the console.
Exit codes
Meaningful
Non-zero on policy deny, network error, or validation failure.
Smoke test
One command.
End-to-end.
`dials agent smoke` walks the full scoped session, runs an identity check, hits the carrier adapter, and writes a usage event. Stand it up in CI and you've protected the whole platform with one command.
- Walks identity
- Walks carrier
- Walks ledger
- Exit code 0 means real
Smoke
$ dials agent smoke
✓ session scope:dials.local.read
✓ carrier bulkvs mock · 25 results
✓ usage evt_01HQT4… written
status: okJSON
$ dials agent smoke --json
{
"status": "ok",
"session": { "scope": "dials.local.read" },
"carrier": { "name": "bulkvs", "mode": "mock", "count": 25 },
"usage": { "id": "evt_01HQT4..." }
}Versioned
Print the build.
Inspect the path.
`dials version` prints the CLI version, the API version it speaks, and the platform endpoint it's pointed at. `dials whoami` prints your scoped session, your tenant, and the audience.
- Per-command tracing
- `--profile` for multi-tenant work
- `--mode mock` and `--mode wired`
- Per-command `--scope`
version
$ dials version
dials 1.6.0 · api v1 · platform.dials.comwhoami
$ dials whoami
subject: agent · reception
scope: dials.local.read dials.dial
tenant: acme-corp
audience: platform.dials.comTry `dials --help`.
Install the CLI and walk the same audited paths the console exposes. Mock mode by default.