Reasoning controls, “offline mode”, tool disabling and so much more!
There's a bunch of good stuff in Crush v0.8.0. ⚡️
tl;dr you can now:
- Change OpenAI reasoning in-app
- Disable provider auto-updates and be totally offline
- Search by provider in the model chooser
- Disable tools
We also squashed a buncha bugs. Read on for more info!
Setting reasoning with OpenAI models
For the OpenAI models that support reasoning, you can now choose which level of reasoning you want to use inside the TUI. Before this release, it was possible only by manually editing crush.json
.

Wanna turn off provider auto-updating? Now you can.
The most upvoted issue on our repo is finally closed. Some of you wanted what was called "offline mode", which essentially prevents Crush from fetching provider and model updates from https://catwalk.charm.sh/*
. This is particularly important for users in environments where internet access is restructed.
On this release, we're adding a setting to disable this auto-update mechanism. You can do that by adding the setting below to your crush.json
or by setting CRUSH_DISABLE_PROVIDER_AUTO_UPDATE
.
export CRUSH_DISABLE_PROVIDER_AUTO_UPDATE=1
By default, when set, Crush will use the embedded providers bundled at the time of the Crush release. If you need to manually update that, we now also introduced a new command crush update-providers
to manually run the update when you can:
# Update providers remotely from Catwalk
crush update-providers
# Update providers from a custom URL
crush update-providers https://example.com/
# Update providers from a local file
crush update-providers /path/to/local-providers.json
# Update providers from embedded version
crush update-providers embedded
Better model search
The model chooser filter will now match the provider name and handle multiple words well, making it really easy to find that "one model from that one provider."

Disable specific tools
If you want to disable specific tools for whatever reason, it is now possible by adding the following to your config.json
:
// ~/.config/crush/crush.json
{
"options": {
// All available listed as example.
// Only include the ones you want to disable.
"disabled_tools": [
"bash",
"download",
"edit",
"fetch",
"glob",
"grep",
"ls",
"multiedit",
"sourcegraph",
"view",
"write",
]
}
}
Fixed double key press on Windows
Whoops, there was regression in the last release is fixed where, in Windows terminals that are not Windows Terminal, some key presses were being registered twice. This is now fixed.
That's all folks!
That's all for today! Keep crushing and see you in the next release! 💘
Changelog
New!
- ad50cf4: feat(config): define disabled tools option which filters out agent tools access (#1016) (@tauraamui)
- c0edda6: feat: add
crush update-providers
command (@andreynering) - 230e4de: feat: add ability to disable providers auto-update from catwalk (@andreynering)
- 3710b3c: feat: add reasoning dialog (@kujtimiihoxha)
Fixed
- 49a1e21: fix: add else (@kujtimiihoxha)
- f186e58: fix: add mcps after the filter (@kujtimiihoxha)
- 8e0d9b5: fix: agent tool not working when switching models (@kujtimiihoxha)
- 15fe8df: fix: allow multi word search (@kujtimiihoxha)
- 6da6c7d: fix: allow searching by provider name (@kujtimiihoxha)
- 8d46cf0: fix: fix agent (@kujtimiihoxha)
- fb5e058: fix: fix the group search (@kujtimiihoxha)
- 6766386: fix: handle providers that do not send unique tool call IDs (@kujtimiihoxha)
- 861db84: fix: improve group filtering (#1024) (@caarlos0)
- bab2bec: fix: set reasoning param when selecting model (@kujtimiihoxha)
Docs
- dc5475f: docs(readme): add bluesky to socials (@andreynering)
- 04b5710: docs(readme): document how to disable providers auto-update (@andreynering)
Other stuff
- 4561c2a: chore: bump ultraviolet to fix double encoding keys on windows (@aymanbagabas)
- 9bc8c6b: chore: do not hide the reasoning content (@kujtimiihoxha)
- 9c3a1b4: chore: lint (@kujtimiihoxha)
- bd4503e: chore: provider error message copyedit (#1029) (@meowgorithm)
- c571aef: chore: refactor (@kujtimiihoxha)
- c7d3335: chore: remove duplicate tools (@kujtimiihoxha)
- 2e2b743: chore: revert ctx change (@kujtimiihoxha)
Verifying the artifacts
First, download the checksums.txt
file, for example, with wget
:
wget 'https://github.com/charmbracelet/crush/releases/download/v0.8.0/checksums.txt'
Then, verify it using cosign
:
cosign verify-blob \
--certificate-identity 'https://github.com/charmbracelet/meta/.github/workflows/goreleaser.yml@refs/heads/main' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--cert 'https://github.com/charmbracelet/crush/releases/download/v0.8.0/checksums.txt.pem' \
--signature 'https://github.com/charmbracelet/crush/releases/download/v0.8.0/checksums.txt.sig' \
./checksums.txt
If the output is Verified OK
, you can safely use it to verify the checksums of other artifacts you downloaded from the release using sha256sum
:
sha256sum --ignore-missing -c checksums.txt
Done! You artifacts are now verified!
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.