v0.63.0

charmbracelet/crushv0.63.0Apr 27, 2026by github-actions[bot]

AI Summary

This release introduces Crush's new hooks system, starting with the PreToolUse hook that runs before tool calls. Users can deny tool calls, halt turns, rewrite bash commands, and perform side effects. The release also includes a built-in crush-hook skill for managing hooks and is compatible with Claude Code hooks.

Key Highlights

  • Introduced PreToolUse hook - runs before tool calls and can deny, halt, or rewrite commands
  • Added built-in crush-hook skill for building and managing hooks
  • Crush is now compatible with Claude Code hooks
  • Fixed UI issues: disabled skills visibility and dialog box shift during session rename
  • Improved hook documentation with examples including rtk integration for token reduction

New Features

  • PreToolUse hook that runs before tool calls with ability to deny, halt turns, or rewrite commands
  • crush-hook skill for building, managing, and configuring hooks
  • Claude Code hooks compatibility
  • Example hook for rtk integration to reduce token usage in common Bash commands

Full Release Notes

# Baby’s First Hook

At last, Crush is getting support for hooks. We spent a lot of time on the design to make sure it's future proof and can support a wide variety of use cases.

<p><img width="748" height="264" src="https://github.com/user-attachments/assets/00c17b5f-f15a-470a-82bb-92a39053834f" /></p>

We're starting with just one hook, `PreToolUse`, which runs before a tool call. You can use it to deny tool calls, halt turns, rewrite rewrite bash commands, and perform any number of silent side effects. One popular use of `PreToolUse` to use [`rtk`](https://github.com/rtk-ai/rtk) to reduce the number of tokens used by many common Bash commands. [Here’s a hook you can use to get started with `rtk`](https://github.com/charmbracelet/crush/blob/main/docs/hooks/examples/rtk-rewrite.sh).

Let us know what other hooks you'd like to see next in [the discussions](https://github.com/charmbracelet/crush/discussions).

There's an also a builtin `crush-hook` skill which you can use to build, manage, and configure hooks. It's very easy to have Crush help you get the most out of hooks.

Note that Crush is also compatible with Claude Code hooks. That said, the Crush-specific API will typically produce simpler hooks and less code.

For the full run-down on hooks see [the official hooks docs](https://github.com/charmbracelet/crush/tree/main/docs/hooks).

Enjoy!
Charm :cupid:

## Changelog
### New!
* dc003bf728f7fe06993f29cba31a5d1196a5eaf0: feat: PreToolUse hook (#2598) (@meowgorithm)
### Fixed
* 7a6149df39c1e2767d2f61e0e564007476b4bee8: fix(ui): don't show disabled skills (@BrunoKrugel)
* 3cda50f83a3a683526e485f57cb1e34efe6400eb: fix(ui): fix dialog box shift when session rename is active (@meowgorithm)
### Docs
* e5611c3f82161fbf694a401129f711cd99656256: docs(hooks): improve hook documentation (@meowgorithm)
### Other stuff
* b9fdf72e8707b5929a432bf4d46d6189cdad84dc: chore(hooks,skills): update crush-hooks skill per recent changes (@meowgorithm)
* a7546adcdc06f5be224ae42e473279178ada13d3: chore(tests): regression test for (lack of) disabled skills in the ui (@meowgorithm)
* 755f6fae6f723333adfe47c01949409d243fdfdb: chore(ui): theme prep (@meowgorithm)
* f68699966309e8fc1c68e0118da519bc29429b82: chore: auto-update files (@charmcli)
* 1948ca7fa4b490a2e4eaae4cd59732131258926f: fix(ui/hooks): restore hook styling (@meowgorithm)

---

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

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

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