Global flags
Available on any command:Output modes for agents
Auto-JSON on redirect: if stdout is not a terminal (e.g.jelou whoami | jq), the CLI switches to JSON automatically. Force it to human-readable with --human or
JELOU_FORCE_HUMAN_OUTPUT=1.
Response shape:
AUTH_ERROR, FORBIDDEN, NOT_FOUND, VALIDATION_ERROR,
API_ERROR, MISSING_FUNCTIONS_PROJECT, MISSING_WORKFLOW_PROJECT,
MISSING_AUTH, INPUT_ERROR, UNKNOWN_ERROR, NETWORK_ERROR,
TRANSIENT_ERROR, MISSING_LOCKFILE.
The error object can also include a retryable boolean field indicating
whether it’s worth retrying the command as-is, with nothing changed:
--json responses of action commands include a breadcrumbs array
with the suggested next commands. Streaming logs emit NDJSON (one
JSON object per line).
Introspection with --describe
--describe walks the command tree and emits its signature as JSON, without
executing anything. It’s read-only — use it to plan.
{ command, description, arguments, options, examples, subcommands }.
Global flags are filtered out so you only see the command-specific
surface.
Exit codes
The CLI uses granular exit codes so an agent can branch without parsing stderr:
Codes 7-9 are specific to
jelou pull/push/incoming (8 is reserved and
not yet emitted on production paths). Code 10 shows up when the local
toolchain has fallen behind the schema the CLI expects. In --json mode, the
same code appears in error.code with a hint field that suggests the next
command.