v0.64.0

charmbracelet/crushv0.64.0Apr 29, 2026by github-actions[bot]

AI Summary

This is a patch Wednesday release (v0.64.0) focused on stability improvements and bug fixes for Charm Crush. Key fixes include a hook matcher bug, Anthropic provider issues, background job regressions, and status bar rendering problems, along with under-the-hood theming preparation work.

Key Highlights

  • Fixed hook matcher bug where hooks ran for every tool call ignoring matcher rules (e.g., ^bash$)
  • Fixed Anthropic/Anthropic-compatible provider errors in certain sessions
  • Fixed job_kill tool regression by rolling back problematic prompt changes
  • Fixed status bar message rendering issues
  • Added hyper theme auto-switching when Hyper provider is selected

New Features

  • New feature: auto-switch to hyper theme when Hyper provider is selected
  • Hook matcher now properly recompiles after config reload
  • Improved re-authentication at provider selection time to verify availability
  • Fixed notification width and text truncation issues
  • Restored 'update available' notification functionality

Full Release Notes

# Patch Day

It's patch Wednesday, coming in hot with improved stability and fixed bugs.

## Fixed: Hook Matcher

Did you see that [we released an initial hook](https://github.com/charmbracelet/crush/releases/tag/v0.63.0) in the past release? If not, go check it out.

Anyway, there, was a bug in which hooks would run for every tool call and totally ignore matcher rules (e.g. `^bash$`). Oof. Fixed.

## Anthropic Fix

Kudos to @ljuti who [fixed a bug in Fantasy](https://github.com/charmbracelet/fantasy/pull/219) that could cause errors on certain sessions when using Anthropic or Anthropic-compatible providers. Thanks, @ljuti!

## Background Jobs, Fixed

The `job_kill` tool had some prompt changes that caused a regression. We've roll that back and job killin’ should be easer than ever.

## Style Council

We also made a bunch more changes under the hood to prep for theming. The design goal is to be able to make themes quickly by setting only a few variables, but also keep the door open for very specific, targeted styling.

## High Status

Sometimes the status bar wasn't rendering messages properly. Now, thanks to some good logic, it should be solid as a rock.

That's all for today.
And stay tuned: we have exciting stuff coming soon.
Charm ✨ 

## Changelog
### New!
* a4488ca06a3e0f7427fc2979b54aeb3877272e72: feat(ui): switch to hyper theme when provider hyper is chosen (@meowgorithm)
### Fixed
* 4d16e96bd30016f674f162fc47128d3c108353eb: fix(app): replace single events channel with pubsub.Broker for fan-out (#2663) (@taigrr)
* 38a846d334f55c83e170e87a0a65bcdd00c8b4a3: fix(hooks): recompile matchers after config reload (@meowgorithm)
* 2be20248403dc5d2470c3e73a86a04eb40224322: fix(hyper): re-auth at selection time to ensure provider availability (@meowgorithm)
* cfcffd216122c42dbeb6a47a1df5733129fbda5a: fix(styles): fix some regressions where colors were incorrect (@meowgorithm)
* 09a112040fb774e9799dc611736baf405e438b1d: fix(ui): notification width and text truncation (@meowgorithm)
* 64c47cbbb3f0825432876786fb72737089732f55: fix(ui): restore 'update available' notification (@meowgorithm)
* 066fb5a1166bdbe4ca7012cd1d5a5051d9d5d3d2: fix: remove unused build (#2734) (@BrunoKrugel)
### Other stuff
* 81fbaca81c2221fd60c660e5902f310d2b3a5148: chore(hyper): update endpoint to new one (@andreynering)
* 8ebab21f60d8b5471398422a13a0a44664fb3ac5: chore(styles): clean up theme definitions (@meowgorithm)
* 9d4653e8c9436c59d3633599bbb400e4ce286f40: chore(styles): use hypercrush theme when hyper is selected (@meowgorithm)
* 9c4a3162ec8bef5703d8920d442e373032567bc1: chore(ui,styles): color edits and copyedits for the oAuth view (@meowgorithm)
* b07664e3570a3bef19f52c39cafa400dba876c0b: chore: auto-update files (@charmcli)
* 86bb80559238480bb88739361400f32c866037bb: fix(tools/job_kill): use longer job_kill desc to improve reliability (#2747) (@meowgorithm)
* c84ca2d92f42d52e3a6fdedc33c8df1b76e7a936: refactor(hooks): move matcher compilation into the runner (@meowgorithm)

---

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

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

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