This document describes the non-interactive CLI surface intended for wrappers, scripts, and other tools that invoke jcode.
Use these flags by default in wrappers:
jcode --quiet --no-update --no-selfdev ...--quietsuppresses non-error CLI/status chatter--no-updateavoids update-check noise/work--no-selfdevavoids repository auto-detection changing runtime behavior
List model names that can be passed to -m/--model:
jcode --quiet model list
jcode --quiet model list --json
jcode --quiet --provider openai model list --jsonList provider IDs you can pass to -p/--provider:
jcode --quiet provider list
jcode --quiet provider list --jsonInspect the currently requested and resolved provider/model selection:
jcode --quiet provider current
jcode --quiet --provider openai --model gpt-5.4 provider current --jsonVerbose human summary:
jcode --quiet model list --verbosejcode --quiet run --json "Reply with exactly OK"jcode --quiet run --ndjson "Reply with exactly OK"Typical event types:
startconnection_phaseconnection_typetext_deltatext_replacetool_starttool_inputtool_exectool_donetokensdoneerror
The final done event includes the assembled text and usage summary.
Example shape:
{
"session_id": "session_...",
"provider": "OpenAI",
"model": "gpt-5.4",
"text": "OK",
"usage": {
"input_tokens": 123,
"output_tokens": 7,
"cache_read_input_tokens": 0,
"cache_creation_input_tokens": null
}
}jcode --quiet auth status
jcode --quiet auth status --jsonJSON output includes:
any_availableproviders[]iddisplay_namestatusmethodauth_kindrecommended
jcode --quiet version
jcode --quiet version --jsonJSON output includes:
versiongit_hashgit_tagbuild_timegit_daterelease_build
- JSON commands are designed so the intended machine-readable result is printed to
stdout - With
--quiet, wrapper-oriented commands should keepstderrempty unless there is a real warning/error jcode model listandjcode run --jsondo not require the TUIjcode model listdoes not require an already-running shared server