TUI vs plain mode
The CLI auto-detects whether to launch the interactive TUI or run as a scriptable plain command — here is how that decision is made and how to override it.
The autousers binary runs in one of two modes — TUI (interactive Ink-based terminal UI) or plain CLI (commander-driven, scriptable). You never pick the mode explicitly: the CLI looks at how you invoked it and the surrounding environment, then dispatches accordingly.
How the mode is chosen
Mode selection follows a single rule: launch the TUI iff stdout is a TTY AND the CI environment variable is unset AND --no-tui is not passed AND there is no positional subcommand on argv. Any other shape falls through to plain mode.
- autousers — TUI (interactive Ink-based UI; requires a TTY)
- autousers <subcommand> (e.g. eval list, autouser create) — plain CLI
- autousers --no-tui — plain CLI (force, even on a bare invocation)
- autousers in a CI runner or piped output — plain CLI (auto-detected via TTY check + CI env var)
- autousers --help / autousers --version — plain CLI (so the output stays scriptable)
When to use which
The TUI is the friendly default for first-run setup, browsing evaluations, and building autousers conversationally. Plain mode is for scripts, CI, and any one-shot command you would pipe into jq.
Interactive — launch the TUI
autousersBare invocation in an interactive shell — drops into the menu
Scripted — pipe JSON into jq
autousers eval list --json | jq '.[] | select(.status == "Running")'Plain mode is automatic once a subcommand is present
CI — non-interactive eval with cost preview
# Dry-run first — prints the cost preview, spends nothing.
autousers eval run <id>
# Confirm and queue the real autouser runs.
autousers eval run <id> --commitThe same dryRun-first rule the MCP server enforces, end to end
Force plain mode inside a TTY
autousers --no-tui # bypass the TUI, print top-level help
autousers eval list --no-tui # already plain — flag is a no-op hereUseful when piping through tee or capturing in a wrapper script
Parity guarantee
Every TUI capability has a plain-mode equivalent — there is no workflow that requires the interactive UI. If the TUI lets you do it, autousers <subcommand> --help will show you the flags to do the same thing non-interactively. The TUI is an ergonomic layer on top of the same /api/v1 surface.