A smarter, stronger Crush
Hi everyone! 👋
This new release includes a significant refactor on the internals of Crush:
- Crush is now much more resilient on the provider level and is now powered by a new library we've developed over the past few months.
- System prompts, tool calls and other important pieces were also tweaked to generally improve Crush’s behavior.
As a result, Crush should now to perform better on the provider-model and system prompt levels for better speeds, lower token usage, and better output across the board.
Config update for OpenAI-compatible providers
If you have any custom providers that use an OpenAI-compatible API, we highgly recommend updating its type on the config from openai to openai-compat. With this, Crush will now behave better with these providers, with extra features that were previously unavailable.
Note
If you have a custom provider that is just a proxy or router through the actual OpenAI API, please keep the type as just openai.
Do not hesitate to reach out on our Discord servers if you have any feedback! ✨
Changelog
New!
- bc3858f feat: refactor providers and improve system prompt (#1171) (@kujtimiihoxha and @andreynering)
Fixed
- 139749a: fix(tests): remove embedded providers, regenerate fixtures (@kujtimiihoxha)
Docs
- 85c57a4: docs(readme): add note section about
openaivs.openai-compat(@andreynering)
Other stuff
- 14ca920: chore: change providers url in the log (@kujtimiihoxha)
- f1b0dbb: chore: clone headers (@kujtimiihoxha)
- a314610: chore: do not override old headers (@kujtimiihoxha)
- 847cbbe: chore: do not prompt for init when empty (@kujtimiihoxha)
- ca09597: chore: do not respond with error (@kujtimiihoxha)
- 13d75fe: chore: improve edit instructions (@kujtimiihoxha)
- ec9f94f: chore: improve initialize (@kujtimiihoxha)
- 2aedcb7: chore: improve summarize logic (@kujtimiihoxha)
- 780459f: chore: make thinking mode persistent (@kujtimiihoxha)
- 5d42049: chore: more prompt improvements (@kujtimiihoxha)
- 042725f: chore: small fix (@kujtimiihoxha)
- a3e699d: chore: small fixes and catwalk update (@kujtimiihoxha)
- 342bc9e: chore: update docs (@kujtimiihoxha)
- f172aaa: perf: init coder agent in a goroutine (#1289) (@caarlos0)
Verifying the artifacts
First, download the checksums.txt file, for example, with wget:
wget 'https://github.com/charmbracelet/crush/releases/download/v0.13.0/checksums.txt'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' \
--cert 'https://github.com/charmbracelet/crush/releases/download/v0.13.0/checksums.txt.pem' \
--signature 'https://github.com/charmbracelet/crush/releases/download/v0.13.0/checksums.txt.sig' \
./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.
{ "$schema": "https://charm.land/crush.json", "providers": { "my-custom-provider": { "type": "openai-compat", // ... } } }