v0.48.0
charmbracelet/crushv0.48.0Mar 12, 2026by github-actions[bot]
AI Summary
This is a significant release of Crush (v0.48.0) introducing notifications for permission requests and task completion, comprehensive CLI-based session management for both humans and agents, and a user-agent string for network observability. The release also includes several bug fixes addressing issues with metrics, UI formatting, and non-interactive mode.
Key Highlights
- Notifications system alerts users when Crush needs attention (permission requests) and when tasks complete, with easy toggle functionality
- CLI-based session management with `crush session list` and `crush session <id>` commands, plus rename and delete capabilities
- User-Agent string (Charm-Crush/0.48.0) for better network observability and identification
- Bug fixes for panic when metrics disabled, UI formatting (XHigh vs Xhigh), and non-interactive title generation
- Full JSON output support for agents and machines to inspect past sessions programmatically
New Features
- Notifications for permission requests and task completion with toggle control
- Session management via CLI: list, view, rename, and delete sessions
- Structured JSON output for session inspection (for agents/machines)
- Custom user-agent string for network requests
- Command palette entry for toggling notifications
- Improved examples in `crush --help`
Full Release Notes
# Notifications, CLI-based session management, and more :wave: Hello all! This is a fairly beefy release with a some nice features and a slew of bugfixes. ## Notifications Sometimes LLMs take a while to do so things and, naturally, we go and do other things in the meantime. Now, Crush will send a notification when it needs your attention (e.g. permission requests) and when it finishes its work. How thoughtful! <p><img width="275" src="https://github.com/user-attachments/assets/706221e6-a59c-4402-a9c6-eae702496466" /></p> If you find this annoying, it's easy to toggle notifs on and off, too: <p><img width="500" alt="image" src="https://github.com/user-attachments/assets/2f0ef33e-0af0-45c0-a8c9-3989978121d4" /></p> This feature was implemented by star contributor @Amolith, who waited _so_ patiently for us to QA this incredibly tricky feature across the various platforms we support. ## Sessions on the CLI for humans and agents We're big believers in `crush run`, Crush's non-interactive mode, and this release brings a host of session-based features to the CLI for humans and agents alike. In particular, now you can browse sessions with `crush session list` and inspect former sessions with `crush session <id>`. Agents and machines can add `--json` for structured output, allowing you to fully inspect past sessions in their entirety. You can also rename and delete sessions, opening a lot of possibilities around non-interactive mode, i.e. `crush run`. For full details on headless session management see `crush session --help`. <p><img width="582" height="467" alt="image" src="https://github.com/user-attachments/assets/43533bb0-6fe1-40df-96f0-2ca454333410"></p> <details> <summary>Demo: listing sessions:</summary> <p><img src="https://github.com/user-attachments/assets/68cc2b12-2790-4434-bbee-ec0d6a64c0db" width="600"></p> </details> <details> <summary>Demo: viewing sessions:</summary> <p><img src="https://github.com/user-attachments/assets/bd54ecf8-4eff-43a0-8c0b-b487fee27465" width="600"></p> </details> ## A Crush User-Agent Now Crush will present itself on the network with a user agent, e.g. `Charm-Crush/0.48.0 (https://charm.land/crush)`. This makes it a lot easier to identify with observability tools. Enjoy! ## Crushing the bugs We also absolutely hosed a handful of bugs in this release. Good riddance! Happy hacking, Charm ✨ ## Changelog ### New! * f8da538c509f77dffd1ad1926f8a41ac75953016: feat(notification): alert on turn completion and permission request (#1356) (@Amolith) * cfcbd69eb24e2d992a74d835384ce9b0426fb4ce: feat: CLI-based session access and management (#2373) (@meowgorithm) * a897f65d682f7634539a763f74da8c32c998b0d4: feat: set user-agent to Charm Crush/<version> (#2357) (@meowgorithm) ### Fixed * ec8c8dd22b46496729e725387e15a33ddede26c9: fix(events): panic when metrics are disabled (@meowgorithm) * e0d3141af1477da55bf4591a85fe98a8a80a6f28: fix(events): remove redundant posthog exit event (#2371) (@meowgorithm) * 2dacfbd90c237d269d2f42b4cfc9880a54c72857: fix(noninteractive): actually use models to generate titles (#2372) (@meowgorithm) * 7f2e9f88ea2285c212abfba4996f7e4db7a54d54: fix(ui): format xhigh as XHigh (not Xhigh) (#2369) (@meowgorithm) * 4fee559a7e675ff21bb04162d44cca3b89dcdcc5: fix(ui): properly truncate info message (#2379) (@aymanbagabas) ### Other stuff * a3bfa1975f4a9842e4f52735424145f521e9bab1: chore(agent): allocate errors once, reuse errors (@meowgorithm) * 7d50e8f8e7a8bc9b32000a5c97c43f8fc1b1b8df: chore(agent): cleanup logic (@meowgorithm) * ca32607dc23f2b3f93204dcad32c89ef6ebb7e7a: chore(ui): add command palette entry for toggling notifications (#2402) (@meowgorithm) * 79c3ffa3ae922655a025d7ce0b0a4b5ec3722d61: chore: improve examples in `crush --help` (@meowgorithm) * 45c25b34733f5f0b59bb9f7a05b057100eae3632: chore: update AGENTS.md (#2388) (@meowgorithm) * 53ca4dc3e9eb84fffc9d7128a764bddbd5973b2b: chore: update and improve ui/AGENTS.md (@meowgorithm) * cee203d423aa9a1249fcc40fb7ea06225d27a290: chore: update user-agent string to better follow the convention (@andreynering) * 5ff8d6876005ba48686a58fa71417c3a3f17bebe: refactor(config): introduce ConfigStore and Scope for better config m… (#2395) (@aymanbagabas) --- <details> <summary>Verifying the artifacts</summary> First, download the [`checksums.txt` file](https://github.com/charmbracelet/crush/releases/download/v0.48.0/checksums.txt) and the [`checksums.txt.sigstore.json` file](https://github.com/charmbracelet/crush/releases/download/v0.48.0/checksums.txt.sigstore.json) files, for example, with `wget`: ```bash wget 'https://github.com/charmbracelet/crush/releases/download/v0.48.0/checksums.txt' wget 'https://github.com/charmbracelet/crush/releases/download/v0.48.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).