v0.24.0

charmbracelet/crushv0.24.0Dec 12, 2025by github-actions[bot]

AI Summary

Release v0.24.0 of Crush introduces a new to-do list feature (Charm-style) for better task execution, and upgrades the non-interactive `crush run` mode with output redirection and pipe support. The release also includes various bug fixes for rendering, UI scrolling, and the edit tool.

Key Highlights

  • New first-class to-do list feature for Crush with Charm-style integration
  • Added output redirection and pipe support to non-interactive `crush run` mode
  • Fixed list wrap behavior for unfocusable items in TUI
  • Fixed list highlight selection scrolling in UI
  • Fixed edit tool error on new file creation due to logical fallthrough

New Features

  • Todo tool - a first-class to-do list for Crush that creates to-dos as-needed for better task execution
  • Output redirection and pipe support for `crush run` in non-interactive mode (e.g., `crush run "command" > output.txt` or `cat file | crush run "command"`)

Full Release Notes

# To-Dos and More!

At last to-dos! We also made some improved noninteractive Crush and hardened things all around. Read on!

## To-Dos

Apparently, LLMs are just like people: they _need_ a to-do list to get anything useful done. That why we’ve finally granted Crush a first class to-do list, Charm-style. Now Crush will create to-dos list as-needed for better execution on tasks.

<p><img src="https://github.com/user-attachments/assets/f79b6d28-c3eb-4137-8867-2cdb67983f6e" width="960"></p>

Does this mean that (with the right MCP) you can use Crush for grocery shopping? Why the heck not.

## U so Fancy, Crush Run

There are a lot of people using Crush in sneaky places with its non-interacive (and super yolo) mode: `crush run`. As true command line connoisseurs, we've upgraded `crush run` to support output redirection (or pipes, if you will).

```
cat Taskfile | crush run "add descriptions please"
crush run "Summarize this project" > summary.md
crush run "Rate my Pokémon collection" < Pokedex.md > Pokerating.md
```

## Bugz

We and the community crushed a bunch around rendering (thanks @aymanbagabas!), user interface (thanks @dawndiy!), and tools (thanks @Gustave-241021!).

That's all for now, but we have lots more on the way. Enjoy your weekend and maybe eat a burger. 🍔

—Charm 💋


## Changelog
### New!
* 88831a1b004e3dd44d72023ee283e95e84c27a4d: feat: todo tool (@kujtimiihoxha)
### Fixed
* 36d471b68228d1abfa68577fdcbb0fa1f20ac56a: fix(noninteractive): support output redirection (aka, pipes) (#1594) (@meowgorithm)
* cc08edc9b388af373404b339d138607b39b1681e: fix(tui): fix list wrap behave when it has unfocusable items (#1312) (@dawndiy)
* 2d43901fe3faedf9c057daa1bd2095946e6aa6a1: fix(ui): list highlight selection scrolling (#1575) (@aymanbagabas)
* 2e466d841c1355a883565a0b35d750739a760123: fix: edit tool error on new file creation due to logical fallthrough (#1566) (@Gustave-241021)
### Other stuff
* 448b78ba38f10f3007be8f663e084e6ca1f7a7a9: chore: bump bubbletea and ultraviolet to fix non en lang rendering (@aymanbagabas)
* c5d2ccb35d4564bef66cf3b7d8dbaa7d6a206e6d: chore: update bubbletea to latest rc2 version (@aymanbagabas)

---

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

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

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