github charmbracelet/crush v0.57.0

latest release: nightly
19 hours ago

Session Hardening, Token Savings and More

There are a bunch of solid housekeeping improvements in this release, including opt-in token savings and some serious work on session integrity and guarding against session corruptions.

Fewer Tokens (Preview)

In this release we're introducing a new flag that reduces the size of tool call descriptions by about 98%, which we're estimating will save about 120K tokens/session! The tl;dr is that LLMs are a lot better nowadays at tool descriptions and shorter descriptions will do.

We're just keeping this behind a flag a bit to test more models with it, but find it generally works well for most models. If you want to opt-in, just do:

export CRUSH_SHORT_TOOL_DESCRIPTIONS=1

Session Hardening

When a session becomes corrupted, things really suck. This release contains two fixes to prevent that:

  • Crush will now detect malformed image data and gracefully handle it so the session doesn't break. This is a common situation when doing frontend web development, including using MCPs, like Figma's MCP.
  • Prior to this fix, tool calls could fire off while streaming, which could result in tool results without tool calls. This would in turn result in a corrupted sessions. Not anymore!

Better skill discovery

@huaiyuWangh came in hot with another solid patch, this time improving how Crush discovers and parses your skills, particularly in non-latin contexts (e.g. Chinese, Japanese, Korean, Arabic, and so on).

Crush Info Improvements

The crush_info tool also got a little bit smarter, and now show your attribution settings.

If you don't yet know, crush_info is a tool available for the model that shows your current Crush configuration. It's one of the things that helps Crush to debug and configure itself. Pair it with crush_logs and the crush-config skill and you'll find Crush is quite self aware!

That's all for today! Keep Crushing and see you in the next release.

Charm™

Changelog

New!

Fixed

Other stuff


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.57.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.57.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!

The Charm logo

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

Don't miss a new crush release

NewReleases is sending notifications on new releases.