- ターミナル上で動作する AI コーディングエージェントとして、さまざまな LLM(大規模言語モデル) と連携し、コード作成、ワークフロー自動化、コードコンテキストの維持などで コード生産性の向上をサポートします。
- 複数のモデルを選択したり、セッション中に自由に モデル切り替え ができ、プロジェクトごとのセッション/コンテキストの維持をサポートします。
- LSP(Language Server Protocol)連携、拡張可能な MCP(Model Context Protocol)対応、
.gitignore や個別ファイルの無視設定など 開発者向け機能を提供します。
- macOS、Linux、Windows、FreeBSD など 主要なターミナル環境で動作し、パッケージマネージャーまたは Go、バイナリなどの複数の方法でインストールできます。
- 直感的な設定と高度なカスタマイズを両立し、環境変数、JSON 設定、ツールのホワイトリストなど 上級ユーザーにも配慮した設計です。
Crush
- ターミナル環境で実行する AI コーディングエージェントで、開発者が好む LLM と自由に連携して、コーディング、編集、自動化をサポートします。
- 複数モデル(Anthropic、OpenAI、Groq、OpenRouter など) を自由に選択・切り替えでき、セッションごとにコンテキストを独立して管理します。
- LSP(Language Server Protocol) を通じて、各言語に適した追加コンテキストを受け取り、より賢くコードを補助します。
- MCP(Model Context Protocol) を通じて、外部システム、HTTP、コマンドライン、SSE などのさまざまなソースから追加情報を収集・活用できます。
主な機能
- マルチモデルサポート: OpenAI、Anthropic、Groq、OpenRouter など、さまざまな LLM を連携。直接追加も可能。
- セッションベースの作業: プロジェクトごとに複数の作業セッションとコンテキストを分離し、管理。
- 柔軟なモデル切り替え: セッションの途中でも自由にモデルを変更し、既存のコンテキストを維持。
- LSP 連携: Go、TypeScript、Nix など主要言語の LSP 接続で、コードの文脈を強化。
- 拡張性: MCP プロトコルベースで、外部 HTTP/CLI/SSE などの追加機能を簡単に拡張。
- 広範なプラットフォーム対応: macOS、Linux、Windows(WSL、PowerShell)、FreeBSD、OpenBSD、NetBSD など主要 OS のターミナルで動作。
- 直感的な設定: 別途設定なしで即利用可能で、必要に応じてプロジェクト別/グローバル JSON 設定をサポート。
- 強力な除外(ignoring)機能:
.gitignore、.crushignore ファイルを使用して、対象外のファイル/ディレクトリを管理。
- ツールホワイトリスト: ツール実行時の事前承認および自動実行オプションをサポートし、
--yolo フラグで全体プロンプトをスキップ可能(注意が必要)。
- カスタムプロバイダー: OpenAI、Anthropic 互換 API を自由に追加でき、価格やコンテキストなどの詳細オプションを指定可能。
インストールと開始
- Homebrew、NPM、Arch、Nix、Debian/Ubuntu、Fedora/RHEL など、さまざまなパッケージマネージャーおよびバイナリ/Go でインストール可能。
- 初回起動時に好みの LLM API キー(OpenAI、Anthropic、Groq など)を入力する必要があり、環境変数でも指定可能。
- 環境変数で連携可能な主要 LLM:
OPENAI_API_KEY、ANTHROPIC_API_KEY、GROQ_API_KEY、OPENROUTER_API_KEY、GEMINI_API_KEY、VERTEXAI_PROJECT など。
設定例
- グローバルまたはプロジェクト単位の JSON ファイル(
./.crush.json、./crush.json、$HOME/.config/crush/crush.json)で高度なオプションを適用
- LSP 設定: 言語別のコマンドを指定可能
{
"lsp": {
"go": { "command": "gopls" },
"typescript": { "command": "typescript-language-server", "args": ["--stdio"] }
}
}
- MCP 設定: HTTP/CLI/SSE ベースの外部拡張例
{
"mcp": {
"filesystem": {
"type": "stdio",
"command": "node",
"args": ["/path/to/mcp-server.js"]
}
}
}
- ファイル除外とツール承認
.crushignore で特定のファイル/フォルダーを除外
- ツール実行ホワイトリスト、または
--yolo フラグでプロンプトをスキップ
上級ユーザー向け機能
- カスタムプロバイダー登録: OpenAI/Anthropic 互換 API を追加し、価格・コンテキストなどの詳細オプションを指定。
- ロギング: プロジェクト別ログファイルを提供し、
crush logs、crush logs --follow などの CLI コマンドでリアルタイム確認。
- デバッグオプション:
--debug フラグまたは config で詳細ログを有効化
まだコメントはありません。