v0.93.1

charmbracelet/crushv0.93.1Sep 9, 2026by github-actions[bot]

AI Summary

This release introduces a configuration option to disable mouse support, improves UX for non-vision models by validating image attachments, and fixes critical bugs including a memory leak and authentication issues with the Sentry MCP.

Key Highlights

  • Added ability to disable mouse support via `crush.json` or `crushrc` configuration.
  • Fixed UX for non-vision models to prevent silent image dropping and show validation messages.
  • Resolved model routing issues for specific providers like GitHub Copilot (GPT-6 Astra, Grok) and OpenCode Zen.
  • Fixed OAuth2 authentication failures for the Sentry MCP and other providers.
  • Resolved a memory leak occurring when `discover_models: true` is enabled.

New Features

  • Disable mouse support in the TUI interface.
  • Show routed model information in hyper mode.
  • Validation feedback for image attachments on non-vision models.

Full Release Notes

## 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`:

```bash
option ui mouse false
```

`crush.json`:

```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](https://mcp.sentry.dev/). 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

* fix(clipboard): only report copy success if it happens by @taciturnaxolotl in https://github.com/charmbracelet/crush/pull/3682
* fix: stop long reasoning traces from running away with the heap by @taciturnaxolotl in https://github.com/charmbracelet/crush/pull/3683
* fix(config): honor providers.json when auto-update is disabled by @kvnloo in https://github.com/charmbracelet/crush/pull/3693
* fix: inline code copying by @andrinoff in https://github.com/charmbracelet/crush/pull/3678
* fix: flickering screen when inline code was present by @andrinoff in https://github.com/charmbracelet/crush/pull/3708
* fix(copilot): route grok models through responses api by @DaVinci42 in https://github.com/charmbracelet/crush/pull/3705
* fix(discover): keep a user-set supports_attachments in the LM Studio enricher by @devYRPauli in https://github.com/charmbracelet/crush/pull/3703
* fix: assign models from opencode zen by @andrinoff in https://github.com/charmbracelet/crush/pull/3718
* fix(list): keep AtBottom honest when the top item is taller than the viewport by @taciturnaxolotl in https://github.com/charmbracelet/crush/pull/3720
* fix: make timeout configurable by @andrinoff in https://github.com/charmbracelet/crush/pull/3677
* feat(hyper): show the routed model that served each turn by @andreynering in https://github.com/charmbracelet/crush/pull/3713
* fix(copilot): route GPT-6 Astra through Responses API by @DaVinci42 in https://github.com/charmbracelet/crush/pull/3724
* docs(db): fix timestamp unit comments in initial migration by @LarsArtmann in https://github.com/charmbracelet/crush/pull/3576
* fix(config): resolve the provider cache through the global data dir by @devYRPauli in https://github.com/charmbracelet/crush/pull/3738
* feat(tui): add option to disable mouse support by @timotheosh in https://github.com/charmbracelet/crush/pull/3542
* fix: keep `top_k` for known custom providers by @jackgene in https://github.com/charmbracelet/crush/pull/3736
* chore: add CC-BY-4.0 to allowed licenses by @andrinoff in https://github.com/charmbracelet/crush/pull/3755
* fix: do not upload images if vision is not supported by @andrinoff in https://github.com/charmbracelet/crush/pull/3754
* fix: bump mcp sdk by @andrinoff in https://github.com/charmbracelet/crush/pull/3716
* fix(alibaba): do not send `enable_thinking` when we have an effort by @andreynering in https://github.com/charmbracelet/crush/pull/3758
* chore(deps): migrate `mvdan.cc/sh/moreinterp` to `mvdan.cc/sh/x` by @andreynering in https://github.com/charmbracelet/crush/pull/3761

---

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

First, download the [`checksums.txt` file](https://github.com/charmbracelet/crush/releases/download/v0.93.1/checksums.txt) and the [`checksums.txt.sigstore.json` file](https://github.com/charmbracelet/crush/releases/download/v0.93.1/checksums.txt.sigstore.json) files, for example, with `wget`:

```bash
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`](https://github.com/sigstore/cosign):

```bash
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`:

```bash
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](https://x.com/charmcli), [Discord](https://charm.land/discord), [Slack](https://charm.land/slack), [The Fediverse](https://mastodon.social/@charmcli), [Bluesky](https://bsky.app/profile/charm.land).