v0.41.0

charmbracelet/crushv0.41.0Feb 9, 2026by github-actions[bot]

AI Summary

This release adds the ability to edit API keys directly in the TUI by pressing ctrl+m to open the models dialog, selecting a model, and hitting ctrl+e. This also works for OAuth providers, triggering re-authentication via the OAuth2 flow. Additionally, help wrapping on dialogs was fixed and LSP startup performance was improved.

Key Highlights

  • Edit API keys in TUI via ctrl+m then ctrl+e (previously required manual config file editing)
  • Re-authenticate OAuth providers directly in the UI with ctrl+e
  • Fixed help text wrapping issues on dialogs
  • Performance improvement: LSP now tracks and starts on command execution

New Features

  • Ability to edit API keys in the TUI (ctrl+m to open models, ctrl+e to edit)
  • OAuth provider re-authentication via ctrl+e in the models dialog
  • LSP performance optimization - tracks and starts on command

Full Release Notes

# Let’s Edit our API Keys

At last: edit your API keys in the TUI. Open the models dialog (<kbd>ctrl+m</kbd>), choose a model and hit <kbd>ctrl+e</kbd>. That’s it. This works for oAuth providers too: <kbd>ctrl+e</kbd> will prompt you to re-auth via the OAuth2 flow.

This is another small but nice Quality of Life™ improvement. Before, you could only edit API keys by manually editing your `crush.json` config file. Voilà!

## Changelog
### New!
* 1615de50386d14d80b022a3677a6bbb475a80106: feat: add ability to re-authenticate / edit api key (#2179) (@andreynering)
### Fixed
* 340ce206c0248d1a226649b19e5e2c2adaab006f: fix(ui): fix help wrapping on dialogs (@andreynering)
### Other stuff
* 7d00857e4c549ddc067a30c16e97e580bb3c0d50: perf: track and start lsp on command (#2176) (@caarlos0)

---

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

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

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