v0.95.0

charmbracelet/crushv0.95.0Sep 16, 2026by github-actions[bot]

Upgrading?

AI Summary

This release introduces Plan Mode, a safety feature that allows the tool to analyze, map architecture, and check configurations without modifying files or running commands. It also includes significant performance improvements across agents, databases, and UI components.

Key Highlights

  • New 'Plan Mode' feature for read-only analysis and architecture mapping.
  • Performance optimizations for database indexing and message decoding.
  • UI fixes including colored task names and improved spinner behavior.

New Features

  • Plan Mode: Analyzes code, checks tests/config, and spins up sub-agents without writing files.
  • Optimized database indexing for faster message retrieval.
  • UI improvements for task coloring and session transcript reading.

Full Release Notes

# Hello, Plan Mode

This release introduces many improvements but, most importantly, and a solid new feature from one of our very talented contributors:

## Let’s plan

<p><img width="600" src="https://github.com/user-attachments/assets/8118b573-6d41-4cfd-a602-141b5e59f28e" /></p>

At last, thanks to the very talented work of @vadiminshakov and @andrinoff, we present the long awaited Plan Mode.

Plan Mode is for…planning. Talk to the agent, answer questions, and put together a plan and then, when you’re ready, get to to work. You can activate plan mode with <kbd>shift+tab</kbd>.

## Juicing more perf

@andreynering and @taciturnaxolotl marched forward in the quest for max perf in this release. Details below.

That's all for now. See you soon!

Cheers,
Charm xx 🌟


## Changelog
### New!
* 1648f10ac039e126635e26d4a16647331b2d6f0c: feat: add plan mode (#2822) (@vadiminshakov)
### Fixed
* 051fb37ae1d6bd6d6f2f6cbc8a629d5f85aa9bd7: fifix(ui): color the to-do task name while the tool is still running (@taciturnaxolotl)
* 2019da14717e4e00aeee7664873c6b78f147a3eb: fix(tui): unfreeze spinner clock when the boot busy probe lands (#3839) (@andreynering)
* fd58b5ed201f490641d018cab6f06a29cdaff2c0: fix(ui): read the session transcript off the event loop (@taciturnaxolotl)
### Other stuff
* d55e017d60cdb87ecb21a19a9fed9a2097c0da64: perf(agent): read only the post-summary tail of a compacted session (@taciturnaxolotl)
* 978d49d53f9343f2e57406cc503daddf282e12ae: perf(db): cap prompt history at the 200 most recent messages (@taciturnaxolotl)
* 296b5c396260ece70fdceed288ed25c7a99ba349: perf(db): index messages by role so user-message reads stop scanning (@taciturnaxolotl)
* 595f625f19a6a186307b911d59dd37c764541251: perf(message): decode message parts in one structural pass (@taciturnaxolotl)
* 9207cb2c053ecbe3ec5c0c3985b746877c1f322d: perf(ui): skip the global prompt-history scan when a session is loading (@taciturnaxolotl)

---

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

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

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

Related Repositories