Skip to content
Release Radar

Glamourous AI coding agent for the terminal

v0.96.1same day as v0.96.0
View on GitHub

Release history

v0.96.1

CompareGitHub

Quick little theme API adjustment

Hey! ICYMI we released support for themes a few hours ago. Before they get too widely adopted, we’re making one small breaking API change to the names of keys.:

insert_bg -> insert_code_bg delete_bg -> delete_code_bg

This is what it looks like in code:

{
  // ...
  "diff_insert_fg": "#629657",
  "diff_insert_code_bg": "#2d3431",
  "diff_insert_gutter_bg": "#282d2c",
  "diff_delete_fg": "#a45c59",
  "diff_delete_code_bg": "#33272d",
  "diff_delete_gutter_bg": "#2a232a",
  // ...
}

See ya! Charm 🎸

Changelog

Other stuff


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.96.1/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.96.1/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

Themes and more!

This release is HUGE and we are so excited to share what our team and contributors have done!

The long awaited feature!

<p><img width="800" alt="out" src="https://github.com/user-attachments/assets/656752be-6b87-4515-a3ab-68e43b655dd9" /></p>

Crush now has themes! 🎨 Open the new Themes dialog from the command palette to switch looks with live preview, try the built-in Gruvbox Dark, or create and edit your own custom palettes right inside the TUI. Thank @meowgorithm and @gurnben for this feature!

QoL and fixes

Small changes but no less important.

  • Hypercredits are now displayed in real time!
  • Added spaces to errors in chat by @taciturnaxolotl
  • Increased default timeout to 2 minutes by @andreynering
  • Fixed extended help, while in a mode by @meowgorithm
  • Fixed wrapping while displaying the plan
  • Fixed syntax highlighting on long bash calls by @taciturnaxolotl
  • More bang mode and bash tools improvement also by our favorite @taciturnaxolotl

See more below!

Happy week! Charm XX 💫

Changelog

New!

Fixed

Other stuff


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.96.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.96.0/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

Hello, Plan Mode

This release introduces many improvements but, most importantly, and a solid new feature from one of our very talented contributors:

Let’s plan

<p><img width="600" src="https://github.com/user-attachments/assets/8118b573-6d41-4cfd-a602-141b5e59f28e" /></p>

At last, thanks to the very talented work of @vadiminshakov and @andrinoff, we present the long awaited Plan Mode.

Plan Mode is for…planning. Talk to the agent, answer questions, and put together a plan and then, when you’re ready, get to to work. You can activate plan mode with <kbd>shift+tab</kbd>.

Juicing more perf

@andreynering and @taciturnaxolotl marched forward in the quest for max perf in this release. Details below.

That's all for now. See you soon!

Cheers, Charm xx 🌟

Changelog

New!

Fixed

Other stuff


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.95.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.95.0/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

Lil’ OpenAI-Compatible Protocol Fix

This is a hot little mini patch to fix a regression in OpenAI-compatible endpoints that could occur when turns were stopped partway through. This regression happened because we were furiously making improvements for the DeepSeek V4.X Flash series that you all cannot seem to get enough of!

Thanks also to the very patient @teddytennant who fixed a small bug around turning home dirs into ~s.

xoxo, Charm

Changelog


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.94.2/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.94.2/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

ChatGPT subs, non-interactive improvements, and a touch of perf

This is a pretty solid release with some nice contributions from both the Charm team and one of our fave contributors. Let's go!

Use your ChatGPT subscription in Crush

If you love Crush and your ChatGPT subscription you’ll love this release. Enjoy!

<img width="500" src="https://github.com/user-attachments/assets/8d171404-b982-45cd-9afe-124fea8f605c" />

Non-interactive mode: reasoning

Headless Crush users now get more control with a new --reasoning-effort flag in crush run. Go crazy and orchestrate to the max!

If you (or your agent) mistypes a reasoning effort you'll get the proper accepted values, too.

crush run --model "hyper/glm-5.3" --reasoning-effort "max"

<p><img width="700" src="https://github.com/user-attachments/assets/ffaecd31-6458-49f2-8fa3-40ef6760393d" /></p>

Shredding the perf

@taigrr contributed a bunch of solid performance improvements to scrolling and spinners. Mouse scroll events are coalesced, chat scrolls are memoized and the spinners all use a shared clock. This stuff is really good: check it out.

<p><img width="500" src="https://github.com/user-attachments/assets/f6ba708c-bee7-472f-8cad-36707217d1f7" /></p>

Choppin’ off 4MB

We also ripped the Swagger stuff from client-server mode with a hand-rolled—but fully OpenAPI v3.2.1 compliant—implementation. This shaved about 4MB off the binary and will nullify chances of in the long run. Thanks, Go type system!

Have a great weekend, Charm 💌

Changelog


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.94.1/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.94.1/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

Disable mouse support + more

Hey, how's your week going? We have a few changes today, including mostly fixes but also a few nice additions.

Disable mouse support

Want to disable mouse support in Crush? Feel lucky because our favorite contributor @timotheosh added just that.

With the config below you can achieve that. It's also possible to toggle it via the command palette dialog.

crushrc:

option ui mouse false

crush.json:

{ "options": { "tui": { "mouse": false } } }

<img width="600" alt="image" src="https://github.com/user-attachments/assets/ad64e680-d244-4e7e-9cb4-1b7fff6271ed" />

<img width="600" alt="image" src="https://github.com/user-attachments/assets/a2fd43cd-bb46-4326-93cf-596e5361d77d" />

Fixed UX for non-vision models

In some cases, Crush were allowing you to attach an image even when the selected model was not vision-capable. The attachment was then being silent dropped in the request.

Now, we're properly validating it and showing a message so you know when it's not supported.

Fixed some models on GitHub Copilot

On Copilot some models only works on the /responses endpoint: named GPT-6 Astra and the Grok models.

Fixed some models on OpenCode Zen & Go

OpenCode also require some models to use specific endpoints. Not every model support the /chat/completions endpoint; some require /responses or /messages.

We fixed this issue for the models OpenCode currently supports.

Fixed Sentry MCP + others

A misconfiguration made it impossible to authenticate with OAuth2 with a few the MCPs, including the Sentry MCP. This is now fixed!

Fixed potential memory leak

@caniko discovered a memory leak, specifically when discover_models: true is set. This issue was fixed!

To read the technical explanation, see #3162 and #3683.


See you in the next release! The Charm Team :tm:

Changelog


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.93.1/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.93.1/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

Compact Exit Banner + Mode

This release includes some fixes + an UX improvement.

Compact Exit Banner

It's now possible to configure the exits banner to more compact, if you so wish.

.crushrc:

option ui exit-banner compact
option ui exit-banner none
option ui exit-banner default  # default

crush.json:

{
  "options": {
    "tui": {
      "exit_banner": "compact"
    }
  }
}

Default:

<img width="467" height="216" alt="image" src="https://github.com/user-attachments/assets/d159cace-6bdd-46b9-94fc-2d93c23a8a13" />

Compact:

<img width="538" height="93" alt="image" src="https://github.com/user-attachments/assets/a75db291-a310-4fac-af7a-b001bf8f9c41" />

Agentic fixes

We made quite a few fixes to Fantasy to make it more stable and fix a few issues with some inference providers.

Small Bash config fix

@devYRPauli made a fix to the Bash config. When adding a model, --price-cache-create and --price-cache-hit were swapped but this issue is now addressed.

The Charm Team

Changelog

New!

Fixed

Docs

Other stuff


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.92.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.92.0/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

Fixed GitHub MCP + UI fixes

A small patch with a couple fixes.

Fixed GitHub MCP

The GitHub MCP stopped working in Crush in the recent days, but it's now working again.

We "sessionless": true (or --sessionless true) that some MCPs might need to work correctly. For GitHub MCP, we're enabling that automatically so it works without extra config for you.

Code indentation fixes

We fixed a couple bugs with wrong indentation in code in the UI. This could happen on tool calls previews or code inside markdown.

Example screenshots:

<details><summary>Before</summary> <p>

<img width="1054" height="554" alt="Screenshot 2026-08-26 at 11 28 55" src="https://github.com/user-attachments/assets/70377d02-cc31-401a-bf9e-39c686968b8d" />

</p> </details>

<details><summary>After</summary> <p>

<img width="954" height="554" alt="Screenshot 2026-08-26 at 11 39 35" src="https://github.com/user-attachments/assets/99dd82f2-9090-4277-803b-97c1394d4db9" />

</p> </details>

New Hyper models

Last news, we have 3 new models available in Hyper!

  • Qwen3.8-Flash
  • Qwen3.8-27B
  • Qwen3.8-2.4T-A95B

These are really good models, I hope you enjoy!

Don't know Hyper yet? Hyper is Charm's provider with a $20/m subscription. Check it out!

That's all for today. Keep crushing! Charm 💌

Changelog

Fixed


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.91.2/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.91.2/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

Small patch

Hello friends. This release address a few small issues.

MCP fixes

Our fave contributor @joestump did a couple fixes on how Crush handles MCPs to make it more reliable, specially when the MCP is mis-configured or mis-behaves.

UX fixes

@andrinoff also made a couple fixes:

  • Fixed <kbd>ctrl+a</kbd> after v0.91.0.
  • Improved copying by selection with wrapped lines
  • Added documentation on how to set a custom Catwalk URL

That's all for today. See ya! Charm

Changelog

Fixed

Docs

Other stuff


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.91.1/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.91.1/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

Text selection and better mouse support

Just a few QOL improvements to the prompt editor and session picker for the weekend!

Text selection

Hold <kbd>shift</kbd> and use the arrow keys or click and drag with your mouse to select text in the prompt editor. From there, you can use any of the fancy new shortcuts 👀

  • <kbd>ctrl+shift+a</kbd> selects everything
  • <kbd>ctrl+shift+c</kbd> copies the selection
  • <kbd>ctrl+shift+x</kbd> cuts the selection
  • <kbd>ctrl+shift+v</kbd> pastes text

Typing or pasting over selected text replaces it.

<p><img width="700" src="https://github.com/user-attachments/assets/9c68bd80-410b-43bd-aff0-6d1b1bd0d78e" /></p>

Mouse support in the session picker

We've been missing mouse support in the session picker for too long! You can now scroll through sessions with the mouse wheel, click an entry to select it, or double-click to open it.

<img width="700" src="https://github.com/user-attachments/assets/6648ffa4-dbb2-4a7f-b8ac-f226ec035789" />

A small Windows fix

Pressing a modifier key by itself could send some dialogs back to the top on Windows. They should stay put now.

Keep crushing! Charm 💌

Changelog

New!

Fixed

Other stuff


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.91.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.91.0/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

Tiny patch

This is a tiny release, but we thought it would be worth it.

  • Updated Bubble Tea with a couple fixes for some terminal emulators.
  • Updated Fantasy with fixes for AWS SSO and better cache hitting.
  • Fixed wrong background color on permissions dialog. This was a regression from adding Bash syntax highlighting on v0.89.0.
  • Updated our .gitattributes to make development easier on Windows. We're normalizing LF (instead of CRLF) as line breaks to fix some tests on Windows.

Changelog

Fixed

Other stuff


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.90.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.90.0/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

A couple QoL goodies

We're releasing a few Quality of Life :tm: enhacements for you. They're simple, but these simple improvements compound with time to make Crush better and better.

Hint on quitting Crush

When quitting Crush, you'll see a splash screen with a hind on how to quickly continue from the session you left.

<img width="468" height="351" alt="Screenshot 2026-08-12 at 16 41 43" src="https://github.com/user-attachments/assets/1b483466-f784-4176-9622-d3e4ca269839" />

Bash tool syntax highlighting

When displaying what Crush is running using the Bash tool, the shell command will now have syntax highlighting. It's a small addition, but definitely improves legibility.

Moo :cow:

<img width="862" height="561" alt="Screenshot 2026-08-12 at 16 47 25" src="https://github.com/user-attachments/assets/9a8a4523-7a50-4b27-a63c-fb96406f8c9b" />

ctrl+end to jump to bottom + follow

If you want to quickly jump to the bottom of the chat, you can now just press <kbd>ctrl+end</kbd>. This will also ensure Crush will follow the chat as new messages arrive.

MCP improvements

We enhanced things to make it more stable and fix a couple of edge-case bugs.

That's all for today. See you in the next release! Charm 💌

Changelog

New!

Fixed

Other stuff


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.89.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.89.0/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

It’s Time for a Bugfix Throwdown

This release is all about stability and quality of life with a buncha fixes around MCP, server-client, and odds and ends. Here's what’s inside:

  • UX: Typing clear in the command will match Summarize; thanks, @joestump!
  • LSP: @piakdev fixed a case where LSP could panic
  • MCP: Slow loading MCPs could block messages from being sent: we reduce default timeout
  • Server-Client: MCP OAuth didn't work in server-client mode; now it does
  • Server-Client: Clients in the same workspace could kill each other: not anymore
  • Server-Client: When the server is running over TCP keystrokes no longer hit the server and slow everything down
  • Hyper: Added various small improvements for better UX

Thanks for using Crush. Have good weekend! Charm 💌

Changelog

New!

Fixed

Docs

Other stuff


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.88.1/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.88.1/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

.crushrc is here!

Hey! Hope everybody had a great week. We were pretty productive at Charm and we're releasing some cool stuff today.

Bash configuration! (.crushrc)

Yep, .crushrc has come! You existing JSON config still works, but we just started migrating to something a lot more flexible!

An example on why this is cool: if you manage Crush config in a dotfiles repo, you can still have machine-specific overrides by using source to call a separate file that will be in your .gitignore. I'm sure there are many other use cases.

To read the full documentation on this, read this document.

See a snipped so you have an idea on how it looks:

# Add Ollama.
provider add ollama --type ollama --base-url "http://localhost:11434/v1"

# Register a model on Ollama.
model add ollama/llama3.3 --name "Llama 3.3" --context-window 128000

# Auto-approve some tools.
permissions allow view edit

# Add an MCP server
mcp add github \
  --type http \
  --url "https://api.githubcopilot.com/mcp/" \
  --header Authorization "Bearer $GITHUB_TOKEN"

# Load some extra config
source "$XDG_CONFIG_HOME/squid-config.sh"

# Change config based on the machine you're on.
if [[ $HOSTNAME == "babysquid" ]]; then
    option skill-path "$HOME/squid-skills"
fi

Want to give feedback? Join the #crush channel on Discord.

Better AWS Bedrock SSO support

@jan-xyz did a great job bringing this one to life!

When using AWS Bedrock via SSO, tokens expire with time and need to be refreshed. Crush now has a proper configuration and UX for authenticating, and it will appear whenever tokens need to be refreshed.

To read more about it, see #2886.

<img width="572" height="231" alt="Screenshot 2026-07-31 at 18 04 21" src="https://github.com/user-attachments/assets/993034d2-89d2-42f4-ba9c-30b01a1debd6" />

More reliable Agent Fetch

@sven2718 contributed with better retries in searches when they don't work in the first try. Searches will be more reliable now, specially when doing many in a short period of time.

Fix for Fable 5

@sven2718 also contributed with a fix for Fable 5. When Anthropic decides to reject your prompt for security reasons, we'll now a proper error message in Crush. Before, Crush would just stop without giving context on why.

Crush now compiles on IlluminOS

Never heard of IllumiOS? Neither none of us at Charm, but @timotheosh adjusted the code to ensure it compiles there now!

Go compiles to many environments, and it's always fun to see Crush working on more operating systems! By the way, do you know you can use Crush on Android? :robot:

Enhanced MCP OAuth

In the last release, we shipped support for OAuth authentication for MCPs.

@BrunoKrugel did a few fixes to make more MCPs that require OAuth work as expected.

Agentic fixes

Quite a few fixes were made to Crush as an agent as well. Some of these were made on Fantasy and brought to Crush.

New Hyper models

Not less important, we keep bringing updates to Hyper, which is more stable than ever and has Minimax M3 and Qwen3.7-Flash avalable now.


A lot happened this week! We hope you enjoy, and Keep Crushing :tm:! Charm

Changelog

New!

Fixed

Docs

…(truncated)

MCP OAuth, performance and more

Happy Friday everybody!

We're releasing some nice features for you so you can enjoy your weekend vibecoding. (Or not, stay outside :sun_with_face: and return to Crush on Monday! :smiley:).

MCP OAuth

That's it, it's finally here! Some of you have been asking for this for long.

This is required for some MCPs to work. Want to know to it set it up? Refer to this section into the README.

Thank @joestump and his agent @joestump-agent for this contribution. And of course, our favorite @taciturnaxolotl also helped.

Claude Channels MCP extension

@joestump (and his agent) also added an initial implementation to support the Claude Channels MCP extension, which means MCPs can now send notifications to Crush when certain events happen.

Give this a try if you're interested, and let us know how well it works for you.

Restored MCP prompts

MCP prompts were unintentionally disabled in a previous release, but they were now added back!

LSP performance boost

Another cool contrib was made by @TheJhyeFactor, who vastly improved the CPU and memory usage on handling LSP servers in large repositories!

See #3370 for a more in-depth explanation of the optimizations.

Bang mode performance boost

@TheJhyeFactor also improved performance of output streaming when running command in bang mode.

Check #3381 to see some benchmarking.

/etc/crush/crush.json

You read it right! Thank to @Muttaqin86 you can now have a system-wide Crush configuration on /etc/crush/crush.json.

The motivation for this was improving compatibility with NixOS.

Fixed Copilot + GPT-5.6

All three GPT-5.6 models (Sol, Terra and Luna) are now fixed when running via GitHub Copilot. Kudos to @nghiant03 for this!

That was a lot, but it's really fun to how much the community is enganged with Crush dev.

Keep Crushing! :tm: Charm

Changelog

New!

Fixed

Docs

Other stuff


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.87.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.87.0/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

LSP tools, scrollable sidebar, removable attachments + more

Hey all. We're starting the week in style by shipping some LSP stuff and more goodies.

Brand new LSP tools

These new LSP tools will allow the model to more accurately do some refactors:

  • lsp_rename - Rename a symbol and all its references in the project
  • lsp_replace_symbol - Replace, insert before/after, or delete an entire function/method/class by name

If something doesn't work as expected by the LSP, don't worry. We'll report an error to the model so it can fallback to using the edit tool.

Scrollable sidebar

This one is pretty cool. Got out-of-space in your sidebar? Don't worry, you can scroll its content now!

<p><img width="600" src="https://github.com/user-attachments/assets/dfceb292-45e5-4946-8f75-fc6659b75c46" /></p>

Keyboard:

  • When focused on the chat view: <kbd>l</kbd> or <kbd>right arrow</kbd> focuses on the sidebar
  • <kbd>j/k</kbd> or <kbd>up/down arrow</kbd> scrolls up and down
  • <kbd>g</kbd> scrolls to top <kbd>shift+g</kbd> scrolls to the bottom
  • <kbd>h</kbd> or <kbd>left arrow</kbd> focuses back on the chat view
  • <kbd>tab</kbd> always returns focus to the editor

Removable attachments

It's now possible to remove attachments with your mouse! Just click on the X button:

<img width="618" height="174" alt="Screenshot 2026-07-20 at 17 26 51" src="https://github.com/user-attachments/assets/d2dc816e-e273-4252-8efc-48543b06466b" />

Better Hyper OAuth

When authentication on Charm Hyper ™️ or GitHub Copilot you can now press <kbd>u</kbd> to copy the URL. This is needed for certain scenarios, like when using Crush over SSH, where it might not be possible to open the browser automatically.

<img width="574" height="413" alt="Screenshot 2026-07-20 at 17 33 21" src="https://github.com/user-attachments/assets/56ef14e5-276d-4106-b375-907bbaa5e534" />

Quit dialog hint

When rendering the quit dialog, we're now showing an hint that it's possible to skip the confirmation completely by simple pressing <kbd>ctrl+c</kbd> twice.

<img width="339" height="207" alt="Screenshot 2026-07-17 at 17 20 12" src="https://github.com/user-attachments/assets/886f1f59-3d00-42de-82d3-28ae44096d5f" />

Agent fixes

  • Reasoning effort level none is now working for Baseten models
  • Thinking blocks are now rendering for MiniMax M3 via OpenCode (thanks @marifcelik)

That's all for today. Keep crushing! Charm

Changelog

New!

Fixed

Other stuff


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.86.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.86.0/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./checksums.txt

If the output is Verified OK, you can safely use it to verify the checksums of other artifacts you downloaded from the rel

…(truncated)

If you have questions, we have answers

This release brings us a question tool (at last!) plus a bunch of bugfixes and niceties. Let's go!

The Question Tool

So! Crush now ships with a first class question tool, useful for when LLMs wanna grill you. The question tool comes in many forms, like single choice, multiple choice, free form text, and yes/no. Questions can be ganged together to build a form, too.

<p><img width="600" src="https://github.com/user-attachments/assets/81097b9b-6819-4e7d-9944-6ae771f6dab5" /></p>

What’s that you say? “Does it have mouse support?” Why, yes it does.

<p><img width="600" src="https://github.com/user-attachments/assets/75911693-49c9-4475-b812-935221337f5b" /></p>

What is this sorcery? Only @taciturnaxolotl knows. He solo’d this whole feature exclusively with open source models on Hyper.

Hurry up and wait

Ever put an LLM to work, only to forget about it and come back and wonder how long it's been cranking? @andrinoff sure did. Wonder no more.

<p><img width="411" alt="output" src="https://github.com/user-attachments/assets/a2e35914-d89f-4a77-97d6-3283f1de06a3" /></p>

And so much more

Like Prince in the 80s, @taciturnaxolotl continued his tour of awesomeness alongside @andreynering to make Crush better under the hood too:

  • Fixed: crush auth now works outside of client/server mode
  • New: Crush now auto retries auth under the hood when it fails
  • Improved: dialogues now render great on tiny screens
  • Perf: scrollbar optimizations for faster rendering
  • Perf: memoized markdown renderer for faster rendering
  • Perf: short circuit jq builtin operations if the turn was canceled before it started
  • Yay! OpenAI merged our PR upstream so we're back off our fork

Buckle up, we have a bunch more coming.

xoxo, Charm 💘

Changelog

New!

Fixed

Other stuff


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.85.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.85.0/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

Session affinity, for real this time

This bumps Fantasy upstream, which was missing in the last release to actually send session id headers in the last revision.

Enjoy! Charm 💘

Changelog


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.84.1/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.84.1/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

If you like caching and coding on your Android, you’ll love Crush v0.84.0

This is a mini release with two little niceties:

Cachemaxxing

Crush now sends the fabled x-session-affinity header (and x-session-id) in its requests. Supporting providers can pick the header up, pin the session to a given replica, and go cache wild. The session header is a hash with no personally identifiable information, of course.

Fixed: Termux

If you’re a nerd with an Android, you probably use Termux, the hot Android terminal emulator. If you’re a cool nerd, you probably want to use Crush on an Android and are annoyed that it was broken. Thanks to @Ricardo-M-L, Crush now works on Android again.

Hope you're having a great summer! Unless you're in South America, Central America, the Southern part of Mexico, parts of Africa or Australia, in which case…hope you're enjoying the Winter!

xoxo, Charm 🍔

Changelog

New!

Fixed


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.84.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.84.0/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.

Prep for GPT-5.6

GPT-5.6 should launch tomorrow, and this release is to ensure Crush is ready for when it happens.

Bang mode fix

We also included a UX small fix when navigating the history when previous prompts were Bash commands (using bang mode :tm:).

Charm 💘

Changelog

New!

Fixed

Other stuff


<details> <summary>Verifying the artifacts</summary>

First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:

wget 'https://github.com/charmbracelet/crush/releases/download/v0.83.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.83.0/checksums.txt.sigstore.json'

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' \
  --bundle 'checksums.txt.sigstore.json' \
  ./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!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.