Global flags
--help
Every command explains itself:
ecko --help # the command list
ecko pack --help # what pack does, and its options
ecko test -h # -h works too
Help prints to stdout and does nothing else, so it is safe to ask about a command before you are ready to run one.
AI flags
These apply to any command that can make an ai call - run, repl, test, explain, fix.
| flag | effect |
|---|---|
--key <key> | API key for this invocation |
--provider <name> | openai (default), openrouter, ollama |
--model <name> | Model name; the provider's default otherwise |
--trace | Trace every ai call to stderr |
--cache | Cache ai responses in .ecko-cache/ |
Each maps onto the matching environment variable, so a flag is a one-run override of your configuration:
ecko report.ecko --provider openrouter --model anthropic/claude-sonnet-4.5
Because these are recognised after the file too, a program of your own cannot have flags by the same names - the interpreter would take them first. Put -- before your program's arguments and everything after it is passed through untouched:
ecko deploy.ecko --provider ollama -- --key my-app-key --model small
# ^ the interpreter's ^ your program's, verbatim
The full set of settings is environment variables only - see Environment variables. Configuration never lives in code.
--trace
Prints provider, model, token counts, latency and retries for each call. For a durable record set ECKO_TRACE to a path and get JSONL instead - see Tracing.
--cache
Content-addressed: identical prompt, model and parameters return the stored response without a call, and without counting against a budget. Useful when iterating on the code around a prompt rather than the prompt itself. See Caching.
A note on --key
Convenient for a one-off, but a key on the command line goes into your shell history and into the process list. Prefer ECKO_API_KEY in the environment, or an environment block in ecko.json for a non-secret setting like the model.