v0.56.0

charmbracelet/crushv0.56.0Apr 8, 2026by github-actions[bot]

AI Summary

Self-debugging tools added (crush_info, crush_logs), LSP sidebar restored, and config JSON schema fixed.

Key Highlights

  • Added crush_info tool for reading live config
  • Added crush_logs tool for reading application logs
  • LSPs restored to sidebar
  • Fixed crush.json schema generation
  • Auto-open Hyper auth dialog on unauthorized

New Features

  • crush_info tool
  • crush_logs tool
  • Hyper auth dialog auto-open

Full Release Notes

# Crush better at Crush

You might have noticed that on [v0.55.0](https://github.com/charmbracelet/crush/releases/tag/v0.55.0) we added a built-in skill to instruct Crush on how to configure itself. Adding a custom provider, LSP or MCP; changing settings, etc. can be easily done with prompts.

In this release, we added two new tools to help Crush debug itself:

* **`crush_info`**: Returns configuration, so Crush can see what is in the final configuration with all config files merged.
* **`crush_logs`**: Show logs from Crush itself. Helps Crush to debug itself in case something is now working right.

Of course, the model should only call these tools if asked to. If you want to disable them to ensure it's never available, add this to your config:

```json
{
  "options": {
    "disabled_tools": ["crush_info", "crush_logs"]
  }
}
```

## LSPs back to sidebar

LSPs are now showing again at the sidebar. There was an issue preventing them appearing there. Thanks @fuleinist for the fix!

## Config JSON schema fixed

@BrunoKrugel worked on a fix for an issue related to auto-generating the JSON schema for our config. This is typically used by code editors and even models, and it's not fixed!

See ya all in the next release 👋 
Charm

## Changelog
### New!
* df39b6443987ca34ff516efd6b62e54f59b36efa: feat(tools): add crush_info tool implementation files (@meowgorithm)
* 77fcc761173795afb85ef900f427e370c1fcb170: feat(tools): add crush_logs tool for reading application logs (@meowgorithm)
* 27727343e0ce15d0f29d7d575e88d8566ebaf566: feat(tools): crush_info tool for readling live config (@meowgorithm)
* 59943a82e2fdb19dc0867607de851ac3411f6a83: feat: open Hyper auth dialog automatically on unauthorized error (@andreynering)
### Fixed
* fccf061d46394c0feb21c8b7743eb57530024653: fix(app): derive shutdown context from `context.Background()` instead of cancelled `globalCtx` (#2242) (@AnyCPU)
* baae1b6d0e03f6db36c13a2915d8ef379bbb0564: fix(lsp): clone slice to avoid mutation (@andreynering)
* fa1565813cc109d70c6d5ef2d312b25cf3c657b8: fix(schema): fix `crush.json` schema generation (#2574) (@BrunoKrugel)
* 85445d7f50b004722f568496d61c2d7e2b51fb7a: fix(ui): subscribe to `app.LSPEvent` instead of `workspace.LSPEvent` (#2565) (@fuleinist)
### Docs
* 18823f3556d7d2a9701a75925540cde43cb2f911: docs(readme): mention `AVIAN_API_KEY` (#2557) (@avianion)
### Other stuff
* 1bb46270a9fc0a05e409804ab7950056384bf24b: chore(skills/crush-config): improve crush config skill (#2556) (@meowgorithm)
* 1b7a457f279e9726032ac92b7ccfe4ee17479ffb: chore: add custom error and message for hyper unauthorized (#2577) (@andreynering)
* 85b66c3733061d389f3b4fe1d818589548843e16: chore: auto-update files (@charmcli)
* 6e854b488d0ebdc39ddf65beab2188d572831e4d: chore: update unauthorize message (@andreynering)
* 6f7762fce8aca534b141d977d13c75237220aa63: feat(tools/crush_info): add skill status (@meowgorithm)
* 269bc30e2038750b0dbff76f329d5b07775a13e5: feat(tools/crush_info): handle config staleness (@meowgorithm)
* 816453b49639ed32efbd5bbf6ea8a286c12167ec: feat(tools/crush_info): staleness detection and auto-reload (@meowgorithm)
* 2e07c0d34de293db26caf49d62bbe5af6c59a46b: style: standardize log capitalization (@andreynering)

---

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

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

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