Skip to content

Releases: charmbracelet/crush

v0.60.0

17 Apr 16:55
v0.60.0
f1a931d

Choose a tag to compare

👀

Changelog

New!


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

v0.59.0

16 Apr 21:21
v0.59.0
ce34984

Choose a tag to compare

Skills in sidebar, built-in jq, performance

Hey all! We hope you're having a great week!

Today's release is very cool, with some nice goodies ✨, let's check them out!

Skills sidebar

Crush will now show, in the sidebar, which skills are available. Very useful feature contributed by @huaiyuWangh to help discoverability.

Screenshot 2026-04-16 at 18 20 40

Built-in jq

Do you know jq? It's a very popular CLI to query JSON files from the terminal. It's very useful for agents when models want to search inside a big JSON file.

Crush will now include jq built-in, which means Crush can use it even when it's not installed in your machine! Additionally, we're including a built-in jq skill to instruct the model on how to use it.

Huge kudos to @itchyny for implementing gojq, the jq port to Go we're using internally for this! 👏

Fixed CPU spike

Many thanks to @Chronostasys who fixed a bug in Ultraviolet that affected Crush. The presence of wide-characters (non-Latin languages or emojis) could result in a CPU spike.

Progress bar on Rio

You know Rio Terminal? (If not, you should). It recently got support for progress bar feedback, so we just enabled it for Rio as well.

See ya 👋
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.59.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.59.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.

nightly

17 Apr 01:01
ce34984

Choose a tag to compare

nightly Pre-release
Pre-release

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

v0.58.0

15 Apr 21:04
v0.58.0
f1460a4

Choose a tag to compare

Small Patch

✨ Hey everyone! This is mostly a small update with a couple good fixes:

So long, tea_debug.log

The previous release would litter tea_debug.log file around. Wow! No longer.

Você fala inglês?

Prior to this release, smaller models would respond to the user in Portuguese regardless of what language they were using. As much as we love capoeira, we fixed the prompt so it doesn't do that anymore. 😅

Funny bug, eh? We had told the model to respond in the same spoken language as prompted, with a Portuguese example, and the less capable models saw the Portuguese and ran with it. Bom demais!

See ya!
Charm

Changelog


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

v0.57.0

13 Apr 20:58
v0.57.0
9847be2

Choose a tag to compare

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.

v0.56.0

08 Apr 20:17
v0.56.0
56e2ff6

Choose a tag to compare

Crush better at Crush

You might have noticed that on v0.55.0 we added a built-in skill to instruct Crush on how to configure itself. Adding a custom provider, LSP or MCP; changing settings, etc. can be easily done with prompts.

In this release, we added two new tools to help Crush debug itself:

  • crush_info: Returns configuration, so Crush can see what is in the final configuration with all config files merged.
  • crush_logs: Show logs from Crush itself. Helps Crush to debug itself in case something is now working right.

Of course, the model should only call these tools if asked to. If you want to disable them to ensure it's never available, add this to your config:

{
  "options": {
    "disabled_tools": ["crush_info", "crush_logs"]
  }
}

LSPs back to sidebar

LSPs are now showing again at the sidebar. There was an issue preventing them appearing there. Thanks @fuleinist for the fix!

Config JSON schema fixed

@BrunoKrugel worked on a fix for an issue related to auto-generating the JSON schema for our config. This is typically used by code editors and even models, and it's not fixed!

See ya all in the next release 👋
Charm

Changelog

New!

Fixed

Docs

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

v0.55.1

06 Apr 20:17
v0.55.1
d645f98

Choose a tag to compare

Patch for local models

Many of you use Crush to use LLM models running in your local machines. In this release, our favorite contributor @Kartik33 worked on two small fixes to make Crush more compatible with local models:

  • Some apps like LM Studio rejects max_tokens = 0, so we'll omit the field when unnset instead of sending zero to make them happy.
  • When context window was unset (context_window = 0), Crush would immediately try to summarize a brand new session. We'll skip summarization when the context windows is unset or unknown.

If you're using Crush for local models, please let us know how we can make it better for you in Slack or Discord!

Charm ✨

Changelog

Fixed


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

The Charm logo

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

v0.55.0

02 Apr 20:52
v0.55.0
3befaaa

Choose a tag to compare

Builtin "Crush config" skill + an experimental thing

We have a couple new feats on this release. Let's check them out!

Built-in "Crush config" skill

Starting on this release, Crush has the concept "built-in skills". Those are skill built in Crush, so you don't need to manually copy them to your machine or project.

For now we have a single one: "Crush config". Crush can now configure itself, so if you don't want to manually edit your crush.json config, you can just ask Crush itself to do it for you. You can ask it to add a custom providers, add a MCP, add a LSP, change a setting, etc.

Disable skill

We also added the ability to disable skills, no matter if built-in, global or project skill. Just add this to your crush.json:

{
  "$schema": "https://charm.land/crush.json",
  "options": {
    "disabled_skills": ["crush-config"]
  }
}

Experimental server-client architecture

If you run Crush with CRUSH_CLIENT_SERVER=1, it'll now run via a brand new server-client architecture.

Keep in mind, though, this is VERY experimental! There are known bugs when using Crush in this mode. We'll be polishing it with time and only make it the default once it's stable.

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

v0.54.0

31 Mar 20:38
v0.54.0
6054a93

Choose a tag to compare

Small feats + more

We have a good number of fixes and enhacements in this release. Note how many contributors helped with this release! It's exciting to see the Crush community grow. 🚀

Better init prompt

@Amolith made some nice improvements on the prompt to generate a AGENTS.md file for new projects.

Custom Git ignore file support

If you happen to have a custom global ignore file for Git (core.excludesfile), Crush will now respect that when listing files. Thanks @mavaa for implementing this!

Skills on crush session

crush session show and crush session last commands will now show a header with the all skills used by the session.

Screenshot skills

LSP Auto-Start setting

Setting options.auto_lsp to false on your config was supposed to prevent LSP servers from booting automatically, unless you had manually configured them. There was a bug with this setting, but @BrunoKrugel helped us by fixing it.

UI fix for non-image models

@huaiyuWangh contributed with this fix. If the model you're using doesn't support images, Crush will now hide the help items in the bottom with the keybinding to attach images.

No more .crush/.gitignore on your git diff

We recently changed the content of this file to not ignore .crush/skills/* by default, but a small annoying side-effect made that file itself visible by Git. We're now also ignoring the .crush/.gitignore file itself again.

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

v0.53.0

27 Mar 19:20
v0.53.0
086d839

Choose a tag to compare

GLM-5.1 + Mr. Big Prompt

Hey all! Friday is here and we have a few fun goodies for « Le Week-End ». Read on!

⚡️ GLM-5.1

Z.ai's GLM-5.1 was released just today as part of their coding plan, and it's available in Crush now. GLM-5.1 is a hot, new open source model that claims to come close to Opus 4.6. Enjoy and let us know what you think!

Image

💬 A Bigger Prompt

When we first released Crush, three lines for prompting felt great. Now it feels really tiny! Fear not: in this release we made the prompt input area dynamically grow up to 15 rows in height as needed.

Dynamic prompt sizing demo in Crush

🔥 Hot Fixes

  • Diffs: in some scenarios, the diff for a changed file weren't behavior correctly and looked like the whole file was changed. Not anymore.
  • Tools calls: if user canceled the session (with esc+esc) in the middle of a tool call, that could result in a broken session, making impossible to send new prompts. Fixed!
  • Session titles: the prompt to generate a title for a session was further enhanced to avoid generating in the wrong language if the chosen small model wasn't too smart.
  • Cleanup: we're now ensuring we clean temporary files created when you press ctrl+e (opens external editor to write prompt).

Enjoy your weekend!
Charm ✨

Changelog

New!

Fixed

Docs

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