v0.31.0

charmbracelet/crushv0.31.0Jan 7, 2026by github-actions[bot]

AI Summary

This is a maintenance release for charmbracelet/crush that introduces the ability to load skills from a general 'agents' directory (~/.config/agents/skills), removes Claude Code support to align with Anthropic's terms of service, and includes various small fixes and UX improvements.

Key Highlights

  • Skills can now be loaded from ~/.config/agents/skills directory
  • Claude Code support was removed to align with Anthropic's terms of service
  • Fixed MCP tool filtering to centrally handle disabled tools
  • Fixed Posthog boolean property naming for non-interactive mode
  • Fixed file marking when attachments are added

Breaking Changes

  • Claude Code support has been removed from the application

New Features

  • Load skills from ~/.config/agents/skills directory in addition to existing locations

Full Release Notes

# Fixes and ch-ch-ch-changes

How's it going? This is primarily a maintenance release.

* Skills can now be loaded from a general "agents" directory (e.g `~/.config/agents/skills`)
* Claude Code support was removed to align with Anthropic’s terms of service
* Various small fixes and UX improvements

Special thanks, as always, to star contributor @Amolith for the constant improvements. See you next release 💘

## Changelog
### New!
* 6b3cd26f9f78ae7318153922763025bfa8831443: feat(skills): also load from .config/agents (#1755) (@Amolith)
* 5590161f86806f00bc8e4702b0c67d2abcaa9c62: feat: remove claude code support (#1783) (@andreynering)
### Fixed
* bf39639c3d152196384fc139161719202f04f2f8: Revert "fix: prevent filename insertion when dragging attachments" (#1773) (@meowgorithm)
* 43b0e0bcba1930653125dc156dd532e436a63b1d: fix(mcp): centrally filter disabled tools (#1622) (@Amolith)
* ca21111b7672c775ddfab566063c2b9ad044dee3: fix(posthog): correct bool prop name for non-interactive mode (#1771) (@andreynering)
* 56f1b37a19e145b210ae1fdaca1f0637ed41ef82: fix(posthog): normalize `interactive` prop case (@andreynering)
* 2bdac87e4a1505af3b17e1154b92bdf963c1df7b: fix: mark files that are attched as read (#1777) (@kujtimiihoxha)
### Other stuff
* 4cc3aeb4ee100841de75f58c8cbece3f3f4f241d: chore: fix typo in const name (@andreynering)

---

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

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

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