@conanmontreal/crush
A fork of Charm's Crush, a terminal-based AI coding assistant, carrying local patches:
- Copilot Responses-API routing can be extended from a user config file
(
~/.config/crush/copilot-responses-models) without rebuilding. - Mistral: content-block streaming deltas are rewritten into standard reasoning/text shapes, reasoning history is replayed in Mistral's thinking block format, and requests are signed like the Mistral Vibe CLI so a subscription-linked key draws on the Vibe allowance.
- Test-suite hardening: the binary is built from a tree where
go testcan never launch a browser.
Install
npm install -g @conanmontreal/crush
The postinstall step downloads the patched binary for Linux x86_64 from the fork's GitHub releases and verifies its sha256 checksum. Fork builds are Linux-only; on other platforms install upstream crush or build the fork from source.
Both this fork and upstream provide the same crush command, so uninstall the
upstream package first if it is installed:
npm uninstall -g @charmland/crush
The fork reads the same configuration as upstream (~/.config/crush/,
project .crush/ directories), so no config changes are needed.
Update
npm install -g @conanmontreal/crush@latest
Every merge to the fork's default branch produces a new version; the pipeline stages it on npm and a maintainer approves it with 2FA.
Maintainer note: install.js, lib.js and run-crush.js are the wrapper
scripts GoReleaser Pro generates for npm packages (copied verbatim from an
installed @charmland/crush 0.98.1). goreleaser's npm publisher is
Pro-only, so the publish npm workflow packages this directory itself:
lib.js reads the archives manifest in package.json at install time and
downloads the archive matching ${process.platform}-${process.arch} from the
release URL, verifying the sha256 digest. To refresh the scripts, copy the
three files out of a newer installed @charmland/crush package directory and
re-run the local end-to-end install test.