日常的なソフトウェア開発において、ブラウザ上のAIチャット画面とローカルターミナルを行き来する作業は大きな集中力の断絶を生みます。エラーログやスタックトレースをコピー&ペーストし、生成されたコードの断片を手作業でエディタに貼り付けて差分を確認する作業は、開発効率を著しく低下させます。Mistral AIがオープンソースとして提供するターミナルネイティブなコーディングエージェント「Mistral Vibe(mistral-vibe)」は、このペインポイントを解消するために設計されました。
Mistral Vibeはコマンドライン上で直接動作し、プロジェクトのディレクトリ構成を理解し、Gitブランチやコミット履歴を把握した上で、複数ファイルにまたがるボイラープレートの生成や、テスト実行を伴う自律的なコードリファクタリングをターミナル内で完結させます。
1. 事前準備とインストール手順
Mistral Vibeはモダンなターミナル環境向けに最適化されています。公式にはLinuxおよびmacOS環境を主要ターゲットとしていますが、Windows環境でもuvやPowerShellを介して利用可能です。
システム要件
- Python 3.10以降(Pythonパッケージマネージャー経由で導入する場合)。
- UTF-8およびANSIエスケープシーケンスに対応したモダンなターミナルエミュレータ(Ghostty、WezTerm、Kitty、Alacrittyなど)。
- Mistral AI APIキー(Mistral AI Consoleより発行)または有効なMistralサブスクリプション。
インストール方法
開発環境に応じて、以下のいずれかの方法でインストールします:
方法1: ワンライナーシェルスクリプト(macOSおよびLinux推奨)
curl -LsSf https://mistral.ai/vibe/install.sh | bash
方法2: uvによるインストール(高速かつ環境分離)
uv tool install mistral-vibe
方法3: 標準的なpipによるインストール
pip install mistral-vibe
初期セットアップとAPIキーの設定
インストール後、対話型セットアップコマンドを実行して認証を設定します:
vibe --setup
セットアップウィザードによりMISTRAL_API_KEYの入力が求められ、認証情報は~/.vibe/.envに安全に保存されます。また、シェルの設定ファイル(~/.bashrcや~/.zshrc)に直接環境変数を定義することも可能です:
export MISTRAL_API_KEY="your-mistral-api-key-here"
ローカル設定を含む新規プロジェクトで初めてVibeを起動する際、信頼フォルダ確認(Trust Folder System)により現在のワークスペースを信頼するか確認されます。承認されると~/.vibe/trusted_folders.tomlに登録され、予期しないディレクトリでの危険なコマンド実行を未然に防止します。
2. コアコンセプト:エージェントプロファイルと安全制御
自律的なコーディングエージェントを実務に導入する際、権限と安全境界の設計が極めて重要です。Mistral Vibeには、ツールの実行やファイル変更の許可レベルを制御するビルトインプロファイルが用意されています。
| エージェントプロファイル | ツール承認と安全境界 | 主なユースケース |
|---|---|---|
accept-edits(デフォルト) | ファイル編集(write_file、edit)を自動承認;シェルコマンド実行時は都度ユーザーに確認を要求。 | 日常的な機能実装、コードリファクタリング、プロジェクト構築。 |
plan | 読み取り専用モード。安全な参照ツール(read、grep、ripgrep)のみ自動承認;ファイルの書き換えやコマンド実行を遮断。 | コードベースの設計調査、アーキテクチャレビュー、安全な監査。 |
ask | すべてのツール実行およびファイル変更について、事前にユーザーの承認を要求。 | 重要な本番環境コードの修正や、不慣れなサードパーティコードの探索。 |
auto-approve(--yolo) | すべてのツール、ファイル書き込み、シェルコマンドを無停止で完全自動実行。 | CI/CDパイプライン、自動実行スクリプト、使い捨てコンテナ環境。 |
起動時にプロファイルを明示的に指定できます:
vibe --agent plan
対話セッション中であれば、ショートカットキーShift+Tabを押すことでいつでもプロファイルを切り替えられます。
3. 対話型ターミナルインターフェースの基本操作
プロジェクトのルートディレクトリに移動し、コマンドを入力するだけで対話型セッションが始まります:
cd /path/to/my-project
vibe
Mistral Vibeはリッチなターミナルユーザーインターフェース(TUI)を起動し、現在の作業ディレクトリ、Gitブランチ、直近のコミット履歴を自動的にモデルのコンテキストへ注入します。
インタラクティブ入力構文
プロンプト内では、以下の特殊記号を活用して正確に指示を伝えます:
@path/to/file: 特定のファイルやディレクトリを参照します。Git管理下のファイルパス補完が効きます。画像ファイル(.png、.jpg、.webp)を指定した場合、マルチモーダルモデルへ直接画像コンテキストとして送信されます。!command: シェルエスケープ。LLMを介さず、ローカルシステム上で直接コマンドを実行します(例:!git status、!pytest)。/: スラッシュコマンドメニューを開きます。
主要なスラッシュコマンド
/model: 使用する基盤モデル(mistral-medium-3.5やcodestral-latestなど)を切り替えます。/config: インタラクティブな設定エディタを開き、外観や動作を変更します。/mcpまたは/connectors: Model Context Protocol(MCP)サーバーおよびコネクタの接続状態を確認します。/loop [定期ルール]: 定期的な自動プロンプトをスケジュールします(例:/loop every five minutes check git status and test)。/retry [追加指示]: 生成が中断した場合や修正が必要な際、途中応答から再開して軌道修正します。/clear: セッションの会話コンテキストをリセットします。/exit(または:q): セッションを安全に終了します。
操作効率を高めるTUIショートカット
Shift+Tab: エージェントプロファイル(accept-edits、plan、ask)を切り替えます。Ctrl+O: ツールの詳細実行ログ表示を折りたたみ/展開します。Ctrl+T: エージェント内部のタスク一覧(todoリスト)を表示/非表示にします。Ctrl+G: 外部エディタ($EDITOR)を起動し、長文や複雑な要件プロンプトを作成します。Escape: 現在実行中のエージェントの思考・生成ターンを即座に中断します。
4. エージェントによる開発ワークフローの実践
Mistral Vibeは、「コードベース構造の調査」「複数ファイルにまたがるボイラープレート生成」「自律テスト修正ループを伴うリファクタリング」の3つのユースケースで真価を発揮します。
シナリオ1: サブエージェントを活用した安全なアーキテクチャ調査
初見のプロジェクトで構造を把握したい場合、読み取り専用のplanモードを使用します:
vibe --agent plan
プロンプト例:
認証ミドルウェアがJWTトークンを検証する処理の流れを追跡し、ユーザー情報(Claims)がリクエストコンテキストにどのように付与されているか説明してください。
エージェントはgrepやreadを使用してリポジトリを検索します。検索範囲が広い場合、Vibeはtask()ツールを通じてビルトインのexploreサブエージェントへ探索タスクを委任します。サブエージェントは独立したコンテキストで並行処理を行うため、メイン会話のトークン消費を抑えられます。
シナリオ2: 複数ファイルにわたるボイラープレートと新機能のスキャフォールディング
1回のプロンプト指示で、関連する複数ファイルを連動して作成・更新できます:
src/monitoring/ 配下にヘルスチェックおよびメトリクス収集サブシステムを構築してください:
1. src/monitoring/health.py を作成し、CPU・メモリ・ディスクリソースの確認ロジックを実装する。
2. src/monitoring/metrics.py を作成し、Prometheusメトリクスエンドポイントを提供する。
3. src/main.py に新しいヘルスチェック用ルーターを組み込む。
4. tests/test_monitoring.py に単体テストを実装する。
デフォルトのaccept-editsモードにおいて:
- Vibeは
readでsrc/main.pyのルーティング構造を把握します。 write_fileで新規モジュールとテストコードを作成します。editを用いてsrc/main.pyに必要な差分のみを的確に適用します。- 実装完了後、シェルでテストを実行するかどうかをユーザーに確認します。
シナリオ3: 複数ファイルのリファクタリングと自律修正ループ
インターフェース変更を伴うリファクタリングでは、エラー出力を読み取って自律的に修正する機能が不可欠です。
プロンプト例:
@src/services/user_service.py と @src/services/order_service.py のデータベースセッション処理を、同期処理からSQLAlchemyの非同期セッションにリファクタリングしてください。@src/api/routes.py のハンドラーも適合させ、すべてのテストが通るまでpytestを実行して修正してください。
エージェントは以下のサイクルを自動で回します:
- 依存関係の調査: サービス層とAPI層の定義を読み込みます。
- パッチ適用: 該当ファイル群に対して統一差分(Diff)形式で修正を適用します。
- テスト実行:
pytest tests/の実行許可を要求します。 - 自律デバッグ: 非同期セッションのコミット漏れ等でテストが失敗した場合、ターミナルの標準エラー出力を解析し、問題となったクエリコードを特定して再修正し、すべてのテストがグリーンになるまで反復します。
5. プロジェクトのカスタマイズ:AGENTS.md、スキル拡張、MCP
チーム固有のコーディング規約やルールに沿ってエージェントを動作させるため、柔軟なカスタマイズが可能です。
AGENTS.mdによる振る舞いの標準化
Mistral Vibeはプロジェクト内のAGENTS.mdを自動検出し、システムプロンプトに統合します:
~/.vibe/AGENTS.md: ローカルマシン上の全プロジェクトに適用されるグローバル指示。./AGENTS.md: 当該リポジトリ固有のルール(グローバル設定より優先)。
プロジェクトのAGENTS.md設定例:
# 開発ガイドライン
- すべてのPythonコードはPython 3.12の型ヒント記法に厳密に従うこと。
- 非同期テストはpytestを用い、asyncio_mode = "auto" を指定すること。
- 明示的な指示がない限り、alembic/versions/ 配下のマイグレーションファイルは変更しないこと。
- タスク完了前には必ず ruff format を実行してコードスタイルを統一すること。
スキル機能によるカスタムスラッシュコマンドの追加
Vibeはオープン規格「Agent Skills」に準拠しています。.vibe/skills/<skill名>/ または .agents/skills/<skill名>/ 配下に SKILL.md を配置することで、独自のコマンドを追加できます:
---
name: security-audit
description: ハードコードされた秘密情報や脆弱な依存関係を検査する
user-invocable: true
allowed-tools:
- read
- grep
- bash
---
# セキュリティ監査スキル
pip-auditを用いて依存パッケージの脆弱性を検証し、コードベース内の機密トークン露出をスキャンします。
保存後、対話プロンプトで /security-audit を入力するだけで、定義したワークフローを即座に呼び出せます。
6. プログラムモードによるCI/CD自動化
対話型での利用に加え、Mistral Vibeはヘッドレス(非対話型)のプログラムモードを備えており、CI/CDや自動スクリプトへの組み込みが可能です。
-p または --prompt フラグを用いてワンショットでタスクを実行します:
vibe --prompt "git diff HEAD~1 で変更された全ファイルを検証し、フォーマット違反を修正した上で、APIシグネチャ変更があればREADME.mdを更新してください" \
--auto-approve \
--max-turns 10 \
--max-price 1.50 \
--output json \
--output-dir ./ci-artifacts/
プログラム実行における制御オプション
--max-turns N: ターン数の上限を設定し、予期しない無限ループを防止します。--max-price DOLLARS: USD単位での利用上限額を設定します。--max-tokens N: 消費トークンの累積上限を設定します。--time-limit SECONDS: 秒単位でのタイムアウトを設定します。--output FORMAT: 出力形式をtext、json、または行指向のstreamingから選択します。--output-dir DIR: 実行メタデータ、設定、トークン消費量を記録したexport.jsonを指定ディレクトリへ保存します。
7. ターミナルネイティブ開発におけるベストプラクティス
- 大規模変更の前にGitツリーをクリーンにする: 自動変更を依頼する前に、未コミットの変更をコミットするか
git stashで退避させておくと、問題発生時にもgit diffやgit checkoutで即座に安全確認・復元が可能です。 @記号でコンテキストを絞り込む: 大規模なプロジェクトでは、@src/core/config.pyのように主要ファイルを明示することで、エージェントが無駄な広範検索を行わずに済み、トークン消費と処理時間を削減できます。- 大規模改修はまず
planモードで検討する: 大幅なアーキテクチャ変更を行う場合は、まずvibe --agent planで実装計画を出力させ、妥当性を確認してからaccept-editsに移行することをおすすめします。 - 自動テストのフィードバックを活用する: 人間がパッチの各行を目視確認するだけでなく、エージェントにテストコマンドを実行させ、失敗ログから自己修正させることで、コードエージェントの自律的な価値を最大限に引き出せます。