Project skills + more
Hey! It's Wednesday already (time flies), and we're here bringing you a few good nice enhancements. Stay with us!
Project skills
We just added support for local skills. This means that you can easily share skills with your team mates or contributors inside the repository by just committing them.
Crush will look for the following projects paths:
.agents/skills.crush/skills.claude/skills.cursor/skills
Another related enhancement is that Windows users will also be able to put global skills on ~/.config/crush/skills or ~/.config/agents/skills, which is a little bit easier to manage to having them on ~\AppData\Local\crush\skills\.
Check out the complete docs here.
Non-English prompts
We improved our system prompts to enforce that the model should respond to message and generate session titles according to your prompt language. For example, if you're talking to the model in Portuguese 🇵🇹 🇧🇷, you'll want it to respond in Portuguese.
Better file picker order
You know that you can easily pick files fro the text area by typing @, right? @huaiyuWangh made a great contribution on significantly improving the sorting based on your filter. This is a very signiifcant UX improvement for bug repos.
Talking about @huaiyuWangh, he also fixed the "Open file picker" option in the command pallette (ctrl+p).
Allow apps to detect Crush
Starting on this release, Crush will set these ENVs when running Bash commands via the Bash tool. The intention is to allow programs to detect that they are being ran by Crush.
CRUSH=1AGENT=crushAI_AGENT=crush
The AGENT and AI_AGENT ENVs are kinda a unofficial new standard, so a few tools already look for them.
That's all for today.
Enjoy the release and keep Crushing!
The Charm Team ✨
Changelog
New!
- 0f5df9b: feat(bash): set
CRUSH=1,AGENT=crushandAI_AGENT=crush(#2484) (@andreynering) - 0fcf79b: feat(ui): improve file completion ranking algorithm (@huaiyuWangh)
- f67fa35: feat(ui): prioritize filename-based completion ranking (@huaiyuWangh)
- cd5c937: feat: load project skills automatically from
.crush/skillsand more (@andreynering)
Fixed
- d89120c: fix(hyper): ensure it's possible to override with
HYPER_URL(@andreynering) - ffc7a9d: fix(log): don't conflate body drain errors with HTTP errors (@meowgorithm)
- 697fad9: fix: complete file picker dialog action (#2483) (@huaiyuWangh)
- db043c3: fix: on windows, also load skills from
$HOME/.config/crush/skills(@andreynering) - 06cf63f: fix: session titles should keep the same spoken language (@andreynering)
Docs
- 0e3d472: docs(readme): update skill docs with updates and new paths (@andreynering)
- 09da90a: docs(ui): add comprehensive comments to completion ranking algorithm (@huaiyuWangh)
Other stuff
- 6920cf1: chore(lint): modernize interfaces in the db package (@meowgorithm)
- 1a0b638: chore: update generated
.crush/.gitignoreto not ignore skills (@andreynering) - 2325de7: fix(system-prompt): tell the model to respond in the prompt spoken language (@andreynering)
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.52.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.52.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.