Global context, better commit messages, and you
It's been a bit! There’s lots of good stuff in this release, so let’s right get to it.
Global context
Want Crush to always call you Shirley? Or maybe you want it to default to Jujutsu? This is now a piece of cake with user-level context files thanks to @Amolith.
If you set an ~/.config/AGENTS.md or ~/.config/crush/CRUSH.md and Crush will reference on session start, just like your usual project-level AGENTS.md and CRUSH.md. Nice!
Crashes? Not on Kieran’s watch.
Kieran, otherwise known as @taciturnaxolotl, is fast. Really fast. The other day Crush crashed for him, he honed in on two bugs in Lip Gloss and Glamour, and patched them before we could say, "Don’t panic!" Thanks, Kieran!
Better commit messages and PR descriptions
You know what drives us crazy? When LLMs write overly-technical commit messages and PR descriptions. Commit messages and PRs should be understandable to readers unfamiliar with the codebase.
This PR improves the system prompt so LLMs author clearer, more understandable commit messages for human beings.
Named hooks
Thanks to contributor @BrunoKrugel, you can now name your hooks, making them easier to identify in the CLI.
For more info see #2778.
Client-server: socket fixes
Client-server mode isn’t quite ready for prime time yet, but many of us are using it day-to-day regardless. One of the coolest things about client server mode is that it runs over unix domain sockets (which absolutely rock) and named pipes on Windows. This release fixes two bugs around that:
- Stale sockets are now cleaned up on startup, allowing Crush to run properly
- On unix systems sockets now live in the places they actually belong:
$XDG_RUNTIME_DIRon Linux and$TMPDIRon macOS, rather than/tmp.
Try out client-server mode with CRUSH_CLIENT_SERVER=1.
See u soon
Thanks for all the positive feedback about Crush. We ❤️ you!
Charm
Changelog
New!
- 6242e4f: feat(config): load user-level context files (@Amolith)
- 021e377: feat(hooks): add name field to hooks (@BrunoKrugel)
Fixed
- 7c9f4bb: fix(server): clean up stale sockets + correct socket location (#3095) @meowgorithm
- 3e6f95e: fix: address potential indentation on commit messages trailings (#3106) (@andreynering)
- e4c82db: fix: bump lipgloss to v2.0.4 and glamour to v2.0.1 to fix crashes (@taciturnaxolotl)
- aad8cba: fix(bash/git): improve git commit and PR message standards (#3052) (@meowgorithm)
Docs
- aadb7e7: docs(hooks): add name field (@taciturnaxolotl)
Verifying the artifacts
First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:
wget 'https://github.com/charmbracelet/crush/releases/download/v0.77.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.77.0/checksums.txt.sigstore.json'Then, verify it using cosign:
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.txtIf the output is Verified OK, you can safely use it to verify the checksums of other artifacts you downloaded from the release using sha256sum:
sha256sum --ignore-missing -c checksums.txtDone! You artifacts are now verified!
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
{ "hooks": { "PreToolUse": [ { "name": "Mr. Hot Hook", "matcher": "bash", "command": "./hooks/my-hot-hook.sh", }, ], }, }