OpenCrabs v0.5.10 is out, and this one changes the first five minutes.
The biggest thing:
OpenCrabs now ships its own provider inside the binary. No account, no API key, no sign-up. It serves DeepSeek v4.1 Flash, a 200k-context multimodal model, so text and attached images both work on the very first run (#2047).
You install the binary and you are already talking to the crab.
Onboarding was rebuilt around that.
The quick-start welcome interviews you, asks only for what is still missing, names the provider and model you are on, and offers next steps.
The built-in provider is wired into both the quick-start and the advanced path, with vision and image generation on by default (#2047, #2048).
Its context window is pinned to a fixed 200k and held on the host side so it cannot drift (#2066, #2067), and install tokens are redacted from logs and kept out of Debug output, because a credential that shows up in a log is a credential you already leaked.
The provider chain got a lot harder to knock over.
A 429 that declares a long wait now parks that provider and routes around it instead of poisoning the fallback, a lapsed cooldown no longer drops the primary out of the chain, a declared-wait cooldown no longer makes the fallback sticky, and every compatible provider shares one 120s stream idle default. Providers that need it now route over the Responses API (#2059).
Attachments became first-class everywhere.
Discord, Slack and Trello all save inbound files to the channel attachment store, Discord and Slack store DM turns in channel_messages, and the answer now posts before its suggestion buttons on Discord, Slack and WhatsApp, so you are never staring at buttons while the reply is still coming.
Discord tool cards are now durable and paginated: they survive a restart, they live in SQLite, and they collapse repeats behind a Log view with a colored bar (#1880). Long agent runs stop looking like a wall.
The TUI got the screen work: a full-screen responsive /usage (#2073) and a /mission-control that adapts to your terminal width (#2074).
/models opens on the session's provider and model and switches directly when you pass a full provider/model argument.
And the final answer stays visible when tools run after its text, which sounds small and is not.
Under the hood: usage accounting grew a cache-read split with prices on the cards (#2027, #2062) and model costs come from the ledger instead of a cache-blind estimate.
Voice serves stt_model and tts_model from any provider and splits TTS chunks on character boundaries.
The plan tool locks a per-task spec check at start and runs it at completion (#1904, #2063). WhatsApp can create and post to a newsletter straight from the tool surface (#1827).
99 commits. 31 features. 43 fixes. 10,762 tests. Grab it at
opencrabs.com
Huge thanks to
@iamloonix @declutterKE @moneyacademyKE @syafriadit1 @mysteriouspants and a few new contributors.
You all are making Open Crabs better everyday.
v0.5.10 JUST DROPPED 🦀🔥
OpenCrabs ships its own provider: free DeepSeek v4.1 Flash, text AND vision, no account, no API key
⚡ Zero setup: grab the binary and start talking, onboarding handles the rest
📎 Attachments on every channel: Discord, Slack and Trello all save your files
🃏 Discord tool cards survive restarts, paginated with a Log view
🖥️ Full-screen /usage and a /mission-control that fits your terminal
🔗 Provider chain hardening: long 429s park and route around, no poisoned fallback
💾 Usage ledger with a cache-read split and real model costs
📝 Plan tool locks a per-task spec check at start
🎤 Voice models from any provider, cleaner TTS chunking
📰 WhatsApp newsletters from the tool surface
4 CONTRIBUTORS • 99 COMMITS • 43 FIXES • 31 FEATURES • 10,762 TESTS
Get it 🧵👇