v0.35.0
charmbracelet/crushv0.35.0Jan 23, 2026by github-actions[bot]
AI Summary
This release adds support for Vercel AI Gateway, allowing users to connect to Vercel's AI Gateway with their API key. It also continues the UI refactoring effort (hidden behind CRUSH_NEW_UI=1 flag) with an onboarding flow, and includes numerous bug fixes for panics, UI issues, and cursor positioning.
Key Highlights
- Added support for Vercel AI Gateway integration
- New experimental UI refactor available behind CRUSH_NEW_UI=1 flag
- Added onboarding flow for new UI codebase
- New keybinding to copy chat message content to clipboard
- Implemented lsp_restart command
New Features
- Vercel AI Gateway support with API key configuration
- Keybinding to copy chat message content to clipboard (#1947)
- Onboarding flow on the new UI codebase
- lsp_restart command (#1930)
- New UI refactoring with improved speed and code simplicity (behind CRUSH_NEW_UI=1 flag)
Full Release Notes
# Vercel AI Gateway and secret UI stuff This release adds support for Vercel's fancy AI Gateway as well as a boatload of improvements to the secret-not-secret UI refactor that we've cleverly hidden behind a flag. Details below. ## Hello Vercel AI Gateway If you're one of those so-called “production-grade AI” people then you might like to know that Crush now supports the [Vercel AI Gateway](https://vercel.com/docs/ai-gateway). Just pop in your API key (pro tip: use your boss’s key), choose your fave model, mash out a prompt and LET IT RIP. <img width="650" src="https://github.com/user-attachments/assets/ae5ee47d-a014-40f9-bbce-202802c54eda" /> ## Shhhhh We're refactoring the UI for speed and code simplicity. It's not totally finished yet but, if you dare, set `CRUSH_NEW_UI=1` to try it out. Feedback welcome! ## You probably already know this but… …you rock. Thanks for all the Crush love. Your feedback for us is like ambrosia for Zeus. Enjoy your weekend! 💖 ## Changelog ### New! * 88d10d13367eb0722898196b78a422cf98b6c21e: feat(ui): add keybinding to copy chat message content to clipboard (#1947) (@aymanbagabas) * 28e0ff355198c3858f45fe87fea3d389f9a47b8e: feat: implement onboarding flow on the new ui codebase (@andreynering) * 0d4cbf82ab6e3b93696e01d075357c2c3331ddfa: feat: lsp_restart (#1930) (@caarlos0) ### Fixed * 44e1ca7c4a0c7d008b79a34521360a1d11d16883: fix(dialogs): prevent panic due to negative index (@andreynering) * 1073723a7e7d2f5c16ec7fd15b05974fc7293bf2: fix(list): prevent panic due to negative index (@andreynering) * 676c0382db253bc417e2380c72b7d499b6942b8c: fix(ui): models: ensure select loop breaks correctly and scroll to top on filter (@aymanbagabas) * b50d5799ac5642af2ce58c72922685e319768caf: fix(ui): only copy chat highlight when we have highlighted content (@aymanbagabas) * 8a37a3405a2461305b8300ba5deceb9bb2c753c8: fix(ui): prevent AAAA probe bleed in terminals without Kitty graphics support (#1967) (@AnyCPU) * 505283a22e75b2e6420ae90777527f23c834347a: fix(ui): rework cursor can appear out of place on multi-line (#1948) (@aymanbagabas) * 1fad83be4a3fb73b18047e00a68af5e3b29e3322: fix: add back suspend (@kujtimiihoxha) * 9604c92efbc0f6a97ac3dbcdc85fb7abf8967e99: fix: commands height (#1954) (@kujtimiihoxha) * fb3eeb010283210d3a60e3ed17e84b8dcd27821c: fix: completions width (#1956) (@kujtimiihoxha) * 1e691e0c49c343e0df46bc332f5d973b4cd85b7f: fix: ensure hyper is the first provider in the list (@andreynering) * 698b7c8049bd0bb75fccc47c11d472cb500b16ba: fix: handle new session when focused on the list (@kujtimiihoxha) * f002e6f855752dfa7fc197edbfaa84213771e675: fix: lsp sort (@kujtimiihoxha) * 4cf6af059742f4ed8ba58e1e24ca15bfb0f8aea5: fix: make sure we have a fresh model/tools on each call (@kujtimiihoxha) * 6ba301e6e1214eb8f8f5fcf2d51af0781d8ef7be: fix: new/update message behavior (#1958) (@kujtimiihoxha) * 945006a58431cebc294c7ee567ba6868f21735b0: fix: permission notification (#1955) (@kujtimiihoxha) * 138275336dd7523e73a3d576d053e0491bce7760: fix: route mouse events to the dialog if its showing (#1953) (@kujtimiihoxha) * 891b5353207386f5b3753380dbb41105d2f132bf: fix: tab to chat only when in chat (@kujtimiihoxha) ### Docs * da6f51e388663f93ad6e7fdcc14ee0ac04997681: docs: add vercel ai gateway to readme (#1951) (@jerilynzheng) ### Other stuff * 1b61cd2b80d2aebe3f7ced80d944639a1ead6345: chore: change the dialog sizes a bit (@kujtimiihoxha) * e753d09af1e9279302388f7d4a15a7e7135b4396: chore: do not scroll sessions if not neccessary (@kujtimiihoxha) * 8ebe91437c994ec0f88c005497b26feaad3e58c8: refactor(ui): add references tool (#1940) (@kujtimiihoxha) * 4e66b9c985cfa478dd7d75dcc8eb9bf65077f7d1: refactor(ui): enable initialize (@kujtimiihoxha) * 5454a2ed119bd5baad60853665c7315aa97255b5: refactor: rename `uiConfigure` to `uiOnboarding` (@andreynering) * 49a41de935eb6ae77eff4a9f3295055eec51c162: refactor: use different ansi image library (#1964) (@kujtimiihoxha) --- <details> <summary>Verifying the artifacts</summary> First, download the [`checksums.txt` file](https://github.com/charmbracelet/crush/releases/download/v0.35.0/checksums.txt) and the [`checksums.txt.sigstore.json` file](https://github.com/charmbracelet/crush/releases/download/v0.35.0/checksums.txt.sigstore.json) files, for example, with `wget`: ```bash wget 'https://github.com/charmbracelet/crush/releases/download/v0.35.0/checksums.txt' wget 'https://github.com/charmbracelet/crush/releases/download/v0.35.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).