Skip to content
C

Crush v0.78.0

Released · Charm

What the release notes say

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.

{
   // 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.

(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! 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 and the checksums.txt.sigstore.json file files, for example, with wget:

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:

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:

sha256sum --ignore-missing -c checksums.txt

Done! You artifacts are now verified!

</details>