Repository navigation
Releases: charmbracelet/crush
Release list
nightly
Verifying the artifacts
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/nightly/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/nightly/checksums.txt.sigstore.json'Then, verify it using cosign:
cosign verify-blob \
--certificate-identity-regexp '^https://github.com/charmbracelet/crush/\.github/workflows/(release|nightly)\.yml@' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--bundle 'checksums.txt.sigstore.json' \
./checksums.txtIf 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.txtDone! You artifacts are now verified!
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v0.98.2
Keanu, OAuth re-sign-in and a crash fix
This patch was brought to you by our team and our favorite contributors!
The Keanu Theme
Caution
This will make you feel like a hacker
A theme made by @andreynering 🎉 💻
Fixed!
• Fixed a crash when parallel tool calls finish together, by @andreynering
• Fixed OAuth sign-in and credential refresh, by @taciturnaxolotl
• Ctrl+C now interrupts startup, and custom provider model discovery no longer stalls it, by @taciturnaxolotl
• Fixed server prompts and permission requests being scoped to the wrong session, by @meowgorithm
• Fixed the TUI status, spinner and tool-header display, by @taciturnaxolotl
Good luck, Charm XX
Changelog
New!
- cd5f15d: feat(openrouter): send app attribution headers and session_id for sticky routing (#4115) (@Lee-Si-Yoon)
- a8a8ec8: feat: add a built-in
keanutheme (#3955) (@andreynering) - 78b6edb: feat: publish optional signed Packslip release manifests (#4085) (@jdx)
Fixed
- 20e73b4: fix(agent): ask every OAuth sign-in to sign in again on a 401 (@taciturnaxolotl)
- 02336b1: fix(agent): give sub-agents the renewed credential after a refresh (@taciturnaxolotl)
- acbf1a7: fix(agent): prevent crash when parallel tool calls finish together (#4129) (@andreynering)
- a299286: fix(agent): publish run-complete when a run fails during setup (@taciturnaxolotl)
- ddf6f26: fix(auth): ask for a new sign-in whenever a provider rejects the credential (@taciturnaxolotl)
- e660fd9: fix(auth): stop retrying a refresh token the provider already refused (@taciturnaxolotl)
- 510f6ea: fix(bash): stop finished jobs from using up the background job budget (#3869) (@taciturnaxolotl)
- 8fa35a0: fix(ci): remove duplicate permissions block that broke the release workflow (@taciturnaxolotl)
- 94f9364: fix(ci): scope workflow token permissions to least privilege (@taciturnaxolotl)
- 00560ce: fix(lint): stop gofumpt versions fighting over the session pager return (#4088) (@taciturnaxolotl)
- b0f7811: fix(login): open the browser as a command so tests never launch it (#4071) (@taciturnaxolotl)
- 1dbd303: fix(tools): create parent dirs only after write permission is granted (@taciturnaxolotl)
- d65d685: fix(tools): drop empty images instead of failing the whole request (#3891) (@taciturnaxolotl)
- f530936: fix(tools): let the agent recover from failed web requests (#4086) (@andreynering)
- 6a12bc6: fix(ui): bring back the chat scrollbar's auto-hide (#4084) (@andreynering)
- 0b75089: fix(ui): end a turn when the agent says the run is over (@taciturnaxolotl)
- 12f96b4: fix(ui): give every status message its own time on screen (#3896) (@taciturnaxolotl)
- 6eb6910: fix(ui): keep the background flag colored in the bash tool header (@taciturnaxolotl)
- fdcc7a1: fix(ui): keep the question gutter bar unbroken when a choice wraps (@taciturnaxolotl)
- a48dabe: fix(ui): keep the terminal's done and error status from vanishing (#4046) (@taciturnaxolotl)
- c89ef9d: fix(ui): show grep search parameters in pending tool state (#2070) (@LarsArtmann)
- ddf6ccc: fix(ui): show the turn spinner from the moment a prompt is sent (@taciturnaxolotl)
- c446d3f: fix: grype (#4062) (@andrinoff)
- 17e428f: fix: let Ctrl+C interrupt Crush startup (@taciturnaxolotl)
- 1f5d7f0: fix: measure provider silence only (#4031) (@andrinoff)
- 623ba43: fix: never leave a tool call waiting for an answer that cannot come (@taciturnaxolotl)
- 17fccc0: fix: show which model answered Prism-routed session summaries (#4116) (@andreynering)
Docs
- 205e2fa: docs(install): note npm supports macOS, Linux, and Windows (#3195) (@truffle-dev)
- 7572704: docs: Updated hooks config from legacy crush.json syntax (#3956) (@KevinFumbles)
- f5aa293: docs: add missing XAI_API_KEY to environment variables table (#3291) (@albatrossflyon-coder)
- 646d2bc: docs: fix capitalization in the beginning sentence and word abbreviation (@afsuyadi)
- f68ddeb: docs: fix missing apostrophe (@afsuyadi)
- 3e0b0bf: docs: fix mistyped word in comment line (@afsuyadi)
- 2ecab34: docs: fix typos in README.md (#3816) (@cloudcodec)
- b46cd7a: docs: remove the free subscription (#4128) (@andrinoff)
- dd3018e: docs: replace gpt-4 in the Nix configuration example (@pcbeingused333)
Other stuff
- 37a60b5: Fix typo in data retention description (#3560) (@cobein27)
- 0c16d5f: chore: auto-update files (@charmcli)
- 7ba09f3: chore: auto-update files (@charmcli)
- 699ceeb: chore: auto-update files (@charmcli)
- c32b779: chore: gofumpt (@andreynering)
- 7dadde0: perf: stop custom provider model discovery from stalling startup (@taciturnaxolotl)
- 80374e7: server: broadcast prompt events that carry an empty session ID (@meowgorithm)
- f1425bd: server: fail open prompts for clients that never report a session (@meowgorithm)
- e890891: server: memoize root session resolution per workspace (@meowgorithm)
- 305e072: server: scope permission/question prompts to the current session (@meowgorithm)
Verifying the artifacts
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.98.2/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.98.2/checksums.txt.sigstore.json'Then, verify it using cosign:
cosign verify-blob \
--certificate-identity-regexp '^https://github.com/charmbracelet/crush/\.github/workflows/(release|nightly)\.yml@' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--bundle 'checksums.txt.sigstore.json' \
./checksums.txtIf 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.txtDone! You artifacts are now verified!
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v0.98.1
Tiny patch
This fixes new GPT-6 models via Copilot!
Enjoy,
Charm XX 💫
Changelog
Fixed
- 8584922: fix: route newer Copilot models through the Responses API (#4048) (@DaVinci42)
Verifying the artifacts
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.98.1/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.98.1/checksums.txt.sigstore.json'Then, verify it using cosign:
cosign verify-blob \
--certificate-identity-regexp '^https://github.com/charmbracelet/crush/\.github/workflows/(release|nightly)\.yml@' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--bundle 'checksums.txt.sigstore.json' \
./checksums.txtIf 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.txtDone! You artifacts are now verified!
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v0.98.0
Rex, OSC 7501, xAI/Grok OAuth and more
Hey! There’s some good quality of life stuff in this release. Let’s take a look!
It’s Rex Time
Following an update on Bubbletea Crush now supports the Program Status Protocol, aka OSC 7501, created by Superlogical for Rex! As a bonus, TUIOS also supports the protocol.
x.AI OAuth
Now Crush supports Grok OAuth login. Enjoy!
Many more fixes
A lot of fixes were introduced this version:
- Server side improvements by @meowgorithm
- External editor swallowing empty buffer
- Models behind OAuth couldn't be used if they weren't in Catwalk
- Fixed MCP toggled misbehavior
And a lot more from @taciturnaxolotl. Read all below!
Good luck,
Charm XX 👋🏻
Changelog
New!
- 19e7dd4: feat: OSC 7501 (#4041) (@andrinoff)
- 30145cb: feat: grok OAuth (#3833) (@andrinoff)
Fixed
- 8b1d542: fix(mcp): keep sessions alive when a server doesn't support ping (#4033) (@taciturnaxolotl)
- ca6ae26: fix(ui): keep multi-line tool output aligned under sub-agent branches (#4019) (@taciturnaxolotl)
- 5e3fe4b: fix(ui): render multiline question answers as one line (#4020) (@taciturnaxolotl)
- 76cc5c5: fix(ui): stop the attachment row from claiming files that are visible (@taciturnaxolotl)
- 011a941: fix: Toggle MCPs bug with global and local (#4042) (@andrinoff)
- 5f295a6: fix: change anim colors on previewTheme too (#4015) (@andrinoff)
- 65865e0: fix: exclude signing from test (#4035) (@andrinoff)
- b4dd6e6: fix: openEditor swallowing an empty buffer (#4007) (@andrinoff)
- 140e8cb: fix: stop intermittent CI test failures across all three platforms (#4034) (@taciturnaxolotl)
Other stuff
- bdcf796: chore: auto-update files (@charmcli)
- 73d1a50: chore: jailbreak crush out of the meta repo (#4008) (@andrinoff)
- 2fbaa90: perf(prompt): read the current git branch without spawning a shell (@taciturnaxolotl)
- 08984f5: refactor(ui): poll the git branch off the render path (@taciturnaxolotl)
- ee76ff2: server: add deadline to MCP fetch so hung server won't freeze UI (@meowgorithm)
- 5b7377b: server: add support for git branches (@meowgorithm)
- 263a020: server: back off MCP starting-state retries (@meowgorithm)
- 3297f43: server: fix behavior where MCP status would not update in the UI (@meowgorithm)
Verifying the artifacts
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.98.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.98.0/checksums.txt.sigstore.json'Then, verify it using cosign:
cosign verify-blob \
--certificate-identity-regexp '^https://github.com/charmbracelet/crush/\.github/workflows/(release|nightly)\.yml@' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--bundle 'checksums.txt.sigstore.json' \
./checksums.txtIf 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.txtDone! You artifacts are now verified!
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v0.97.1
Tiny patch
Removed the glyph for Git branch display, as it won't display on when nerdfonts are not available.
Changelog
Fixed
- f2d66d2: fix: remove the powerline symbol (@andrinoff)
Verifying the artifacts
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.97.1/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.97.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.txtIf 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.txtDone! You artifacts are now verified!
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v0.97.0
Crushed It!
This release introduces many new features that improve QoL by a ton! Brought to you by Charm and our favorite contributors!
Toggle MCPs
Thanks to awesome @BrunoKrugel, you can now turn off MCP servers from the UI, globally, or locally.
Git Branches
At last: @taciturnaxolotl and @Gustave-241021 have brought Git branch display to Crush, which is so useful.
More UI and QoL changes:
- ChatGPT OAuth now refreshes with Catwalk
- Claude Channels, part 2/3 by @joestump
- Toggle Sidebar on and off with ctrl+b by @andreynering
- Quit dialog improvements and mouse support by @meowgorithm
Fixed!
- Fixed clipboard false reporting successful copies by @taciturnaxolotl
- Count Anthropic cache-creating tokens by @yanyukang2003-ux
- Correctly resolving the project data directory in session and stats by @devYRPauli
This release is filled with improvements! Read more below!
See you next time,
Charm XX 🔆
Changelog
New!
- a9a257c: feat(mcp): Allow toggle MCPs on/off (#3725) (@BrunoKrugel)
- 2da6f78: feat(tui): display git branch (#2437) (@Gustave-241021)
- 564d14e: feat: Claude Channels delivery — session injection, exactly-once routing, reply-back (2/3) (#3346) (@joestump-agent)
- 62de0de: feat: toggle the sidebar with ctrl+b (#3935) (@andreynering)
Fixed
- a98394f: fix(agent): count Anthropic cache-creation tokens (#3841) (@yanyukang2003-ux)
- 4ab302d: fix(clipboard): stop reporting successful copies as failures (#3952) (@taciturnaxolotl)
- 00b33e4: fix(cmd): resolve the project data directory in session and stats (#3936) (@devYRPauli)
- fded9d7: fix: reload OpenAI OAuth with Catwalk (#3949) (@andrinoff)
- 1f3827b: fix: reorder migrations (@taciturnaxolotl)
Other stuff
- 06e50a3: chore: auto-update files (@charmcli)
- 8b1139b: chore: auto-update files (@charmcli)
- 7265494: chore: fantasy v0.45.1 (@andreynering)
- e3dc6d2: ui: add mouse support to the quit dialogue (@meowgorithm)
- 04a2cd8: ui: align quit dialog button hit regions with centered row (@meowgorithm)
- 6f1fd61: ui: cover quit dialog mouse buttons and hover reporting in tests (@meowgorithm)
- 5c6dd66: ui: keep quit dialog buttons visible in small terminals (@meowgorithm)
- f043451: ui: report all mouse motion while hoverable dialogs are open (@meowgorithm)
Verifying the artifacts
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.97.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.97.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.txtIf 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.txtDone! You artifacts are now verified!
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v0.96.1
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
- 56abdfa: themes: prefix diff theme keys with diff_ (@meowgorithm)
- a88b573: themes: small adjustments to the key names in the theme API (@meowgorithm)
Verifying the artifacts
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.txtIf 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.txtDone! You artifacts are now verified!
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v0.96.0
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!
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!
- b07464e: feat(hyper): live display of hypercredits (#3699) (@andrinoff)
- f38b794: feat: add theme support (#3884) (@gurnben)
Fixed
- 051fb37: fifix(ui): color the to-do task name while the tool is still running (@taciturnaxolotl)
- b8e93d1: fix(bash): let the agent recover truncated tool output (@taciturnaxolotl)
- 10ec02a: fix(shell): bound bang-mode output and spill the rest to a file (@taciturnaxolotl)
- 2019da1: fix(tui): unfreeze spinner clock when the boot busy probe lands (#3839) (@andreynering)
- 242b4d3: fix(ui): drop the empty gap under a failed edit (#3851) (@taciturnaxolotl)
- e41ae8e: fix(ui): keep syntax highlighting across a wrapped tool parameter (#3850) (@taciturnaxolotl)
- eb845a9: fix(ui): nudge the yolo/plan badges + align help (#3863) (@meowgorithm)
- fd58b5e: fix(ui): read the session transcript off the event loop (@taciturnaxolotl)
- 87a5bbd: fix(ui): set the finish banner off from the message above it (#3815) (@taciturnaxolotl)
- 9636af6: fix: wrapping in plan display (#3888) (@andrinoff)
Other stuff
- 239d006: chore: auto-update files (@charmcli)
- 3bc8ff4: chore: auto-update files (@charmcli)
- 27a53ef: chore: auto-update files (@charmcli)
- 5911679: chore: bump devShell to Go 1.27 (#3832) (@LarsArtmann)
- 460653a: chore: double default request timeout from 60 to 120 seconds (#3862) (@andreynering)
- d55e017: perf(agent): read only the post-summary tail of a compacted session (@taciturnaxolotl)
- 978d49d: perf(db): cap prompt history at the 200 most recent messages (@taciturnaxolotl)
- 296b5c3: perf(db): index messages by role so user-message reads stop scanning (@taciturnaxolotl)
- 595f625: perf(message): decode message parts in one structural pass (@taciturnaxolotl)
- 9207cb2: perf(ui): skip the global prompt-history scan when a session is loading (@taciturnaxolotl)
Verifying the artifacts
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.txtIf 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.txtDone! You artifacts are now verified!
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v0.95.0
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
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 shift+tab.
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!
- 1648f10: feat: add plan mode (#2822) (@vadiminshakov)
Fixed
- 051fb37: fifix(ui): color the to-do task name while the tool is still running (@taciturnaxolotl)
- 2019da1: fix(tui): unfreeze spinner clock when the boot busy probe lands (#3839) (@andreynering)
- fd58b5e: fix(ui): read the session transcript off the event loop (@taciturnaxolotl)
Other stuff
- d55e017: perf(agent): read only the post-summary tail of a compacted session (@taciturnaxolotl)
- 978d49d: perf(db): cap prompt history at the 200 most recent messages (@taciturnaxolotl)
- 296b5c3: perf(db): index messages by role so user-message reads stop scanning (@taciturnaxolotl)
- 595f625: perf(message): decode message parts in one structural pass (@taciturnaxolotl)
- 9207cb2: perf(ui): skip the global prompt-history scan when a session is loading (@taciturnaxolotl)
Verifying the artifacts
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.txtIf 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.txtDone! You artifacts are now verified!
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v0.94.2
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
- 6f67099: fix(home): require path boundary when shortening or expanding ~ (#3552) (@teddytennant)
- 066f444: openaicompat: bump fantasy to fix regression around reasoning-only turns (@meowgorithm)
Verifying the artifacts
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.txtIf 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.txtDone! You artifacts are now verified!
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.






