Crush
Operating Crush on workers — provider keys, `crush run`, and add-on models through a configuration of its own.
Install
npm install -g @charmland/crushThe worker looks for crush on the worker user's PATH.
Sign-in
Crush uses provider keys from the environment or its own configuration. Configure it once as the worker's user, or let the worker give it a provider. With none a run ends with "No providers configured".
How it runs
crush run --quiet [--model <model>] <prompt>
- A non-interactive run approves its own tool calls.
- Its output is text.
- Models are named
provider/model(Crush calls Googlegemini), so a model that several providers offer is not ambiguous. - If Crush leaves a
.crush/folder in the project, it is hidden from Git locally, so it is never committed.
Add-on models
For gateway sessions the worker writes a crush.json into the task's state directory with an OpenAI-compatible
provider and points Crush at it with CRUSH_GLOBAL_CONFIG. The key is not in the file; Crush reads it from a
variable. A complete task was run this way against a test model. Crush ignores ANTHROPIC_BASE_URL and
OPENAI_BASE_URL, so a provider with its own base URL gets a crush.json with that base_url too.
Sessions
Resume is not claimed for Crush: no resume command could be verified without an account. After a crash, recovery starts a fresh session from the checkpoint.
What was verified
Checked against Crush 0.97.1 on 2026-10-06: its --help, and a real run without credentials through the
worker's session runtime. It also completed a task through the model gateway against a test model.