Crush
Crush is a powerful command-line tool for compressing and archiving files with modern algorithms and intuitive syntax. Built by Charm, it supports multiple compression formats including gzip, bzip2, xz, and zstd, while providing a unified interface that simplifies archive operations. The tool features intelligent format detection, progress indicators, and optimized compression levels for various use cases from quick backups to maximum space savings. Crush excels in DevOps workflows, backup automation, and file distribution scenarios where efficient compression and reliable extraction are critical. Its clean CLI design makes it ideal for both interactive use and scripting, offering better performance and user experience compared to traditional archiving tools.
Latest Releases
All releases- 8584922dc75b0911bf5dea2cbaec64af557f7a45: fix: route newer Copilot models through the Responses API (#4048) (@DaVinci42)
checksums.txt file](https://github.com/charmbracelet/crush/releases/download/v0.98.1/checksums.txt) and the [checksums.txt.sigstore.json file](https://github.com/charmbracelet/crush/releases/download/v0.98.1/checksums.txt.sigstore.json) files, for example, with wget:
``bash
wget 'https://github.com/charmbracelet/crush/releases/download/v0.98.1/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.98.1/checksums.txt.sigstore.json'
`
Then, verify it using [cosign](https://github.com/sigstore/cosign):
`bash
cosign verify-blob \
--certificate-identity-regexp '^https://github.com/charmbracelet/crush/\.github/workflows/(release|nightly)\.yml@' \
--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).
OSC 7501, [created by Superlogical for Rex](https://www.superlogical.com/updates/public-testing-beginning)! As a bonus, [TUIOS](https://github.com/Gaurav-Gosain/tuios) also supports the protocol.
<p><img width="700" src="https://github.com/user-attachments/assets/85680681-9397-456b-8283-4eed19635681" /></p>
x.AI OAuth
Now Crush supports Grok OAuth login. Enjoy!
<p><img width="550" src="https://github.com/user-attachments/assets/7663d52a-b5af-4969-972b-7db1189106b4" /></p>
Many more fixes
A lot of fixes were introduced this version:
- Server side improvements by @meowgorithm
- External editor swallowing empty buffer
- Models behind OAuth couldn't be used if they weren't in Catwalk
- Fixed MCP toggled misbehavior
- 19e7dd4e9df41fcad81082de3471004cde4ab606: feat: OSC 7501 (#4041) (@andrinoff)
- 30145cbc8fbb1b33eeeaafb527328474eb20e093: feat: grok OAuth (#3833) (@andrinoff)
- 8b1d542c2ef1be9a3022f67363d696e53f31b0d4: fix(mcp): keep sessions alive when a server doesn't support ping (#4033) (@taciturnaxolotl)
- ca6ae26ce016b980407ce32f012a467ec10c1e2f: fix(ui): keep multi-line tool output aligned under sub-agent branches (#4019) (@taciturnaxolotl)
- 5e3fe4b563b31e75692f103b6c95c41588f07ac1: fix(ui): render multiline question answers as one line (#4020) (@taciturnaxolotl)
- 76cc5c574e15072b15aaed0f4f843a5711fae0d9: fix(ui): stop the attachment row from claiming files that are visible (@taciturnaxolotl)
- 011a9416c0624341420f9dc8787680308f45b994: fix: Toggle MCPs bug with global and local (#4042) (@andrinoff)
- 5f295a6f55dd93d718c3d843b002272beb972525: fix: change anim colors on previewTheme too (#4015) (@andrinoff)
- 65865e01950368379ad1f9746b620a77fb7a5da8: fix: exclude signing from test (#4035) (@andrinoff)
- b4dd6e6d48eee2c315d6d0690b84c06f14099838: fix: openEditor swallowing an empty buffer (#4007) (@andrinoff)
- 140e8cb9707faa6a68d87d0ecc3a85b9c65e25d5: fix: stop intermittent CI test failures across all three platforms (#4034) (@taciturnaxolotl)
- bdcf796cb1ff241b0eb18139071d46a84dc1ee91: chore: auto-update files (@charmcli)
- 73d1a50a8b07cd0d296c63966ad9b26e7b105b4d: chore: jailbreak crush out of the meta repo (#4008) (@andrinoff)
- 2fbaa90b55ec711f713c35ed55602eeb789e6048: perf(prompt): read the current git branch without spawning a shell (@taciturnaxolotl)
- 08984f59d87587aa1cfd644b152034e644892def: refactor(ui): poll the git branch off the render path (@taciturnaxolotl)
- ee76ff2f206c6fe8e7c607ca6f4569de56787d80: server: add deadline to MCP fetch so hung server won't freeze UI (@meowgorithm)
- 5b7377befd23712e2c97b896425c8195e2a9c1ee: server: add support for git branches (@meowgorithm)
- 263a0201b0aac5e16781901103bcb0155cb911b2: server: back off MCP starting-state retries (@meowgorithm)
- 3297f43b9340996cd0de7507ae81b4b2422fb138: server: fix behavior where MCP status would not update in the UI (@meowgorithm)
checksums.txt file](https://github.com/charmbracelet/crush/releases/download/v0.98.0/checksums.txt) and the [checksums.txt.sigstore.json file](https://github.com/charmbracelet/crush/releases/download/v0.98.0/checksums.txt.sigstore.json) files, for example, with wget:
``bash
wget 'https://github.com/charmbracelet/crush/releases/download/v0.98.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.98.0/checksums.txt.sigstore.json'
`
Then, verify it using [cosign](https://github.com/sigstore/cosign):
`bash
cosign verify-blob \
--certificate-identity-regexp '^https://github.com/charmbracelet/crush/\.github/workflows/(release|nightly)\.yml@' \
--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).
- f2d66d286950109082c102d780013df84f741e55: fix: remove the powerline symbol (@andrinoff)
checksums.txt file](https://github.com/charmbracelet/crush/releases/download/v0.97.1/checksums.txt) and the [checksums.txt.sigstore.json file](https://github.com/charmbracelet/crush/releases/download/v0.97.1/checksums.txt.sigstore.json) files, for example, with wget:
``bash
wget 'https://github.com/charmbracelet/crush/releases/download/v0.97.1/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.97.1/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).
- ChatGPT OAuth now refreshes with Catwalk
- Claude Channels, part 2/3 by @joestump
- Toggle Sidebar on and off with <kbd>ctrl+b</kbd> by @andreynering
- Quit dialog improvements and mouse support by @meowgorithm
- Fixed clipboard false reporting successful copies by @taciturnaxolotl
- Count Anthropic cache-creating tokens by @yanyukang2003-ux
- Correctly resolving the project data directory in session and stats by @devYRPauli
- a9a257c46616a4ff32e0a796743384060c3e11c0: feat(mcp): Allow toggle MCPs on/off (#3725) (@BrunoKrugel)
- 2da6f781c5473cc4f2525ebf315846ff37b6b8b2: feat(tui): display git branch (#2437) (@Gustave-241021)
- 564d14e4453828614a3d631599fda796e6d2de7b: feat: Claude Channels delivery — session injection, exactly-once routing, reply-back (2/3) (#3346) (@joestump-agent)
- 62de0deb86f87f704d5388bed6bd9f40419a3e0a: feat: toggle the sidebar with ctrl+b (#3935) (@andreynering)
- a98394ff35cd97379f4a68bdf9169879eb4d7b2b: fix(agent): count Anthropic cache-creation tokens (#3841) (@yanyukang2003-ux)
- 4ab302dd44cc25895c69ca1aefd199380d56aa25: fix(clipboard): stop reporting successful copies as failures (#3952) (@taciturnaxolotl)
- 00b33e4b92a290425c15be7aa675251cec47df5f: fix(cmd): resolve the project data directory in session and stats (#3936) (@devYRPauli)
- fded9d7d7dffe33a0994c73b7b2e16310225825d: fix: reload OpenAI OAuth with Catwalk (#3949) (@andrinoff)
- 1f3827bcd2d20f38076b2d46123683271e6ed9ba: fix: reorder migrations (@taciturnaxolotl)
- 06e50a330e2b05b677726737d06852a35f5ff93f: chore: auto-update files (@charmcli)
- 8b1139bbbe8bea2e48f2b485d6e229e1e366089c: chore: auto-update files (@charmcli)
- 72654940d9e46961a7d804d536c45761e7084a08: chore: fantasy v0.45.1 (@andreynering)
- e3dc6d2a66c0d0d4f22dfa185d1e0e4cac985b62: ui: add mouse support to the quit dialogue (@meowgorithm)
- 04a2cd85d4e62e7ed2b2c51a8cc9391496e0c2ee: ui: align quit dialog button hit regions with centered row (@meowgorithm)
- 6f1fd614952306c5788381d2681f76636cae6e6f: ui: cover quit dialog mouse buttons and hover reporting in tests (@meowgorithm)
- 5c6dd666aa64fe0f3893521597a61b0dc698562d: ui: keep quit dialog buttons visible in small terminals (@meowgorithm)
- f043451debd3cc1ddc2c9831923fc36efa2b5f99: ui: report all mouse motion while hoverable dialogs are open (@meowgorithm)
checksums.txt file](https://github.com/charmbracelet/crush/releases/download/v0.97.0/checksums.txt) and the [checksums.txt.sigstore.json file](https://github.com/charmbracelet/crush/releases/download/v0.97.0/checksums.txt.sigstore.json) files, for example, with wget:
``bash
wget 'https://github.com/charmbracelet/crush/releases/download/v0.97.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.97.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).
insertbg -> insertcode_bg
deletebg -> deletecode_bg
This is what it looks like in code:
``jsonc
{
// ...
"diffinsertfg": "#629657",
"diffinsertcode_bg": "#2d3431",
"diffinsertgutter_bg": "#282d2c",
"diffdeletefg": "#a45c59",
"diffdeletecode_bg": "#33272d",
"diffdeletegutter_bg": "#2a232a",
// ...
}
`
See ya!
Charm 🎸
Changelog
Other stuff
- 56abdfa7f1fa2cbe1e073f553bc10b06598046f9: themes: prefix diff theme keys with diff_ (@meowgorithm)
- a88b5735ff056b52eee8d30121b85c8a8ca79601: themes: small adjustments to the key names in the theme API (@meowgorithm)
---
<details>
<summary>Verifying the artifacts</summary>
First, download the [checksums.txt file](https://github.com/charmbracelet/crush/releases/download/v0.96.1/checksums.txt) and the [checksums.txt.sigstore.json file](https://github.com/charmbracelet/crush/releases/download/v0.96.1/checksums.txt.sigstore.json) files, for example, with wget:
`bash
wget 'https://github.com/charmbracelet/crush/releases/download/v0.96.1/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.96.1/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).
Installation
npm install -g @charmland/crush
brew install charmbracelet/tap/crush
nix run github:numtide/nix-ai-tools#crush