glrs
    Preparing search index...

    cli

    glrs is short for glorious. both names run the same binary, so use whichever you prefer.

    everything resolves against the project root: file tools, config discovery, rules. it is git rev-parse --show-toplevel, or the directory you started in when that is not a repository.

    glrs works outside a repository. the first run still writes config, and the file tools still resolve against where you started.

    command does
    glrs open a session
    glrs -p <prompt> one headless turn, then exit
    glrs doctor report what would run, without running it
    glrs update reinstall the latest release
    glrs <word> a subcommand an extension registered

    --version and --help win wherever they appear. everything after -p is the prompt, taken verbatim, so it may contain what looks like a flag. a subcommand before -p wins; -p before a bare word wins.

    flag effect
    -p, --print <prompt> one headless turn; reads piped stdin too
    --model <provider/id> model for this run, written to GLRS_MODEL before anything reads it
    --resume [session-id] resume that session, or open the picker when given no id
    --version, -v print glrs <version>
    --help, -h print the usage, the commands, the options, and an Added by extensions: block

    --model must have a value, that value must not be another flag, and it must name a provider:

    glrs --model            --model needs a value.
    glrs --model -p hi --model needs a model id, and "-p" is another flag.
    glrs --model bare-id --model bare-id: --model needs provider/model-id, and "bare-id" names no provider. There is no default provider. See `glrs doctor`.

    --resume <id> naming no session is Session not found: <id>; an empty store is No sessions to resume.

    a long flag glrs does not know is lifted out before parsing, lowercased, and handed to the extension that registered it. --foo=x and --foo bar carry a value; --foo --bar carries "". an unclaimed flag is the notice (unknown flag: --foo). interactive sessions only.

    a first bare word glrs does not claim goes to the extensions: subcommands.

    assistant text goes to stdout. the tool trail, retries, extension notes, [config] diagnostics and [provider] warnings go to stderr. piped stdin joins the prompt, fenced as <input>…</input>. nothing reaches the session store.

    exit when
    0 the turn finished
    1 the turn threw, SIGINT interrupted it ([interrupted]), the 100-step limit was reached ([stopped at the step limit without finishing]), an argv error, an unknown subcommand, or Nothing to run: -p needs a prompt or piped input.

    glrs doctor reports what would run without running any of it: extensions are resolved, not loaded.

    model: anthropic/claude-opus-5
    provider: Anthropic
    missing: ANTHROPIC_API_KEY
    extensions: builtins (bundled)
    

    with credentials present the third line is credentials: found. with no model the first is model: not configured, followed by the reason and the built-in provider ids. --json emits the same report as an object: diagnostics, model, provider, missing, note, extensions.

    see also: models, configuration, run in a pipeline