Environment variables
Config directory
The CLI stores configuration in a platform-specific directory:Files
The credentials file has
0600 permissions (readable by owner only) and contains:
Update checks
In interactive terminals, the CLI periodically checks npm for the latest@outlit/cli version and caches the result in update-check.json. Cached notices are printed to stderr and never affect JSON output.
outlit upgrade to update with the same package manager that installed the CLI when it can be inferred.
Shell completions
Generate completion scripts for your shell:- Bash
- Zsh
- Fish
Output behavior
TTY mode (interactive)
When running in an interactive terminal, the CLI outputs:- Tables with Unicode box-drawing characters for list commands
- Spinners on stderr during API calls
- Colored output with green checkmarks for success
- Pagination hints showing total count and next cursor
JSON mode
When JSON mode is active, all output is pretty-printed JSON on stdout:When JSON mode activates
JSON mode activates automatically in any of these conditions:This means AI agents (Claude Code, Cursor, etc.) automatically get JSON output when they run CLI commands as subprocesses — no extra configuration needed.
Error handling
All errors exit with code1. The error format depends on the output mode:
TTY:
Error codes
Commands that call Outlit can return the server’s
code, message, retryable, and requestId fields. See Error responses.
Data formatting
The CLI formats values for readability in TTY mode:
The MRR column always divides
currentMrr by 100 and shows $, because the list result doesn’t name the customer’s currency. That is right for customers billed in USD. For EUR, GBP, and CAD the amount is right but the symbol isn’t. Other currencies follow the billing provider’s amount rules (see Stripe’s currency docs), so the amount can be wrong too: JPY has no minor unit, so 500000 is ¥500,000, not $5000.00. Use --json for the raw currentMrr.
