← Crush
Crush v0.94.1
model2026-09-12 · official notes
Summary
- 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
Full notes
# 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.
```bash
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
* efba40b7bf88ca143587cbdebb74cf1b463c316a: feat: OpenAI oAuth (@andrinoff)
* 4a74b9e095792217e95867bf74c1aa86fef44ee2: fix(sessions): keep list position after deletion (#3769) (@ifsin)
* 33be610debb1eaf33bac40e0b089e1aa84d05602: fix: @meowgorithm review (@andrinoff)
* 63829edfa302a120d954866bada40e1ca9003ea8: fix: always emit tool results right after calls (#3743) (@andrinoff)
* cdc72006bf73e9d137516d3fa44c44d64ec192cf: fix: always show full bash command in tui, output stays collapsible (@andreynering)
* d25b5eee64b950bf8095506e312bc8f46b77cc26: fix: colorize CLI mode and use localhost URL (@andrinoff)
* 45a45c5cc1768bf70c6ee5cb02760c3111eb6133: fix: do not remove from API catalogue (@andrinoff)
* 80ebee418ceb66d79c0a2edd5a37f798a43e84e5: fix: dropped reasoning effort (#3748) (@andrinoff)
* 074e41e18e794b578566ab14f43eedf844f6e2a7: fix: keep scroll position when expanding or collapsing chat items (@andreynering)
* 094ac5db6dd347dd204f1b940b57e02f90e5c836: fix: match ex. anthropic UI on choice (@andrinoff)
* 04eed5d491a91b80fb17a2849a30df0c521c8708: fix: refine first page (@andrinoff)
* 652f74ffe2773b975aa8e74c8f51b973f0ddbaa9: fix: remove re-routing logic (@andrinoff)
* 3a84d5e726fe5a03ddfc439129cd43f28282ba1a: fix: remove the Sign In with ChatGPT in catalogue (@andrinoff)
* 616c17ba8a762656fa18a36ea504a35cf93e4ab8: fix: remove the separate sections (@andrinoff)
* 833bef6306750976921f30fee17b834aff6a9d45: fix: show content in full when collapsing would hide only one line (@andreynering)
* bb33cee2d32780cb5afa31fc3aa815302b9f7443: chore(event-bus): make event fan-in helpers generic methods (#3768) (@taigrr)
* 8829832414aeb363f095e804c60c23baf7555b06: chore: bump fantasy (@andrinoff)
* e5687e2d97eee9952bbe4fd6c79dc8949251ebf4: chore: lint (@andrinoff)
* 8db8331c38ccc7e9434bc4317bd5b67244029b8d: noninteractive: add --reasoning-effort flag with model validation (@meowgorithm)
* 18447d5fe71733c3d06ff94ad534aa8fb0e5a94a: oauth-cli: adjust inline logout TUIs (@meowgorithm)
* bc3931c8ab45965b22817eb43b1a51af242bbf1f: oauth-cli: overhaul and unify oauth TUIs (@meowgorithm)
* 7a63cb157a77079507b4eb54d9cc5a4e5a8e5fad: oauth-ui: small nudges (@meowgorithm)
* e2f077cd157c0853ca955bb4c423d5914b05f093: oauth-ui: use ChatGPT instead of OpenAI in the auth dialog copy (@meowgorithm)
* c21c7c45f1db69fb8e95beb80faffc9ea5ba0d3e: refactor: replace swaggo annotations with a Go-native endpoint registry (@meowgorithm)
* 8ce2bdfb6da9f1375f99510678e053fb37bf47f7: ui-perf: drive all spinners from one shared animation clock (@taigrr)
* 0ffab3f772bf02bf503e2636769ae4a1f5334367: ui-perf: memoize rendered frames for scroll-only updates (@taigrr)
* 35b5f8777681fc991521c5621f5664998b71b4f7: ui-perf: stop coalesced wheel scrolls from rewinding to the selection (@taigrr)
---
<details>
<summary>Verifying the artifacts</summary>
First, download the [`checksums.txt` file](https://github.com/charmbracelet/crush/releases/download/v0.94.1/checksums.txt) and the [`checksums.txt.sigstore.json` file](https://github.com/charmbracelet/crush/releases/download/v0.94.1/checksums.txt.sigstore.json) files, for example, with `wget`:
```bash
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`](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).
Weekly digest: every breaking change, retirement and price change across 20+ coding agents, one email.
Form not loading? Subscribe here.