Repository navigation
Proposal: BytesBrains Cruise as a curated provider #24
Description
What this is
We run Cruise, an OpenAI-compatible gateway: one key across many hosts (Workers AI, DeepSeek, Mistral, Anthropic, OpenAI…), per-project budget caps that stop a runaway loop, and a ledger of what each request cost. We'd like to add it to PROVIDERS as a curated entry, and are asking here first, as the README invites, before sending a PR. Disclosure: we operate Cruise.
Why it may suit OpenHack users: a scan is a long agent loop. A hard daily cap means a stuck hunter stops at a figure the user chose, not at the end of their card, and the ledger answers "what did that scan cost" when the CLI has no pricing for a BYOK model (it reports $0.0000).
Tested before asking
OpenHack 0.2.4, openhack --scan, no code changes, pointed at Cruise through the existing openai provider overrides (OPENAI_BASE_URL / OPENAI_MODEL):
- A full scan of a small Flask app with three planted bugs, on
workers-ai/@cf/zai-org/glm-5.3(the same family as your current default, Default new sessions to GLM 5.3 Flash #11): recon, hunter swarm and validator swarm all completed, and command injection and SQL injection were confirmed. 54 tool calls, parallel calls included. About $1.02 for the scan, 16m 48s. prompt_cache_keyis accepted, sosupports_prompt_cache=True.- Refusals arrive as OpenAI-shaped errors that OpenHack already displays: a model lacking a capability the request needs gets
400 unsupported_capability, and an exhausted cap gets429 budget_exhausted, after which OpenHack offered--resume.
The same runs turned up #21, #22 and #23, which affect any OpenAI-compatible provider, not only this one.
The change
One entry in openhack/providers.py, plus whatever your tests do for the other curated providers:
"cruise": ProviderSpec(
"cruise", "BytesBrains Cruise", "https://cruise.bytesbrains.net/v1",
"CRUISE_API_KEY", "workers-ai/@cf/zai-org/glm-5.3", True,
hint="One key across open models, with budget caps",
),No hosted-service code and no new CLI surface (per AGENTS.md). CRUISE_BASE_URL / CRUISE_MODEL overrides come for free from resolve(). The model list stays dynamic: GET /v1/models returns only what the presented key can be served, with capabilities and prices.
We're also looking at a Models.dev listing, which would put Cruise in the "Other…" picker either way.
Would you accept a PR along these lines? Happy to change the shape, the default model or the wording.
AI-assisted: drafted with Claude Code; the test runs are described above and logs are available on request.
Activity
nandal commentedon Oct 12, 2026
Thanks for the detailed proposal and the test runs. I've opened #27 to add Cruise as a curated provider, following the shape you suggested: the
cruiseentry withCRUISE_API_KEY,workers-ai/@cf/zai-org/glm-5.3as the default model, and prompt caching on. It's also listed in the primary picker next to the other gateways.#27