Yolo, Builtins, Perf and More Mouse
Another day, another release. We've been working hard on Crush! Let's see what's new.
Yolo on Demand
Yolo Mode is when you bypass all permission dialogs and let Crush run free.
So far, you've been able to start Crush in Yolo Mode with crush --yolo. The thing about yolo'ing, however, is that you never know when the desire to yolo might strike. That's why we added a yolo toggle to the menu. Just press ctrl+p and choose Toggle Yolo Mode to yolo and un-yolo to your heart's content.
Warning
Yolo Mode is cray cray and can theoretically really mess stuff up. Be careful.
Mouse Around Your Diffs
Real developers use mice. That’s why we introduced mouse mode in the diff view. Keep using those mice!
Windows Powerups
We love Windows. It's great for gaming, and great for Crushing. Windows users now have the following coreutils built-in:
base64gzipmktempshasumtar
For everyone else: because these utilities are now compiled in they're much faster as there's no longer a need to shell out to them.
CPU: Now Less CPU-y
We did some work deep under the hood to prevent rogue CPU spikes, so Crush should now run better than ever.
Env Prefixes
Want to restrict environment variables to Crush? Thanks to @taigrr, now you can with a CRUSH_ prefix. So go on, set that CRUSH_ANTHROPIC_API_KEY.
Thank You
💘 Your feedback's been so helpful in helping us understand what you want where your pain points are. Thanks, everyone, and please keep it coming.
Changelog
New!
- 2917109: feat(diffview): add support for mouse scrolling (@andreynering)
- a47d761: feat: add yolo mode command (#654) (@kujtimiihoxha)
- 65cd249: feat: allow for using CRUSH_ prefixed env-vars without clobbering default env vars (#391) (@taigrr)
Fixed!
- ae3b3d7: fix(mcp): append to output instead of replacing (#658) (@caarlos0)
- 42a346c: fix(mcp): give a time limit for startup (#660) (@caarlos0)
- fd890f1: fix(selection): fix panic that can happen on selection (@andreynering)
- e00a70a: fix(tools): do not truncate output (#657) (@caarlos0)
- 9719451: fix: config.HomeDir sync.OnceValue, use user.Current().HomeDir (@caarlos0)
- 5195f8a: fix: panic:
fuzzylibrary doesn't like empty lists (@andreynering) - 1dc7f20: fix: panic: start can't be greater than end (@andreynering)
- a32c16c: refactor: use core utils middleware from
mvdan/sh(#323) (@andreynering) - fbe879d: fix: improve .crushignore and .gitignore behavior (@caarlos0)
Perf
- ae87e4d: perf: bump bubble tea for improved CPU usage (@aymanbagabas)
- a05b434: perf: make stuff a tad faster (@caarlos0)
Other Stuff
- 1e47f4e: chore(csync.Map): added GetOrSet (@caarlos0)
- fb6dab0: chore(diffview): only process scroll events when pointer is over dialog (@andreynering)
Verifying the artifacts
First, download the checksums.txt file, for example, with wget:
wget 'https://github.com/charmbracelet/crush/releases/download/v0.4.0/checksums.txt'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' \
--cert 'https://github.com/charmbracelet/crush/releases/download/v0.4.0/checksums.txt.pem' \
--signature 'https://github.com/charmbracelet/crush/releases/download/v0.4.0/checksums.txt.sig' \
./checksums.txtIf 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.txtDone! You artifacts are now verified!
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, Discord, Slack, The Fediverse.

