OpenCodeからCrushへ進化:CharmbraceletのターミナルAIコーディングエージェント徹底解説

# OpenCodeからCrushへ進化:CharmbraceletのターミナルAIコーディングエージェント徹底解説

## はじめに

2024年後半、開発者コミュニティを席巻したオープンソースプロジェクトがある。「OpenCode」だ。Go言語で開発されたターミナルベースのAIコーディングアシスタントとして、GitHubで瞬く間に12万以上のスターを獲得し、X(旧Twitter)やHacker Newsでも話題を独占した。多くの開発者が「ついにCursorやGitHub Copilotに匹敵するオープンソースの代替が登場した」と歓迎した。

しかし、2025年になると、OpenCodeは「Crush」という名前に改名され、Charmbraceletのエコシステムに組み込まれるという大きな変化を遂げた。この改名は単なるリブランディングではなく、プロジェクトの成熟とコミュニティへの帰属を象徴する出来事だった。

本記事では、OpenCodeがどのようなプロジェクトだったのか、そしてCrushとしてどのように進化したのか、その全貌を徹底的に解説する。

## OpenCodeとは何だったか

OpenCodeは、Go言語で開発されたターミナルベースのAIコーディングエージェントだった。最大の特徴は、同じくCharmbraceletが開発したBubble Teaフレームワークを使用した美しいTUI(Terminal User Interface)だ。テキストベースでありながら、マウス操作やキーボードショートカット、シンタックスハイライトなど、モダンな開発者体験を提供していた。

OpenCodeが爆発的な人気を集めた理由はいくつかある。

**第一に、オープンソースだったこと。** CursorやGitHub Copilotが商用製品であるのに対し、OpenCodeは完全にオープンソースで、誰でも自由に利用・改造・再配布できた。これは「自分のツールは自分でコントロールしたい」と考える開発者にとって大きな魅力だった。

**第二に、複数のLLM(大規模言語モデル)に対応していたこと。** OpenAIのGPTシリーズ、AnthropicのClaudeシリーズ、GoogleのGeminiなど、主要なLLMを切り替えて使うことができた。特定のベンダーにロックインされない柔軟性は、多くの開発者にとって重要なポイントだった。

**第三に、軽量で高速だったこと。** Go言語の恩恵で、シングルバイナリとして配布され、起動も高速。ブラウザを開く必要もなく、ターミナルの中で完結するという開発者のワークフローに自然に溶け込む設計が支持された。

GitHubで12万以上のスターを獲得するなど、オープンソース界隈において異例のスピードで成長を遂げたOpenCodeだったが、プロジェクトの規模が大きくなるにつれ、運営体制の整理とブランドの明確化が必要になった。そこでCharmbraceletの正式なプロジェクトとして「Crush」として生まれ変わったのである。

## Crushとは

Crushは、CharmbraceletによるOpenCodeの後継プロジェクトだ。キャッチフレーズは「Glamourous agentic coding for all 💘」。OpenCodeの核心となる機能や哲学はそのままに、Charmbraceletのエコシステムに完全に統合された形で再出発している。

Charmbraceletは、Go言語のターミナルUIライブラリ「Bubble Tea」や「Lip Gloss」を開発するチームで、ターミナルアプリケーションの美しさと使いやすさを追求するコミュニティとして知られている。Skate(SkateboardのCLI)、Vhs(ターミナル録画ツール)、Gum(ターミナルスクリプト作成ツール)など、25,000以上のアプリケーションで同社のライブラリが利用されている。

Crushは、この強力なエコシステムの上に構築されており、OpenCode時代の機能に加えて、より洗練されたUI、安定した開発体制、そしてコミュニティ主導のモデル管理システムなどを提供している。

## Crushの主な機能

Crushには、AIコーディングエージェントとして必要な機能が網羅的に実装されている。以下に主要な機能を解説する。

### マルチモデル対応

Crushの最大の強みの一つが、幅広いLLMへの対応だ。OpenAI(GPT-4、GPT-4oなど)、Anthropic(Claude 3.5 Sonnet、Claude 4 Opusなど)、Google Gemini、Groq、OpenRouter、Vercel AI Gateway、Cerebras、Hugging Face、MiniMax、Z.ai、Syntheticなど、主要なプロバイダーを網羅している。さらに、OpenAI互換APIやAnthropic互換APIを備えたカスタムプロバイダーも追加可能で、自社のLLMやローカルで動かしているモデルとも連携できる。

**セッション中のモデル切り替え**も可能だ。あるタスクではClaudeを使い、別のタスクではGPT-4を使うといった柔軟な運用ができる。コンテキストは保持されたまま切り替わるため、作業の中断を心配する必要はない。

プロバイダーのモデル一覧は、Charmbraceletが管理する「Catwalk」というオープンソースリポジトリでコミュニティ主導で管理されている。新しいプロバイダーやモデルの追加もコントリビューションで可能だ。

### LSP(Language Server Protocol)統合

CrushはLSPを活用して、コードの文脈をより正確に理解する。TypeScriptならtsserver、Goならgopls、Pythonならpyrightなど、言語に応じたLSPサーバーと通信することで、型情報、定義ジャンプ、リファレンス、エラー診断などの情報をAIのコンテキストに含めることができる。

これにより、単純なテキストベースのコード補完ではなく、プロジェクト全体の型システムや依存関係を理解した上で、より精度の高いコード生成・修正が可能になる。開発者がIDEで得ている情報と同等のコンテキストをAIにも提供するというアプローチだ。

### MCP(Model Context Protocol)対応

MCPは、AIモデルに外部ツールやデータソースへのアクセスを提供するためのプロトコルだ。CrushはMCPに対応しており、HTTP、stdio、SSEの3つのトランスポートをサポートしている。

MCPを活用することで、Crushはコード編集だけでなく、データベースへのクエリ、APIの呼び出し、ドキュメントの検索、ブラウザの操作など、より広範なタスクを実行できるようになる。ユーザーはMCPサーバーを追加することで、Crushの能力を無限に拡張できる。

### セッション管理

Crushはセションベースの設計を採用しており、プロジェクトごとに複数のワークセッションを管理できる。各セッションは独立したコンテキストを持ち、過去のセッションに簡単に切り替えることが可能だ。

例えば、あるプロジェクトで「バグ修正セッション」と「新機能開発セッション」を並行して進め、それぞれの文脈を維持したまま作業を切り替えることができる。これは、複数のタスクを同時に進行させる開発者にとって非常に便利な機能だ。

### クロスプラットフォーム対応

Crushは「Works Everywhere」を掲げ、幅広いプラットフォームに対応している。macOS、Linux、Windows(PowerShellとWSLの両方)、Android、FreeBSD、OpenBSD、NetBSDで動作する。特にWindowsへの対応は、WSL環境だけでなくネイティブのPowerShellでも動作する点が嬉しい。

Go言語のクロスコンパイルの強みを活かし、各プラットフォーム向けのネイティブバイナリが提供されている。また、パッケージマネージャー経由でも簡単にインストールできる(詳細は後述)。

## インストール方法

Crushは、各プラットフォームのパッケージマネージャーから簡単にインストールできる。以下に主要なインストール方法を紹介する。

### macOS / Linux

“`bash
# Homebrew
brew install charmbracelet/tap/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
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/apt/yum.repos.d/charm.repo
sudo yum install crush

# Arch Linux
yay -S crush-bin

# Nix
nix run github:numtide/nix-ai-tools#crush

# FreeBSD
pkg install crush

# Go
go install github.com/charmbracelet/crush@latest
“`

### NPM

Node.js環境をお使いなら、NPMからもインストール可能だ。

“`bash
npm install -g @charmland/crush
“`

### Windows

Windows環境では、wingetまたはscoopが利用できる。

“`bash
# Winget
winget install charmbracelet.crush

# Scoop
scoop bucket add charm https://github.com/charmbracelet/scoop-bucket.git
scoop install crush
“`

### Nix(NUR経由)

Nixユーザーには、NUR(Nix User Repository)経由でのインストールも用意されている。NixOSやHome Managerのモジュールも提供されており、flake.nixに直接統合できる。

“`nix
{
inputs = {
nixpkgs.url = “github:NixOS/nixpkgs/nixos-unstable”;
nur.url = “github:nix-community/NUR”;
};

outputs = { self, nixpkgs, nur, … }: {
nixosConfigurations.your-hostname = nixpkgs.lib.nixosSystem {
system = “x86_64-linux”;
modules = [
nur.modules.nixos.default
nur.repos.charmbracelet.modules.crush
{
programs.crush = {
enable = true;
settings = {
providers = {
openai = {
id = “openai”;
name = “OpenAI”;
base_url = “https://api.openai.com/v1”;
type = “openai”;
api_key = “sk-your-api-key”;
};
};
};
};
}
];
};
};
}
“`

## 他のAIコーディングツールとの比較

AIコーディングエージェントは現在百花繚乱の状態だ。ここでは、代表的なツールとCrushを比較する。

### OpenAI Codex CLI

OpenAI Codex CLIは、OpenAIが公式に提供するターミナルベースのコーディングエージェントだ。Node.jsとRustで開発されており、GPTシリーズのモデルに最適化されている。

**長所:** OpenAIの最新モデルをいち早く利用できる、公式サポートがある。
**短所:** GPTモデルしか使えない、OpenAIのエコシステムにロックインされる。
**vs Crush:** Crushは複数のプロバイダーに対応しているため、モデルの選択の自由度が圧倒的に高い。ただし、OpenAI純正という点ではCodex CLIに分がある。

### Claude Code

AnthropicのClaude Codeは、Claudeモデルに最適化されたコーディングエージェントだ。特にコードの推論能力や大規模リファクタリングにおいて高い評価を得ている。

**長所:** Claudeの推論能力を最大限に活かせる、複雑なタスクに強い。
**短所:** Claudeモデルしか使えない、Anthropicのエコシステムに依存する。
**vs Crush:** Claude Codeは単一モデルへの最適化が徹底されているため、特定のタスクではClaude Codeの方が高いパフォーマンスを発揮するかもしれない。しかし、CrushはClaudeも含めて複数モデルを柔軟に使い分けられるため、プロバイダー依存を避けたい場合には有利だ。

### OpenClaw

OpenClawは、ローカル環境での実行に特化したAIアシスタントフレームワークだ。複数のLLMに対応し、DiscordやTelegramなどのメッセージングプラットフォームとの統合を強みとしている。

**長所:** ローカル実行特化、Discord/Telegram統合、サブエージェントシステム、プラグインアーキテクチャ。
**短所:** コーディング特化というより汎用アシスタント、設定がやや複雑。
**vs Crush:** OpenClawは「AIアシスタント全般」を対象とする汎用ツールであり、Crushは「コーディング」に特化している。用途が異なるため、併用することも有効だ。例えば、OpenClawでプロジェクト全体の管理を行い、Crushで実際のコーディングを行うといったワークフローが考えられる。

### 比較まとめ

| 特徴 | Crush | Codex CLI | Claude Code | OpenClaw |
|——|——-|———–|————-|———-|
| 対応モデル | 複数(多数のプロバイダー) | GPTのみ | Claudeのみ | 複数対応 |
| オープンソース | ✅ | ❌ | ❌ | ✅ |
| LSP統合 | ✅ | ❌ | ❌ | ❌ |
| MCP対応 | ✅ | ❌ | ❌ | ✅ |
| セッション管理 | ✅ | ✅ | ✅ | ✅ |
| クロスプラットフォーム | ✅(多数) | ✅ | ✅ | ✅ |
| メッセージング統合 | ❌ | ❌ | ❌ | ✅ |
| ターミナルUI | ✅(Charm TUI) | ✅ | ✅ | ✅ |

Crushの最大の強調ポイントは、**オープンソースでありながら、複数のLLMプロバイダーに対応し、LSPやMSPといった開発者ツールの統合も行っている**ことだ。特定のベンダーにロックインされず、自分の好きなモデルを使える自由は、オープンソースコミュニティの価値観に合致している。

## まとめ

OpenCodeからCrushへの進化は、単なる改名以上の意味を持つ。Charmbraceletという確固たるエコシステムに帰属することで、Crushはより安定した開発体制とコミュニティサポートを獲得した。

Crushの魅力をまとめると以下のようになる。

– **自由なモデル選択**: OpenAI、Anthropic、Google、Groqなど、好きなLLMを使える
– **セッション中のモデル切り替え**: コンテキストを維持したままモデルを変更可能
– **LSP統合**: 言語サーバーの情報をAIのコンテキストに活用
– **MCP対応**: 外部ツールやデータソースへのアクセスで能力を拡張
– **美しいターミナルUI**: CharmbraceletのBubble Teaによる洗練されたインターフェース
– **クロスプラットフォーム**: macOS、Linux、Windows、Android、BSD系OSに対応
– **コミュニティ主導**: Catwalkプロジェクトでモデル一覧をコミュニティが管理
– **完全なオープンソース**: 自由に利用・改造・再配布可能

AIコーディングツールの世界は日々進化しているが、Crushは「オープンソース」「マルチプロバイダー」「ターミナルUIの美しさ」という軸で、独自のポジションを確立している。特定のベンダーにロックインされたくない、ターミナルでの作業にこだわりたい、オープンソースを応援したいという開発者にとって、Crushは間違いなく注目すべきプロジェクトだ。

ぜひ一度インストールして、ターミナルの中の新しいコーディング体験を試してみてほしい。あなたの「コーディングベストフレンド」が、ターミナルの中で待っている。

コメント

タイトルとURLをコピーしました