v0.78.0
charmbracelet/crushv0.78.0Jun 19, 2026by github-actions[bot]
AI Summary
Major release introducing Bang Mode for direct shell execution and local model auto-discovery, plus new providers like Fireworks.
Key Highlights
- Bang Mode allows running Bash commands directly in a session
- Local models can now be auto-discovered from openAI-compatible providers
- Added Fireworks as a new provider
- Improved clipboard handling (no longer requires xclip/xsel on X11/Wayland)
New Features
- Bang Mode
- Local model auto-discovery
- Fireworks provider
- Clipboard improvements
Full Release Notes
# Bang Bang!
We're ending the week in style with one awesome feature you've been asking for and one awesome feature you didn’t! Let’s go!
## Bang Mode
“What’s bang mode?" you ask. Why it’s simply a nice way to let you run Bash commands directly in a session. It’s great for taking advantage of the shell without leaving Crush. To enter bang mode, just type a `!`. To exit, hit backspace.
<p><img width="600" height="1137" alt="Bang Mode Demo" src="https://github.com/user-attachments/assets/710fadc0-dd14-4e42-b2a5-16ec62add197" /></p>
<!--
<p>
<img width="223" height="102" src="https://github.com/user-attachments/assets/1111b58c-dff9-4978-a884-5faf1b37d44e" />
</p>
<p>
<img width="216" height="80" src="https://github.com/user-attachments/assets/99f2a26a-a299-4601-b5db-373c1d0c8302" />
</p>
-->
Of course, the best thing about bang mode is that the model can also see the out, so if you run a command you can then chat with the model about it.
<!--
<p>
<img width="225" height="88" src="https://github.com/user-attachments/assets/a639ada9-da25-458f-97c0-ca371e42eeb3" />
</p>
-->
<p>
<img width="542" height="357" src="https://github.com/user-attachments/assets/14cb91a1-4629-4ce6-a17a-a3b6f766651e" />
</p>
Special thanks to @taigrr for the initial implementation to @taciturnaxolotl for turning it up several notches, with some suggestions from @nobilelucifero. Enjoy and let us know if you have of any feedback!
## Local Model Auto-Discovery
@taciturnaxolotl _loves_ local models. What he did _not_ love was manually adding them to the Crush, and like a true open source devotee, and he took matters into his own hands. **Crush can now auto-discover local models** for a given endpoint so you don't have to declare them manually.
```jsonc
{
// Look Ma, no manual model definitions!
"providers": {
"ollama": {
"name": "Ollama",
"base_url": "http://localhost:11434/v1/",
"type": "ollama"
}
}
}
```
This works for MLX, LMStudio, LiteLLM and Ollama. [More info in the README](https://github.com/charmbracelet/crush#local-models).
(Is cool or what? Someone get @taciturnaxolotl a Strix Halo!)
## The clipboard: now clipper than ever
We improved the way the clipboard works in Crush big time, particularly in X11 and Wayland: `xclip` and `xsel` are no longer required! You can also paste TIFFs (WeChat users, rejoice!) and <kbd>super+v</kbd> (yes, <kbd>⌘+v</kbd>, macOS people) will also now paste images.
## Fireworks
By popular demand Crush now supports a new provider: [Fireworks](https://fireworks.ai/)! Grab your API key, choose a model on Fireworks and go to town.
## Thanks
As always keep the good vibes coming, and keep crushing It!
The Charm™ Team
## Changelog
### New!
* 98d79e95a52f31307f6943af3b0cbe7e87daa01d: feat(clipboard): migrate clipboard to golang.design/x/clipboard (@taciturnaxolotl)
* f6a841eca9e9d0ec45536e292cd6f70ce8c1bf02: feat(dialog): track last closed dialog in open with grace (@taciturnaxolotl)
* 0f2790574ec8d380562a38cd5661900995d95366: feat(enricher): add litellm enricher (@taciturnaxolotl)
* 3c4e6547b48c95949f969655e01a261fe34cdb3d: feat(enricher): add lmstudio enricher (@taciturnaxolotl)
* 9299ad47d86f5706de43b26717121c59688d9bea: feat(enricher): add ollama enricher (@taciturnaxolotl)
* 89b680d2d6b22126a29b2c9e45553452b6b12608: feat(enricher): add omlx enricher (@taciturnaxolotl)
* ac4bd9c151566800fdf6b1adce9b9a337f816793: feat(scrolling): move to delta coalescing filter (#3135) (@taciturnaxolotl)
* f45712a32da871a962b05fbe9d93d4b444de9a17: feat(ui): extract hypercredits from fantasy (@taciturnaxolotl)
* 99a5fad5370d6c47a94791f803a275348fae891e: feat: add bang mode for direct shell command execution (#3013) (@taigrr)
* 9886d223909e479e373007a5100eda0c1e12a6b6: feat: add support for fireworks provider (@andreynering)
* 7303158426f938ac1648e63fdaba900658ff752b: feat: auto-discover models from openai-compat providers (@taciturnaxolotl)
### Fixed
* 4bd011669bdc6a91a47702752319f481b7dbceb0: fix(clipboard): support platforms without clipboard access (@taciturnaxolotl)
* f98791e9868dc4d3acdebe331d69e68cf4fdd331: fix(server): show LSP status in client-server mode (@meowgorithm)
* d3af321b0f52f199c1e47cecc2cc08535640cbea: fix(shell): isolate child processes from Crush's session (#3097) (@taciturnaxolotl)
* 1cfa9a151569362e44b11d243ad4c4be6b9b13a9: fix(subagents): fixed subagents returning empty responses (#3125) (@taoeffect)
* 46c1799abcaf852f092126c81923b00569c70a34: fix(title): fallback title generation (@taciturnaxolotl)
### Docs
* 70ef7073149da3283da7c5d3940ff515d77316ce: docs: add auto discovery to readme (@taciturnaxolotl)
### Other stuff
* ffd47965720647af86c8ffd6c37287836db69d23: chore: auto-update files (@charmcli)
---
<details>
<summary>Verifying the artifacts</summary>
First, download the [`checksums.txt` file](https://github.com/charmbracelet/crush/releases/download/v0.78.0/checksums.txt) and the [`checksums.txt.sigstore.json` file](https://github.com/charmbracelet/crush/releases/download/v0.78.0/checksums.txt.sigstore.json) files, for example, with `wget`:
```bash
wget 'https://github.com/charmbracelet/crush/releases/download/v0.78.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.78.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).