v0.47.0

charmbracelet/crushv0.47.0Mar 4, 2026by github-actions[bot]

AI Summary

This is a small community patch release for Crush, a Go-based shell, featuring two key contributions: a new `wait: true` parameter for the job_output tool that enables blocking waits for background jobs, and a fix to ensure LSP connections are properly closed on server shutdown.

Key Highlights

  • Added `wait: true` optional parameter to job_output tool for blocking background job completion
  • Fixed LSP connection cleanup to ensure proper closure when server shuts down
  • Bumped powernap dependency to v0.1.2
  • Updated catwalk dependency

New Features

  • New blocking wait option (`wait: true`) for job_output tool to prevent polling and reduce token consumption
  • Improved LSP connection handling with Kill() fallback on timeout

Full Release Notes

# Community patch

We're shipping a small release with two nice contributions from the community.

## Better background jobs

@portertech implemented a new `wait: true` optional parameter on the `job_output` tool. This means that the model can now ask Crush to wait for a background job command to finish before returning its output. This is important to prevent polling, which would also consume more tokens than needed.

## LSP connection fix

@taigrr worked on a patch to ensure that LSP connections are closed once the server is shut down.

Enjoy!


## Changelog
### New!
* 9ec46b8d439646a505018576e7197b2daacfb7b3: feat(shell): add blocking wait option to job_output tool (#2189) (@portertech)
### Fixed
* 56d79d108ee5036224ef13155871457425c7729e: fix(lsp): fallback to Kill() on timeout (#2349) (@taigrr)
### Other stuff
* aa0997b31590d4ac61221f6d6f35eef2de50628f: chore: bump powernap to v0.1.2 (@aymanbagabas)
* 6d89de6320761c6eb8791cd7e87c3812a6ee5ce0: chore: update catwalk (@andreynering)

---

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

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

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