Crushは、Charmbraceletチームによって開発されたターミナル上で動作するAIプログラミングアシスタントです。Large言語モデル(LLM)を統合することで、開発者がターミナルでコーディング、デバッグ、プロジェクト管理を効率的に行えるように支援します。Crushは複数のモデルをサポートしており、ユーザーはそれらを切り替えて使用することができます。また、コードコンテキストのための言語サーバープロトコル(LSP)をサポートし、モデルコンテキストプロトコル(MCP)の拡張機能を提供します。macOS、Linux、Windowsを含む幅広いオペレーティングシステムと互換性があり、ターミナルを好む開発者のために、Crushはユーザビリティとパフォーマンスに重点を置いたクリーンなデザインで、コーディングをより効率的にするように設計されています。
機能一覧
- OpenAI、Anthropic、ネイティブモデル(Ollamaなど)など、複数の大規模言語モデル(LLM)をサポートし、途中でモデルを切り替えることができる。
- 言語サーバー・プロトコル(LSP)を統合し、コード補完、構文チェック、その他の機能を提供。
- モデル・コンテキスト・プロトコル(MCP)をサポートし、HTTP、stdio、SSE経由で機能を拡張。
- プロジェクト間の切り替えを可能にし、コンテキストを保持するマルチセッション管理を提供します。
- macOS、Linux、Windows(PowerShellおよびWSL)、FreeBSDなど、すべてのプラットフォームでの実行をサポートします。
- プロジェクト・レベルまたはグローバルな設定をサポートする柔軟な設定ファイルを提供します。
- コミュニティがサポートするモデルのリスト(Catwalk)で、ユーザーがモデルを簡単に追加・更新できる。
- エンドツーエンドのワークフローを最適化するためのコード生成とデバッグ機能を提供します。
ヘルプの使用
設置プロセス
Crushは、異なるオペレーティングシステムやパッケージマネージャ用の複数のインストール方法をサポートしています。以下は詳細なインストール手順です:
Homebrew経由でのインストール(macOS/Linux)
- ターミナルを開き、以下のコマンドを実行する:
brew install charmbracelet/tap/crush
- インストールが完了するまで待ち
crush --version
インストールが成功したことを確認する。
NPM経由のインストール(クロスプラットフォーム)
- Node.jsがインストールされていることを確認する。
- ターミナルで実行:
npm install -g @charmland/crush
- バージョンを確認する:
crush --version
.
Arch Linux 経由でのインストール
- Yay Package Managerを使ってください:
yay -S crush-bin
- インストールを確認する:
crush --version
.
ニックス経由のインストール
- 以下のコマンドを実行する:
nix run github:numtide/nix-ai-tools#crush
- またはNUR経由でインストールされる:
nix-channel --add https://github.com/nix-community/NUR/archive/main.tar.gz nur nix-channel --update nix-shell -p '(import <nur> { pkgs = import <nixpkgs> {}; }).repos.charmbracelet.crush'
Debian/Ubuntu経由でのインストール
- チャーム・ソフトウェアのソースを追加する:
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
- アップデートとインストール:
sudo apt update && sudo apt install crush
Fedora/RHEL経由でのインストール
- Yumリポジトリを追加する:
echo '[charm] name=Charm baseurl=https://repo.charm.sh/yum/ enabled=1 gpgcheck=1 gpgkey=https://repo.charm.sh/yum/gpg.key' | sudo tee /etc/yum.repos.d/charm.repo
- クラッシュをインストールする:
sudo yum install crush
インストールの確認
インストールが完了したら crush --version
バージョン情報を確認します。バージョン番号が表示されていれば、インストールは成功です。
APIキーの設定
Crushを正しく動作させるには、APIキーを設定する必要があります。以下に設定手順を示す:
- APIキーを取得する:
- サポートされているモデルプロバイダーには、OpenAI、Anthropic、Groq、OpenRouterがある。
- プロバイダーの公式サイトにアクセスして登録し、APIキーを取得する。
- キーを設定する:
- ターミナルで実行する
crush config
コンフィギュレーション・モードに入る。 - APIキーを入力し、プロンプトが表示されたら保存します。
- ターミナルで実行する
- ローカルモデルのサポート:
- ローカルモデル(Ollamaなど)を使用している場合は、OpenAPI準拠のインターフェースを設定する必要があります。例
{ "$schema": "https://charm.land/crush.json", "providers": { "ollama": { "type": "openai", "base_url": "http://127.0.0.1:11434/v1", "api_key": "ollama", "models": [ { "id": "devstral", "name": "devstral", "context_window": 131072 } ] } } }
- 設定ファイルをプロジェクト・ディレクトリに保存するか
~/.crush/config.json
.
- ローカルモデル(Ollamaなど)を使用している場合は、OpenAPI準拠のインターフェースを設定する必要があります。例
クラッシュの主な特徴
コード生成
- ターミナルで
crush code
などとニーズを説明する:crush code "编写一个 Python 函数,计算斐波那契数列"
- Crushは設定されたLLMを呼び出し、コードを生成して表示する。
- コードがブロックを正しくラップしていない場合
CRUSH.md
ファイルでルールを追加する:```python # 代码示例
コードデバッギング
- 輸入
crush debug
問題のコードを貼り付ける。 - クラッシュはコードを分析し、修正を推奨する。
- LSPによるデバッグの強化:
- のようなLSPサーバーを設定する。
gopls
::{ "$schema": "https://charm.land/crush.json", "lsp": { "go": { "command": "gopls" }, "typescript": { "command": "typescript-language-server", "args": ["--stdio"] } } }
- Crushは、LSPを使って構文チェックと補完候補を提供する。
- のようなLSPサーバーを設定する。
セッション管理
- 新しいセッションを作成する:
crush session new <项目名>
. - セッションを切り替える:
crush session switch <项目名>
. - セッションのリストを見る
crush session list
. - セッションはコンテキストを保持し、異なるプロジェクトのワークフローが衝突しないようにします。
拡張機能(MCP)
- MCPサーバーを設定する:
{ "mcp": { "transport": "http", "endpoint": "http://example.com/mcp" } }
- クラッシュは、MCPを通じて外部のツールやサービスにアクセスすることで機能を拡張します。
リリースファイルの検証
Crushは、ダウンロードされたファイルの安全性を保証するために署名検証を提供します:
- リリースファイルと署名ファイルをダウンロードする(例
checksums.txt
そしてchecksums.txt.sig
). - verifyコマンドを実行する:
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.1.11/checksums.txt.pem' \ --signature 'https://github.com/charmbracelet/crush/releases/download/v0.1.11/checksums.txt.sig' \ ./checksums.txt
- 出力はファイルが安全であることを示す "Verified OK "を示す。
アプリケーションシナリオ
- 端末の効率的なエンコーディング
- 開発者がターミナルでコードを書くと、Crushはコードスニペットを素早く生成し、デバッグの提案を行い、ブラウザやIDEに切り替える時間を短縮する。
- クロス・プロジェクト管理
- 複数のプロジェクトを管理する開発者にとって、Crushのセッション管理機能は、異なるプロジェクトのコンテキストを保存し、作業環境を素早く切り替えることができる。
- ローカルモデルの開発
- Ollamaのようなローカルモデルを使用している開発者は、Crushを使用してネットワークレス環境でコードを生成し、デバッグすることができる。
- チームワーク
- 設定ファイルや Catwalk モデルライブラリを共有することで、チームは開発環境を統一し、より効率的に共同作業を行うことができます。
品質保証
- クラッシュはどのOSに対応していますか?
- Crushは、macOS、Linux、Windows(PowerShellとWSLを含む)、FreeBSD、OpenBSDとNetBSDをサポートしています。
- 異なるLLM間の切り替えはどうすればよいですか?
- セッションでの実行
crush model switch <模型名>
または、設定ファイルでモデルを指定する。
- セッションでの実行
- クラッシュはオフラインでの使用に対応していますか?
- ローカルモデル(Ollamaなど)とローカルコンフィギュレーションを使えば、Crushは完全にオフラインで実行できる。
- コードブロックのレンダリング問題を解決するには?
- ある
CRUSH.md
ファイルにコード・ブロック・ルールを追加するか、LLM出力フォーマットの設定を確認してください。
- ある