v0.42.0

charmbracelet/crushv0.42.0Feb 11, 2026by github-actions[bot]

AI Summary

This release introduces GLM 5 via z.AI as a new AI model provider and includes numerous bug fixes and UI improvements. Key fixes address LSP server visibility, cursor placement with attachments, the disable_default_providers setting, key binding changes for TODO, and Windows shell command execution.

Key Highlights

  • GLM 5 via z.AI is now available as a new AI model provider
  • LSP servers now shown as 'unstarted' in UI instead of being hidden until needed
  • Fixed cursor misplacement when file attachments are added to prompts
  • Changed TODO key binding from ctrl+space to ctrl+t for better terminal compatibility
  • Fixed regression in disable_default_providers setting for local model users

New Features

  • GLM 5 model support via z.AI provider
  • Show user-configured LSPs in the UI
  • New key binding (ctrl+t) to open/close TODO list

Full Release Notes

# GLM 5 + general fixes

GLM 5 via z.AI is now available!

<img width="670" height="293" alt="Screenshot 2026-02-11 at 18 11 16" src="https://github.com/user-attachments/assets/4048399a-5521-487f-b27d-9d97471f4d7b" />

## Many small fixes

Several small adjustments were made as well. Some of them:

* We recently made an optimization to only start LSP servers when needed, but it caused some confusion for some users because they weren't being shown in the UI until started. We'll now show these servers in the UI as "unstarted".
* Fixed cursor misplacement when file attachments were added to the prompt.
* Addressed regression regarding the `disable_default_providers` setting. (This setting is for users only interested in using local models).
* Changed key binding to open and close TODO to <kbd>ctrl+t</kbd> because <kbd>ctrl+space</kbd> don't work on all terminal emulators.
* Fixed potential issue on running shell commands on Windows.
* Some visual adjustments were made to the dialogs.

## Changelog
### New!
* 5179b28efd13e48cb3419fede83958930a065682: feat(lsp): show user-configured LSPs in the UI (#2192) (@caarlos0)
### Fixed
* 47ca98d0e29b0da47a6084bb0eaef132e1608369: fix(config): correct Task agent ID in SetupAgents (#2101) (@AnyCPU)
* 5b2a0bf38e8dd67707e3d433e59de5740aedfc97: fix(grep): do not go outside cwd, add timeout (#2188) (@caarlos0)
* d6643a64aca64744d4156126835d8bbfccce2f73: fix(lsp): files outside cwd (#2180) (@caarlos0)
* d391ea85ed2f43d8e1290a2c64269c0782a6185a: fix(mcp): cancel context on MCP session close to prevent leak (#2157) (@AnyCPU)
* 48157c6c4eac6af31bda49697f0ef26b90d88df6: fix(sqlite): increase busy timeout (#2181) (@caarlos0)
* 9917b226e39863c3c053ea96ee64453cdfa9092c: fix(ui): adjust sessions dialog size (@aymanbagabas)
* f87d95b8522e5def84ce3dc749411dad1a7835a9: fix(ui): correctly position cursor when attachments are present (#2190) (@aymanbagabas)
* 155fc618b392eb0f9e49daeb8ad233c943e0349c: fix(ui): dialogs: loop around and scroll list when navigating with up/down keys (@aymanbagabas)
* 361a318e2240239b175f24584265a31befc8538f: fix(ui): ensure the min size accounts for the dialog border (@aymanbagabas)
* 4f3b056c91840b2be251ff58efa0ffb02bcff56f: fix(ui): truncate dialog titles with ellipsis (@aymanbagabas)
* baedc28232f80b434664c1a85f957c4848c1e84c: fix: address potential panic on shell command execution (#2200) (@andreynering)
* f791e5c4d9540c2faf65fb25158db9800c3b874c: fix: change binding to open/close todo list from `ctrl+space` to `ctrl+t` (#2201) (@andreynering)
* 22ed1e5d39ab871ae30219631c213dba6906556d: fix: clear regex cache on new session to prevent unbounded growth (#2161) (@AnyCPU)
* 0b618f40fb824abb8ddf5b9ea7d145150c4d501a: fix: ensure all providers are shown unless `disable_default_providers` is set (#2197) (@andreynering)
* d1032ba98b7e20300f1fa75b4e8e33d601ec19d4: fix: respect disable_default_providers (#2177) (@caarlos0)
### Docs
* 1f42acfb37e8f336cf6130f23c290638ab98dd48: docs(readme): mention subscriptions (#2184) (@andreynering)
* 5c29ad2fd5625c83f9d9c4cdedf8133961e119df: docs(ui): comment typo (@aymanbagabas)
* 8c9eb4718f0767549a13b895e61cd6b7882d7128: docs: update LICENSE copyright (@meowgorithm)
### Other stuff
* 8eb4dc0578b528901da779d6a34b986e9f6281cc: chore(taskfile): add `-v` to `go build` (@andreynering)
* 29800c488955f57c0fd52a9463b9ccf0b7473c4c: chore(taskfile): add `modernize` task (@andreynering)
* 9e4f8e0a6a0b7ba331a4b4451e902dfd8859b838: chore(taskfile): add `run:catwalk` task to run with local catwalk (@andreynering)
* d329ad5558c5ed967fda50ed4dd711ecc977601a: chore(taskfile): add `run:onboarding` to test onboarding flow (@andreynering)
* f962087445719a88cdf6371fc977ea30acecf615: chore(taskfile): avoid compiling when not needed (@andreynering)
* 8a6f25f945785322cfcbb78772a3819610861a59: chore(taskfile): run binary with extension on windows (@andreynering)
* 82b7aec40ebf2f434f4c95c1d21abfdbafafe6f1: chore: add `omitempty` back as `omitzero` (@andreynering)
* f22ec5fcad7b4905ffa2d1ea31be930911291cae: chore: auto-update files (@charmcli)
* 09cea778fc09a6dbee7dd4a3e8e5111b2ace0952: chore: auto-update files (@charmcli)
* 5e23ecdb4da522af4db2251b96d92e0c368389df: chore: run `modernize` (@andreynering)
* 7a83144f8629c26d2e45eb28ebfefe9710d91eef: chore: update `AGENTS.md`, mention `x/ansi` package (@andreynering)
* db0ce0bf185655597443be0f7539231c6b687bfe: chore: update fantasy (#2186) (@andreynering)
* 7f3d7c756d4bc289c45ccb23e2a8a9c1c2e21b0b: refactor: use csync.Map for regex caches (#2187) (@caarlos0)

---

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

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

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