openai-compat provider type, so you can point it at the ScitiX Model Inference API. See the Models page for available models (e.g. glm-5.2).
Configure
Crush reads config in this order: project-level.crush.json / crush.json, then the global ~/.config/crush/crush.json. Create an API key on the ScitiX API Keys page, then create crush.json in your project root:
models.large/models.small explicitly set ScitiX as the default. This matters if your shell has leftover variables like OPENAI_API_KEY or ANTHROPIC_API_KEY — without an explicit default, Crush may auto-discover and use those official providers instead.
Export the key referenced by api_key:
To ignore auto-discovered official providers entirely, set
"options": { "disable_default_providers": true } — then only fully-specified providers from your config are used.
To keep the model list in sync automatically, add "discover_models": true under the provider — Crush merges the models fetched from https://api.scitix.ai/model-api/v1/models with your hand-written entries (yours win); leaving models empty also triggers auto-discovery for openai-compat providers.
An export only lasts for the current shell — add the line to ~/.bashrc / ~/.zshrc to persist it.
Verify
glm-5.2 — the models.large/models.small entries pin it as the default, no picking needed. Send a task (e.g. “list the current directory and summarize it”) to confirm tool calls and responses work. (Ctrl+L opens the model picker to switch.)
You can also run a single task non-interactively:
crush run: -m provider/model (pick the model for this run, e.g. -m scitix/glm-5.2), -q (quiet, no spinner), and stdin piping (curl -s https://example.com | crush run "Summarize this"). Note that run does not accept --yolo (verified on 0.86.0 and 0.88.0) — pre-allow the tools it needs via permissions.allowed_tools:
FAQ
- The model doesn’t appear in the picker, or requests go to the official OpenAI API: Confirm
crush.jsonis in the launch directory (or the global path) and is valid JSON;typemust beopenai-compat; if other providers’ API keys are set in your environment, addmodels.large/models.smallto force the default. - I see 401 errors: If
api_keyreferences an environment variable, confirm it’s exported — or set the key directly, but never commit it.
npm i -g @charmland/crush; Crush is a Go static binary, so the npm EBADENGINE warnings on older Node are harmless).
