Code Assistant について
Rust 製のオープンソースコーディングエージェントで、ネイティブ GUI、ターミナル、ヘッドレスモードを備えています。ツールの実行状況を表示しながらコード編集やコマンド実行を行い、文書の読み取りと MCP のクライアント・サーバーモードにも対応します。
主な機能
- 01ネイティブ GUI とターミナルモード
- 02ファイルの読み取り、検索、編集とコマンド実行
- 03ツールの動作と結果の表示
- 04文書を Markdown として読み取り
- 05プロジェクトごとの永続セッションと分岐
- 06MCP クライアント・サーバーモード
活用シーン
- 01エージェントによるコードベースの編集と調査
- 02ソースコードと併せた文書の確認
- 03外部 MCP サーバーへの接続
- 04MCP クライアントへのエージェント提供
MCP 対応
クライアントモードでは外部 MCP サーバーに接続し、そのツールを利用します。ヘッドレスサーバーモードでは、コーディングエージェントを MCP 経由で提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
コードアシスタント
Rust で書かれたオープンソースの AI コーディングエージェントです。ネイティブ GUI、ターミナルモード、エディターや MCP クライアントとの連携機能を備えています。コードベースを対象に自律的なエージェントループを実行し、ファイルの読み取り、検索、編集やコマンドの実行を行いながら、実際に何をしているかを常に確認できます。
はじめに
最も手軽に試す方法は、ビルド済みのファイルをダウンロードすることです。ツールチェーンは必要ありません。
- 最新のビルドをリリースページからダウンロードします。
- macOS:
Code-Assistant-macos-aarch64.app.zip(Apple Silicon)またはCode-Assistant-macos-x86_64.app.zip(Intel) - Linux:
code-assistant-linux-x86_64.zip - Windows:
code-assistant-windows-x86_64.zip
- macOS:
- 起動します。初回起動時に、code-assistant の 設定 画面が開きます。プロバイダーを選び(一般的なプロバイダーはワンクリックで選べます)、API キーを貼り付けて、モデルを選べば完了です。
- アプリ内からプロジェクトフォルダーを追加して、チャットを開始します。
すぐに使い始めるために、JSON ファイルを手動で編集する必要はありません。(必要であれば編集することもできます。設定ガイドをご覧ください。)
ソースからビルドする
# Install the Rust toolchain (macOS/Linux)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# On Linux (Debian/Ubuntu), install the system libraries gpui needs:
sudo apt-get install -y --no-install-recommends \
pkg-config build-essential libssl-dev libzstd-dev \
libfontconfig-dev libwayland-dev libx11-xcb-dev \
libxkbcommon-x11-dev libasound2-dev libvulkan1
# On macOS, install the metal toolchain:
xcodebuild -downloadComponent MetalToolchain
# Clone and build
git clone https://github.com/stippi/code-assistant
cd code-assistant
cargo build --release
バイナリは target/release/code-assistant に生成されます。自己完結型の macOS .app バンドルのビルド方法については、設定ガイドをご覧ください。
特長
特に重視している点をいくつか紹介します。
- 実際の動作を確認できる UI。 簡潔な「5 つのツールを呼び出しました」という表示ではなく、code-assistant は実行されたツールと、それぞれのツールがモデルにコンテキストとして渡した内容を表示します。動作がおかしくなったときも、その理由を確認できます。
- トークン効率を保つ保存時フォーマット。 プロジェクトでコードが自動フォーマットされると、エージェントが把握しているファイルの状態が古くなり、その後の編集が分かりにくい理由で失敗することがあります。code-assistant はフォーマッターを実行した後、ファイルを再読み込みしてトークンを無駄にすることなく、モデル自身が加えた編集をフォーマット後の結果に反映します。詳しくはdocs/format-on-save-feature.mdをご覧ください。
- ファイルのエンコーディングと改行コードを適切に扱います。 ファイルを保存時の形式(エンコーディング、BOM、CRLF/LF)のまま読み込み、モデルには整ったテキストを渡し、元と同じ形式で書き戻すため、改行コードが気付かないうちに書き換わることはありません。
- コードだけでなく、ドキュメントも検索して読み込みます。 Word、Excel、PowerPoint、PDF などを自動的に Markdown として取り込むため、ソースコードと一緒に実際のドキュメントもエージェントに渡せます。
機能
- 複数の LLM プロバイダー: Anthropic、OpenAI、Google Vertex AI、Ollama、 OpenRouter、SAP AI Core、Groq、Cerebras、Mistral など。
- 4 つの作業方法: Zed の GPUI を基盤とするネイティブ GUI、ターミナルモード、 ヘッドレス MCP サーバー、Zed などのエディター向け ACP エージェント。
- 適応型ツール構文: ネイティブの関数呼び出し、XML タグ、またはトリプルキャレット ブロックを、モデルに合わせてセッションごとに選択します。
- スマートフィルタリングによるリアルタイムストリーミング: ファイルを読み込む前に 編集するなど、安全でないツールの組み合わせをブロックします。
- プロジェクトごとのセッション: 分岐、永続的な状態、添付ファイル付きの下書きメッセージに対応します。
- サブエージェント、権限レベル、コマンドサンドボックス: コンテキストウィンドウが いっぱいになると、自動的にコンテキストを圧縮します。
- MCP クライアントモード: 外部の Model Context Protocol サーバーを接続し、その ツールを使用できます。
- ブラウザーセッション: エージェントが実際のブラウザーを操作(移動、読み取り、クリック、入力)して Web アプリをテストします。人間が介在するログインの引き継ぎにより、認証情報を一切見せることなく、 あなたとして操作できます。
- スキル: エージェントが必要に応じて読み込める、再利用可能なタスク固有の手順書です。
- ガイダンスの自動読み込み: プロジェクトルートから
AGENTS.md(またはCLAUDE.md)を 読み込み、リポジトリ固有の指示に従います。
インターフェース
code-assistant # native GUI (default)
code-assistant --tui # terminal interface
code-assistant acp # ACP agent for editors like Zed
code-assistant server # headless MCP server (e.g. Claude Desktop)
どのモードでも、初期タスクを指定できます:code-assistant --task "Explain this codebase"。
Zed に接続する(ACP)
Zed の設定に追加します:
{
"agent_servers": {
"Code-Assistant": {
"command": "/path/to/code-assistant",
"args": ["acp", "--model", "Claude Sonnet 4.5"],
"env": { "ANTHROPIC_API_KEY": "sk-ant-..." }
}
}
}
カスタムエージェントに関する Zed のドキュメントをご覧ください。
Claude Desktop に接続する(MCP)
Claude Desktop の設定で(Developer タブ → Edit Config):
{
"mcpServers": {
"code-assistant": {
"command": "/path/to/code-assistant",
"args": ["server"],
"env": { "SHELL": "/bin/zsh" }
}
}
}
設定
ほとんどの場合、アプリ内の Settings 画面だけで十分です。プロバイダー、 モデル、MCP サーバー、スキルを管理できます。すべて JSON ファイルでも設定でき、 高度なオプション(プロジェクトのセットアップ、サンドボックスモード、 ツール構文、セッションの記録、CLI フラグ)も用意されています:
→ 設定ガイドをご覧ください。
コントリビューション
コントリビューションを歓迎します!このコードベースでは、非同期 Rust、AI エージェント アーキテクチャ、クロスプラットフォーム UI をひととおり学べます。エージェントの動作で 気になる点があれば、まさにこのプロジェクトが大切にしている内容です。ぜひ issue を 作成してください。
ロードマップ
厳密なロードマップではなく、順不同でいくつかの方向性を示します:
- 古くなったファイルへの置換をブロック: モデルが、最後に読み込んでから変更された
ファイルに対して
replace_in_fileを実行しようとしていることを早期に検知し、 役立つメッセージを表示して拒否します。 - ツール使用の失敗を圧縮: トークンを節約するため、失敗したツール呼び出しや 一致しなかった検索ブロックを履歴から取り除きます。
- メモリツール: エージェントがプロジェクトのナレッジベースを構築できるよう支援します。
- サンドボックスの強化: ツールへのアクセスを、プロジェクト内で Git に追跡されている ファイルに制限します。
- 検索ブロックのあいまい一致: 完全一致の失敗による再読み込みを減らします。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。