「インストール - RustRover」の版間の差分

提供: MochiuWiki : SUSE, EC, PCB

編集の要約なし
編集の要約なし
 
180行目: 180行目:
<br>
<br>
この設定は、以下に示すような場合に有効である。<br>
この設定は、以下に示すような場合に有効である。<br>
* std::io::stdin().read_line()等の入力待ちを使用する場合
* <code>std::io::stdin().read_line()</code> 等の入力待ちを使用する場合
* プログラムの実行結果をより見やすく表示する場合
* プログラムの実行結果をより見やすく表示する場合
* IDE内蔵のコンソールで文字化け等の問題が発生する場合
* IDE内蔵のコンソールで文字化け等の問題が発生する場合
187行目: 187行目:
== Cargoの設定 ==
== Cargoの設定 ==
==== Cargo.tomlの編集 ====
==== Cargo.tomlの編集 ====
RustRoverは、Cargo.tomlファイルの編集時に、依存関係の自動補完とバージョン管理機能を提供する。<br>
RustRoverは、<u>Cargo.toml</u> ファイルの編集時に、依存関係の自動補完とバージョン管理機能を提供する。<br>
<br>
<br>
依存関係を追加する場合、以下のようにCargo.tomlファイルを編集する。<br>
依存関係を追加する場合、以下のようにCargo.tomlファイルを編集する。<br>
<br>
  <syntaxhighlight lang="toml">
  <syntaxhighlight lang="toml">
  # Cargo.tomlファイル
  # Cargo.tomlファイル
204行目: 205行目:
<br>
<br>
または、以下のコマンドで依存関係を追加できる。<br>
または、以下のコマンドで依存関係を追加できる。<br>
<br>
  cargo add serde --features derive
  cargo add serde --features derive
  cargo add tokio --features full
  cargo add tokio --features full
<br>
<br>
==== Cargoワークスペース ====
==== Cargoワークスペース ====
複数のクレートを含むワークスペースを作成する場合、ルートディレクトリにCargo.tomlファイルを作成する。<br>
複数のクレートを含むワークスペースを作成する場合、ルートディレクトリに <u>Cargo.toml</u> ファイルを作成する。<br>
<br>
  <syntaxhighlight lang="toml">
  <syntaxhighlight lang="toml">
  # Cargo.tomlファイル (ワークスペースルート)
  # Cargo.tomlファイル (ワークスペースルート)
222行目: 225行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
RustRoverは、ワークスペース内のすべてのクレートを自動的に認識し、相互参照を提供する。<br>
RustRoverは、ワークスペース内の全てのクレートを自動的に認識し、相互参照を提供する。<br>
<br><br>
<br><br>


228行目: 231行目:
==== GDBまたはLLDBのインストール ====
==== GDBまたはLLDBのインストール ====
Linuxでは、GDBまたはLLDBをインストールする必要がある。<br>
Linuxでは、GDBまたはLLDBをインストールする必要がある。<br>
  # openSUSE/SLESの場合
<br>
  # SUSE
  sudo zypper install gdb
  sudo zypper install gdb
   
  ## または、LLDBを使用する場合
# または、LLDBを使用する場合
  sudo zypper install lldb
  sudo zypper install lldb
<br>
<br>
  # RHEL/Fedoraの場合
  # RHEL
  sudo dnf install gdb
  sudo dnf install gdb
   
  ## または、LLDBを使用する場合
# または、LLDBを使用する場合
  sudo dnf install lldb
  sudo dnf install lldb
<br>
<br>
==== デバッガの設定 ====
==== デバッガの設定 ====
[File] - [Settings] - [Build, Execution, Deployment] - [Debugger]を選択する。<br>
[File] - [Settings] - [Build, Execution, Deployment] - [Debugger]を選択する。<br>
[Rust]セクションで、使用するデバッガ(GDBまたはLLDB)を選択する。<br>
[Rust]セクションで、使用するデバッガ (GDBまたはLLDB) を選択する。<br>
<br>
<br>
デバッグビルドを実行するには、以下の手順を実行する。<br>
デバッグビルドを実行するには、以下の手順を実行する。<br>
# ブレークポイントを設定する箇所で、行番号の左側をクリックする。
# ブレークポイントを設定する箇所で、行番号の左側をクリックする。
# [Run] - [Debug...]を選択するか、ツールバーのデバッグアイコンをクリックする。
# [Run] - [Debug...]を選択するか、ツールバーのデバッグアイコンを選択する。
# デバッガが起動し、ブレークポイントで停止する。
# デバッガが起動し、ブレークポイントで停止する。
<br>
<br>
257行目: 259行目:
<br>
<br>
テストを実行する方法を、以下に示す。<br>
テストを実行する方法を、以下に示す。<br>
# テスト関数の横に表示される実行アイコンをクリックする。
# テスト関数の横に表示される実行アイコンを選択する。
# または、[Run] - [Run...]から該当するテストを選択する。
# または、[Run] - [Run...]から該当するテストを選択する。
# または、以下のキーボードショートカットを使用する。
# または、以下のキーボードショートカットを使用する。
#* 個別のテストを実行: Ctrl+Shift+F10 (Linux/Windows)
#* 個別のテストを実行: [Ctrl] + [Shift] + [F10] (Linux / Windows)
#* 最後のテストを再実行: Shift+F10 (Linux/Windows)
#* 最後のテストを再実行: [Shift] + [F10] (Linux / Windows)
<br>
<br>
全てのテストを実行するには、以下のコマンドを使用する。<br>
全てのテストを実行するには、以下のコマンドを使用する。<br>
<br>
  cargo test
  cargo test
<br>
<br>
特定のテストのみを実行するには、以下のようにする。<br>
特定のテストのみを実行するには、以下のようにする。<br>
<br>
  cargo test test_name
  cargo test test_name
<br><br>
<br><br>
274行目: 278行目:
<br>
<br>
Rustfmtをインストールする。<br>
Rustfmtをインストールする。<br>
<br>
  rustup component add rustfmt
  rustup component add rustfmt
<br>
<br>
282行目: 287行目:
手動でフォーマットを実行するには、以下の手順を実行する。<br>
手動でフォーマットを実行するには、以下の手順を実行する。<br>
# [Code] - [Reformat Code]を選択する。
# [Code] - [Reformat Code]を選択する。
# または、Ctrl+Alt+L (Linux/Windows)を押下する。
# または、[Ctrl] + [Alt] + [L]キー (Linux / Windows) を押下する。
<br>
プロジェクトルートに <u>rustfmt.toml</u> ファイルを作成することで、フォーマット設定をカスタマイズできる。<br>
<br>
<br>
プロジェクトルートにrustfmt.tomlファイルを作成することで、フォーマット設定をカスタマイズできる。<br>
  <syntaxhighlight lang="toml">
  <syntaxhighlight lang="toml">
  # rustfmt.tomlファイル
  # rustfmt.tomlファイル
299行目: 305行目:
<br>
<br>
Clippyをインストールする。<br>
Clippyをインストールする。<br>
<br>
  rustup component add clippy
  rustup component add clippy
<br>
<br>
304行目: 311行目:
<br>
<br>
Clippyを手動で実行するには、以下のコマンドを使用する。<br>
Clippyを手動で実行するには、以下のコマンドを使用する。<br>
<br>
  cargo clippy
  cargo clippy
<br>
<br>
全ての警告を修正候補付きで表示するには、以下のコマンドを使用する。<br>
全ての警告を修正候補付きで表示するには、以下のコマンドを使用する。<br>
<br>
  cargo clippy --fix
  cargo clippy --fix
<br>
<br>
特定のClippy lintを無効にする場合、以下のようにコード内で指定できる。<br>
特定のClippy lintを無効にする場合、以下のようにコード内で指定できる。<br>
<br>
  <syntaxhighlight lang="rust">
  <syntaxhighlight lang="rust">
  #![allow(clippy::lint_name)]
  #![allow(clippy::lint_name)]
326行目: 336行目:
マクロ展開を表示する手順を、以下に示す。<br>
マクロ展開を表示する手順を、以下に示す。<br>
# マクロ呼び出しにカーソルを置く。
# マクロ呼び出しにカーソルを置く。
# [Tools] - [Rust] - [Show Macro Expansion]を選択する。
# [Tools] - [Rust] - [Show Macro Expansion]を選択する。<br>または、[Ctrl] + [Shift] + [M]キー (Linux / Windows) を押下する。
# または、Ctrl+Shift+M (Linux/Windows)を押下する。
<br>
<br>
展開結果が別ウィンドウに表示され、マクロがどのようにコードを生成するかを確認できる。<br>
展開結果が別ウィンドウに表示され、マクロがどのようにコードを生成するかを確認できる。<br>
336行目: 345行目:
<br>
<br>
Cargo Flamingoをインストールする。<br>
Cargo Flamingoをインストールする。<br>
<br>
  cargo install flamegraph
  cargo install flamegraph
<br>
<br>
プロファイリングを実行するには、以下のコマンドを使用する。<br>
プロファイリングを実行するには、以下のコマンドを使用する。<br>
<br>
  cargo flamegraph
  cargo flamegraph
<br>
<br>
生成されたフレームグラフ(flamegraph.svg)を、ブラウザで開いて確認する。<br>
生成されたフレームグラフ (flamegraph.svg) を、ブラウザで開いて確認する。<br>
<br>
<br>
<u>※注意</u><br>
<u>※注意</u><br>
<u>Linuxでは、perfツールへのアクセス権限が必要な場合がある。</u><br>
<u>Linuxでは、perfツールへのアクセス権限が必要な場合がある。</u><br>
<u>その場合、以下のコマンドを実行する。</u><br>
<u>その場合、以下に示すコマンドを実行する。</u><br>
<br>
  echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid
  echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid
<br><br>
<br><br>
353行目: 365行目:
<br>
<br>
WASMターゲットをインストールする。<br>
WASMターゲットをインストールする。<br>
<br>
  rustup target add wasm32-unknown-unknown
  rustup target add wasm32-unknown-unknown
<br>
<br>
wasm-packをインストールする。<br>
wasm-packをインストールする。<br>
<br>
  cargo install wasm-pack
  cargo install wasm-pack
<br>
<br>
WASMプロジェクトをビルドするには、以下のコマンドを使用する。<br>
WASMプロジェクトをビルドするには、以下のコマンドを使用する。<br>
<br>
  wasm-pack build --target web
  wasm-pack build --target web
<br>
<br>
RustRoverの実行構成で、ビルドターゲットとして[wasm32-unknown-unknown]を指定することもできる。<br>
RustRoverの実行構成で、ビルドターゲットとして[wasm32-unknown-unknown]を指定することもできる。<br>
<br><br>
== AI Assistantの設定 ==
JetBrains AI Assistantは、IntelliJプラットフォームベースのIDEで利用できるAI支援機能である。<br>
Agent Client Protocol (ACP) を使用することで、外部のAIエージェントを統合できる。<br>
<br>
==== acp.jsonの概要 ====
ACP対応エージェントを追加するには、<u>~/.jetbrains/acp.json</u> ファイルを作成する。<br>
<br>
<syntaxhighlight lang="json">
{
  "default_mcp_settings": {
    "use_idea_mcp": true,
    "use_custom_mcp": true
  },
  "agent_servers": {
    "Example Agent": {
      "command": "/path/to/opencode",
      "args": ["acp"],
      "env": {
        "API_KEY": "<APIキー>"
      }
    }
  }
}
</syntaxhighlight>
<br>
<center>
{| class="wikitable"
|+ acp.jsonの設定項目
! 設定項目 !! 説明 !! 設定例
|-
| <code>default_mcp_settings</code> || 全エージェントに適用されるデフォルトのMCP設定 || { "use_idea_mcp": true, ... }
|-
| <code>use_idea_mcp</code> || IntelliJ MCP Serverをエージェントに公開するかどうか || true または false
|-
| <code>use_custom_mcp</code> || ユーザー設定のMCPサーバをエージェントに公開するかどうか || true または false
|-
| <code>agent_servers</code> || エージェントの定義 || { "OpenCode": { ... } }
|-
| <code>command</code> || エージェントの実行ファイルへのフルパス || "/path/to/opencode"
|-
| <code>args</code> || 起動時に渡す引数の配列 || ["acp"]
|-
| <code>env</code> || エージェントプロセスに設定する環境変数 || { "API_KEY": "..." }
|}
</center>
<br>
==== OpenCodeエージェントの設定 ====
[https://opencode.ai/ OpenCode]は、ACPに対応したAIエージェントである。<br>
RustRoverでOpenCodeを使用するには、以下に示す設定を <code>~/.jetbrains/acp.json</code> ファイルに追加する。<br>
<br>
<syntaxhighlight lang="json">
{
  "default_mcp_settings": {
    "use_idea_mcp": true,
    "use_custom_mcp": true
  },
  "agent_servers": {
    "OpenCode": {
      "command": "/path/to/opencode",
      "args": ["acp"]
    }
  }
}
</syntaxhighlight>
<br>
<code>--cwd</code> オプションを使用すると、特定の作業ディレクトリでエージェントを起動できる。<br>
<br>
<syntaxhighlight lang="json">
{
  "agent_servers": {
    "OpenCode-ProjectA": {
      "command": "/path/to/opencode",
      "args": ["acp", "--cwd", "/path/to/project-a"]
    }
    },
      "command": "/path/to/opencode",
      "args": ["acp", "--cwd", "/path/to/project-b"]
    }
  }
}
</syntaxhighlight>
<br>
==== Claude Codeエージェントのインストール ====
Claude Codeは、JetBrains AI AssistantのACPレジストリからインストールできる。<br>
<br>
インストール手順を以下に示す。<br>
# AI Chatツールウィンドウを開く。<br>
# チャットモードセレクターから[Install From ACP Registry]を選択する。<br>
# [Agents]ページで、Claude Codeをインストールする。<br>
# APIキーの認証を求められた場合は、AnthropicのAPIキーを入力する。<br>
<br>
詳細な設定については、[https://www.jetbrains.com/help/ai-assistant/acp.html JetBrains公式ドキュメント]を参照すること。<br>
<br>
<u>※注意</u><br>
<u>acp.jsonファイルの設定変更後は、IDEを再起動する必要がある。</u><br>
<br><br>
<br><br>


630行目: 548行目:
<br>
<br>
詳細な設定については、[https://www.jetbrains.com/help/ai-assistant/mcp.html JetBrains公式ドキュメント]を参照すること。<br>
詳細な設定については、[https://www.jetbrains.com/help/ai-assistant/mcp.html JetBrains公式ドキュメント]を参照すること。<br>
<br><br>
== ACPを使用したOpenCodeとの連携 ==
ACP (Agent Client Protocol) を使用すると、RustRoverのAI ChatからOpenCodeをコーディングエージェントとして利用できる。<br>
<br>
ACPは、コードエディタとAIコーディングエージェント間の通信を標準化するプロトコルである。<br>
エディタはACP互換エージェントをサブプロセスとして起動し、JSON-RPC over stdioで通信する。<br>
RustRoverは、OpenCodeをサブプロセスとして起動して標準入出力を介して通信する。<br>
<br>
ACPエージェントはJetBrains AIサービスサブスクリプションなしで利用できるため、RustRoverの非商用無料ライセンスでもOpenCodeをACP経由で使用可能である。<br>
<br>
==== 前提条件 ====
* OpenCodeがインストールされ、プロバイダ認証が完了していること。
* RustRoverでAI AssistantおよびAI Chatが利用可能であること。
*: AI AssistantプラグインはRustRoverと互換であり、非商用無料ライセンスでも有効化できる。
* WSL (Windows Subsystem for Linux) 環境ではないこと。
*: JetBrains公式ドキュメントでWSL環境でのACP互換エージェントはサポート対象外とされている。
<br>
==== OpenCode側の認証とプロジェクト設定 ====
OpenCodeの認証は、RustRoverの設定ファイル <u>acp.json</u> ファイルにはAPIキーを記述せず、OpenCode側で行う。<br>
JetBrains公式ドキュメントでも、ほとんどのエージェントはAPIキーを <u>acp.json</u> ファイルに記述せず、ターミナルで認証することが推奨されている。<br>
<br>
プロバイダを認証するには、ターミナルで以下に示すコマンドを実行する。<br>
<br>
opencode auth login
<br>
認証済みのプロバイダを確認する場合は、以下に示すコマンドを実行する。<br>
<br>
opencode auth list
<br>
認証情報は、<u>~/.local/share/opencode/auth.json</u> ファイルに保存される。<br>
<br>
プロジェクト固有のモデル、MCPサーバ、権限等は、Cargoプロジェクトまたはワークスペースのルートに <u>opencode.json</u> または <u>opencode.jsonc</u> ファイルを配置して設定する。<br>
<br>
OpenCodeは起動時にカレントディレクトリから設定ファイルを探して、最も近いGitディレクトリまで上方向へ探索する。<br>
CargoワークスペースのルートがGitリポジトリのルートと一致する場合が多いため、リポジトリまたはワークスペースルートに配置すれば自動検出される。<br>
<br>
作業ルールや設計方針は、同じプロジェクトルートの <u>AGENTS.md</u> ファイルに記述する。<br>
ACP経由でも <u>AGENTS.md</u> ファイルのプロジェクトルールは有効である。<br>
<br>
==== JetBrains側のACP設定 ====
===== ~/.jetbrains/acp.jsonの作成 =====
JetBrains IDEのACP設定は、ユーザ単位の <u>~/.jetbrains/acp.json</u> ファイルで管理する。<br>
<br>
AI Chatツールウィンドウ右上の[...(More)]ボタンから[Add Custom Agent]を選択すると、設定ファイルを作成して編集できる。<br>
<br>
手動で作成する場合は、次のコマンドを実行する。<br>
<br>
mkdir -p ~/.jetbrains
<br>
===== OpenCode実行ファイルの絶対パスの確認 =====
<code>command</code> キーには、OpenCode実行ファイルの絶対パスを指定する。<br>
JetBrains公式ドキュメントで、<code>command</code> パラメータには実行ファイルのフルパスを使用することが明記されている。<br>
<br>
GUIから起動されるRustRoverのプロセスは、環境変数 <codePATH</code> を継承しない場合があるため、相対パスやエイリアスは失敗する可能性がある。<br>
<br>
次のコマンドで実行ファイルの場所を確認する。<br>
<br>
command -v opencode
readlink -f "$(command -v opencode)"
<br>
出力されたパスを <code>command</code> キーの値に使用する。<br>
<br>
===== acp.jsonの記述 =====
<u>~/.jetbrains/acp.json</u> ファイルに、次の内容を記述する。<br>
<br>
<syntaxhighlight lang="json">
{
    "default_mcp_settings": {
      "use_idea_mcp": true,
      "use_custom_mcp": true
    },
    "agent_servers": {
      "OpenCode": {
          "command": "/home/<ユーザ名>/.opencode/bin/opencode",
          "args": [
            "acp"
          ]
      }
    }
}
</syntaxhighlight>
<br>
<code>command</code> キーのパスは、実際に確認した絶対パスへ置き換える。<br>
<code>args</code> 配列には <code>acp</code> を指定して、OpenCodeをACPサーバとして起動する。<br>
<br>
<center>
{| class="wikitable"
|+ acp.jsonの設定項目
! 項目 !! 配置 !! 説明
|-
| <code>default_mcp_settings</code> || 最上位 || 全ローカルエージェントに適用する既定のMCP設定<br>エージェント固有設定で上書き可能
|-
| <code>use_custom_mcp</code> || <code>default_mcp_settings</code> 配下 || ユーザが設定したMCPサーバをエージェントへ公開する。<br>既定値は <u>true</u>
|-
| <code>use_idea_mcp</code> || <code>default_mcp_settings</code> 配下 || IntelliJ MCP Serverをエージェントへ公開する。<br>既定値は <u>false</u><br><br>trueの場合、<code>idea_mcp_allowed_tools</code> キーで公開ツールを制限可能
|-
| <code>agent_servers</code> || 最上位 || ACPエージェントの一覧<br>キーはAI Chatに表示される名前になる。
|-
| <code>command</code> || 各エージェント配下 || エージェントの実行ファイル<br>JetBrainsがサブプロセスとして起動するため、絶対パスを指定する。
|-
| <code>args</code> || 各エージェント配下 || 起動時に渡す引数の配列<br>OpenCodeでは <code>acp</code> を指定する。
|-
| <code>env</code> (省略可能) || 各エージェント配下 || エージェントプロセスに設定する環境変数<br>プロキシ等が必要な場合に使用する。<br>APIキーの平文記述は避けること。
|}
</center>
<br>
===== 特定の作業ディレクトリで起動する設定 =====
<code>--cwd</code> オプションを使用すると、特定の作業ディレクトリでOpenCodeを起動できる。<br>
<br>
複数のCargoプロジェクトを扱う場合に有効である。<br>
<br>
<syntaxhighlight lang="json">
{
    "agent_servers": {
      "OpenCode-ProjectA": {
          "command": "/home/<ユーザ名>/.opencode/bin/opencode",
          "args": [
            "acp",
            "--cwd",
            "/path/to/project-a"
          ]
      },
      "OpenCode-ProjectB": {
          "command": "/home/<ユーザ名>/.opencode/bin/opencode",
          "args": [
            "acp",
            "--cwd",
            "/path/to/project-b"
          ]
      }
    }
}
</syntaxhighlight>
<br>
==== ACP Registryからのインストール ====
JetBrains IDE バージョン 2025.3以降では、ACP RegistryからOpenCodeを直接インストールできる。<br>
OpenCodeはACP Registryに登録されており、"Community-driven, fully open-source agent"として提供されている。<br>
<br>
ACP Registryからインストールする手順を、以下に示す。<br>
# AI Chatツールウィンドウを開く。
# チャットモードセレクタから[Install From ACP Registry]を選択する。
#: または、[Settings] - [Tools] - [AI Assistant] - [Agents]から開くこともできる。<br>
#: <br>
# [Agents]ページで、OpenCodeを選択してインストールする。
# インストール完了後、AI ChatのエージェントセレクタにOpenCodeが表示される。
<br>
ACP Registryを利用するには、RustRoverおよびJetBrains AI プラグインを最新版へ更新する必要がある。<br>
<br>
==== RustRoverでの有効化と動作確認 ====
===== 設定の反映 =====
<u>acp.json</u> ファイルの保存後、RustRoverのAI Chatでエージェントを選択できる。<br>
<br>
表示されない場合は、JSON形式と実行ファイルのパスを確認して、RustRoverを再起動する。<br>
<br>
===== エージェントの選択 =====
RustRoverでAI Chatツールウィンドウを開いて、チャットモードのエージェントセレクタから[OpenCode]を選択する。<br>
<br>
===== Cargoプロジェクトの動作確認 =====
Cargoプロジェクトまたはワークスペースを開いた状態で、読み取り中心の指示を送信する。<br>
<br>
# プロンプト例
このCargoプロジェクトの構成と主要クレートを調査し、ビルド方法とテスト方法を要約してください。
ファイルは変更しないでください。
<br>
エージェントが応答し、プロジェクト内のファイルを参照できれば、ACP連携を確認できる。<br>
<br>
===== OpenCode単体での事前確認 =====
RustRover側を確認する前に、ターミナルで <code>opencode acp</code> コマンドを実行して、起動できるか確認する。<br>
JetBrains公式ドキュメントでも、ターミナルで手動実行して動作確認することが推奨されている。<br>
<br>
~/.opencode/bin/opencode acp
<br>
<code>command</code> キーに設定した絶対パスへ置き換えて実行する。<br>
このコマンドはACPサーバを起動し、標準入力と標準出力でACPメッセージを待機する。<br>
<br>
==== プロジェクト単位の設定 ====
ACPエージェントの登録はユーザ単位の <u>~/.jetbrains/acp.json</u> ファイルで行う。<br>
<br>
一方、OpenCodeの動作はプロジェクト単位で設定できる。<br>
次のファイルをCargoプロジェクトまたはワークスペースのルートに配置する。<br>
<br>
* <u>opencode.json</u> または <u>opencode.jsonc</u>
*: モデル、MCPサーバ、権限等のプロジェクト設定を記述する。
* <u>AGENTS.md</u>
*: 作業ルール、設計方針、禁止事項等を記述する。
<br>
OpenCodeは起動時にカレントディレクトリから設定ファイルを探して、最も近いGitディレクトリまで上方向へ探索するため、サブディレクトリから作業してもルートの設定が適用される。<br>
<br>
==== トラブルシューティング ====
===== OpenCodeエージェントがAI Chatに表示されない =====
* 原因
*: <u>acp.json</u> ファイルのJSON形式が正しくない、または、設定変更がRustRoverに反映されていない。
*: <br>
* 解決方法
** <u>acp.json</u> ファイルが正しいJSON形式であることを確認する。
** RustRoverを再起動する。
<br>
===== エージェントの起動に失敗する =====
* 原因
*: <code>command</code> キーの絶対パスが誤っている、OpenCodeの認証が完了していない、実行ファイルを起動できない。
*: <br>
* 解決方法
** <code>command -v opencode</code> コマンド および <code>readlink -f</code> コマンドで絶対パスを確認する。
** 設定した絶対パスで <code>opencode acp</code> コマンドを手動実行する。
** <code>opencode auth list</code> コマンドを実行して、プロバイダ認証を確認する。
<br>
===== ACPログの取得 =====
AI Chatツールウィンドウ右上の [...(More)]ボタンから[Get ACP Logs]を選択すると、エージェントログのアーカイブを取得できる。<br>
<br>
詳細な要求と応答を記録するには、Registryの <code>llm.agent.extended.logging</code> キーを有効してRustRoverを再起動する。<br>
<br>
Registryを開く手順を、以下に示す。<br>
# [Navigate]メニュー - [Search Everywhere]を選択する、または、[Shift]キーを2回押下して検索ウィンドウを開く。
# <u>Registry</u> と入力して、[Enter]キーを押下する。
# ダイアログで[Ctrl] + [F]キーを押下して、<code>llm.agent.extended.logging</code> キーを検索して、有効化する。
# [Close]ボタンを押下して、RustRoverを再起動する。
<br>
ログにはチャット内容等の機密情報が含まれる可能性があるため、共有前に確認すること。<br>
<br>
==== セキュリティと運用上の注意 ====
* APIキーを <u>~/.jetbrains/acp.json</u> ファイルに平文で記述しないこと。
*: OpenCodeの認証機能 (<code>opencode auth login</code>) で設定した認証情報を使用する。
*: 認証情報は、<u>~/.local/share/opencode/auth.json</u> ファイルに保存される。
* <code>command</code> キーには絶対パスを指定すること。
*: シェルのエイリアスや相対パスは、RustRoverから起動できない場合がある。
* <code>use_idea_mcp</code> キー と <code>use_custom_mcp</code> キーの公開範囲を確認すること。
*: 有効にしたMCPサーバの機能がエージェントから利用可能になる。
*: 必要最小限に留め、<code>idea_mcp_allowed_tools</code> キーでツールを制限できる。
* 詳細ログを共有する前に機密情報を除去すること。
*: <code>llm.agent.extended.logging</code> 有効時のログには、チャット内容やファイル内容が含まれる可能性がある。
* WSL環境ではACP互換エージェントを使用しないこと。
*: JetBrains公式ドキュメントでサポート対象外とされている。
<br>
==== 関連情報 ====
* [https://www.jetbrains.com/help/ai-assistant/acp.html JetBrains公式 ACPドキュメント]
* [https://opencode.ai/docs/acp/ OpenCode公式 ACP Support]
* [https://opencode.ai/docs/cli/ OpenCode公式 CLI]
* [https://opencode.ai/docs/config/ OpenCode公式 Config]
* [https://agentclientprotocol.com/ Agent Client Protocol仕様]
* [[インストール - OpenCode]]
<br><br>
<br><br>



2026年8月15日 (土) 00:53時点における最新版

概要

JetBrains RustRoverは、IntelliJプラットフォームをベースにしたRust専用の統合開発環境である。

RustRoverには、Cargo、デバッガ、Rustfmt、Clippy等の主要なRustツールチェーンとの統合機能が含まれており、Rust開発に必要な機能が最初から備わっている。
また、Web開発関連のプラグインも付属しているので、Webシステム開発も同じ環境で開発できる。


RustRoverのインストール

Jetbrains RustRoverの公式WebサイトからRustRoverをダウンロードする。

ダウンロードしたファイルを解凍する。

tar xf RustRover-<バージョン>.tar.gz


次に、デスクトップエントリファイルを作成する。

vi ~/.local/applications/JetBrains_RustRover.desktop


 # ~/.local/applications/JetBrains_RustRover.desktopファイル
 
 [Desktop Entry]
 Type=Application
 Name=RustRover <バージョン>
 GenericName=RustRover
 Comment=Develop with pleasure
 Exec=/<RustRoverのインストールディレクトリ>/bin/rustrover.sh %F
 Icon=/<RustRoverのインストールディレクトリ>/bin/rustrover.png
 StartupWMClass=jetbrains-rustrover
 Terminal=false
 Categories=Development;IDE;



ウォッチハンドルの設定

VCS、ビルドツール、コードジェネレータ等による変更等、外部からファイルの変更を把握することが不可欠である。
そのため、IntelliJプラットフォームでは、そのような変更を監視するためのバックグラウンドプロセスを実行している。

この方法は各プラットフォームで異なり、Linuxにおいては、Inotify機能を使用している。

Inotify機能において、プロジェクト内の各ディレクトリにウォッチハンドルを設定する必要がある。
しかし、ウォッチハンドルの初期値は、プロジェクトによっては十分ではない可能性がある。

IntelliJプラットフォームでは、ウォッチハンドルの制限に達する場合、ディレクトリツリーの再帰的なスキャンに戻ってしまう。

この状況を防ぐためには、ウォッチの上限 (例: 512K) を増加させることを推奨する。

/etc/sysctl.confファイル または /etc/sysctl.d/ディレクトリに*.confファイル(例. idea.conf)に、以下の設定を追加する。

sudo vi /etc/sysctl.conf
または
sudo vi /etc/sysctl.d/idea.conf


# /etc/sysctl.confファイル または /etc/sysctl.d/idea.confファイル

fs.inotify.max_user_watches = 1048576


上記の変更を適用する。

sudo sysctl -p --system


RustRoverを起動している場合は、RustRoverを再起動する。

現在の設定を確認する場合は、以下に示すコマンドを実行する。

sudo sysctl fs.inotify.max_user_watches


※注意
監視制限はユーザごとの設定である。
もし、同一ユーザでInotifyを使用している他のソフトウェアが動作している場合は、全てのソフトウェアのニーズに合うように制限値を高くする必要がある。

一部のLinuxディストリビューションでは、この設定を /usr/lib/sysctl.d ディレクトリ配下のファイルで構成する場合がある。
これらのディレクトリ内のファイルはファイル名の順序で読み込まれるため、/etc/sysctl.d/idea.conf を使用してシステム設定を上書きし、優先度の高い設定を適用できる。


RustRoverの起動

cd /<RustRoverのインストールディレクトリ>/bin
./rustrover



RustRoverの設定

行番号と空白文字の表示

[File] - [Settings] - [Editor] - [General] - [Appearance]を選択する。
[Show line numbers]チェックボックスと[Show whitespaces]チェックボックスにチェックを入力する。

Samba上にプロジェクトを置く場合

External file changes sync may be slowを表示させないために、
[File] - [Settings] - [Appearance & Behavior] - [Notifications]から[File Watcher Messages]を[No popup]にする。


Rustツールチェーンの設定

RustRoverでRust開発を行うには、Rustツールチェーンのインストールが必要である。

Rustのインストール

Rustをインストールするには、rustupを使用することを推奨する。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh


インストール完了後、シェルを再起動するか、以下のコマンドを実行する。

source $HOME/.cargo/env


Rustのバージョンを確認する。

rustc --version
cargo --version


RustRoverでのツールチェーン設定

[File] - [Settings] - [Languages & Frameworks] - [Rust]を選択する。
[Toolchain location]でrustupのパスを指定する。(通常は自動検出される)

標準ライブラリのソースコードを取得する。

rustup component add rust-src



エラー関連

Cargoプロジェクトのビルドエラー

Cargoのキャッシュが破損している場合、以下のコマンドでクリーンアップを実行する。

cargo clean


Rust Analyzerの問題

Rust Analyzerが正常に動作しない場合、以下に示す手順を試す。

  1. [File] - [Invalidate Caches...]を選択して、キャッシュをクリアする。
  2. RustRoverを再起動する。


ツールチェーンのバージョン指定

特定のRustバージョンを使用する場合、rust-toolchain.tomlファイルをプロジェクトルートに作成する。

 # rust-toolchain.tomlファイル
 
 [toolchain]
 channel = "1.75.0"
 components = ["rustfmt", "clippy"]



RustRoverの日本語化

RustRover 2024.1以降、日本語化プラグインで日本語にローカライズ可能である。

  1. JetBrainsの公式Webサイトから、Japanese Language Packプラグインをダウンロードする。
    この時、zipファイルは解凍しないことに注意する。
  2. ダウンロードしたプラグインファイルを、<RustRoverのインストールディレクトリ>/pluginsディレクトリに配置する。
  3. RustRoverのメイン画面のメニューバーから、[Settings]または[Preferences] - [Plugins]を選択する。
  4. [Settings]画面の上側にある歯車ボタンから、[Install Plugin from Disk...]を選択する。
  5. 上記でダウンロードしたJapanese Language Packプラグインファイルを選択してインストールする。
  6. RustRoverを再起動して、正常にローカライズできたかどうかを確認する。



ビルドターゲットの設定

Rustでは、クロスコンパイルのためにターゲットトリプルを指定することができる。

利用可能なターゲットを確認する。

rustup target list


特定のターゲットをインストールする。

rustup target add x86_64-unknown-linux-gnu
rustup target add x86_64-pc-windows-gnu


RustRoverでビルドターゲットを指定する手順を、以下に示す。

  1. [Run] - [Edit Configurations...]を選択する。
  2. 該当する実行構成を選択する。
  3. [Command]セクションの[Target]フィールドでターゲットトリプルを指定する。
  4. [Apply]ボタンを押下して設定を保存する。


または、プロジェクトの.cargo/config.tomlファイルでデフォルトターゲットを設定できる。

 # .cargo/config.tomlファイル
 
 [build]
 target = "x86_64-unknown-linux-gnu"



外部コンソールの使用

RustRoverでは、出力コンソールを外部コンソールアプリケーションに変更することができる。
これにより、プログラムの実行時において、別ウインドウでコンソールが起動する。

なお、この設定はプロジェクトごとに個別に設定することが可能である。

  1. まず、プロジェクトの実行構成を開く。
    • [Run]メニューバー - [Edit Configurations...]を選択する。
    • または、ツールバーの[実行構成]プルダウンの横にある編集ボタンを選択する。

  2. 該当する実行構成を選択して、以下に示す設定を変更する。
    1. [Configuration]タブを開く。
    2. [Run in external console]チェックボックスにチェックを入力する。

  3. [Apply]ボタンを押下して設定を保存する。


この設定は、以下に示すような場合に有効である。

  • std::io::stdin().read_line() 等の入力待ちを使用する場合
  • プログラムの実行結果をより見やすく表示する場合
  • IDE内蔵のコンソールで文字化け等の問題が発生する場合



Cargoの設定

Cargo.tomlの編集

RustRoverは、Cargo.toml ファイルの編集時に、依存関係の自動補完とバージョン管理機能を提供する。

依存関係を追加する場合、以下のようにCargo.tomlファイルを編集する。

 # Cargo.tomlファイル
 
 [package]
 name = "my_project"
 version = "0.1.0"
 edition = "2021"
 
 [dependencies]
 serde = { version = "1.0", features = ["derive"] }
 tokio = { version = "1.35", features = ["full"] }


または、以下のコマンドで依存関係を追加できる。

cargo add serde --features derive
cargo add tokio --features full


Cargoワークスペース

複数のクレートを含むワークスペースを作成する場合、ルートディレクトリに Cargo.toml ファイルを作成する。

 # Cargo.tomlファイル (ワークスペースルート)
 
 [workspace]
 members = [
     "crate_a",
     "crate_b",
 ]
 
 [workspace.dependencies]
 serde = "1.0"


RustRoverは、ワークスペース内の全てのクレートを自動的に認識し、相互参照を提供する。


デバッグ設定

GDBまたはLLDBのインストール

Linuxでは、GDBまたはLLDBをインストールする必要がある。

# SUSE
sudo zypper install gdb
## または、LLDBを使用する場合
sudo zypper install lldb


# RHEL
sudo dnf install gdb
## または、LLDBを使用する場合
sudo dnf install lldb


デバッガの設定

[File] - [Settings] - [Build, Execution, Deployment] - [Debugger]を選択する。
[Rust]セクションで、使用するデバッガ (GDBまたはLLDB) を選択する。

デバッグビルドを実行するには、以下の手順を実行する。

  1. ブレークポイントを設定する箇所で、行番号の左側をクリックする。
  2. [Run] - [Debug...]を選択するか、ツールバーのデバッグアイコンを選択する。
  3. デバッガが起動し、ブレークポイントで停止する。


※注意
リリースビルドではデバッグ情報が削除されるため、デバッグにはデバッグビルドを使用すること。


テストの実行

RustRoverは、Rustの標準的なテストフレームワークと統合されている。

テストを実行する方法を、以下に示す。

  1. テスト関数の横に表示される実行アイコンを選択する。
  2. または、[Run] - [Run...]から該当するテストを選択する。
  3. または、以下のキーボードショートカットを使用する。
    • 個別のテストを実行: [Ctrl] + [Shift] + [F10] (Linux / Windows)
    • 最後のテストを再実行: [Shift] + [F10] (Linux / Windows)


全てのテストを実行するには、以下のコマンドを使用する。

cargo test


特定のテストのみを実行するには、以下のようにする。

cargo test test_name



Rustfmtの設定

Rustfmtは、Rustコードの自動フォーマットツールである。

Rustfmtをインストールする。

rustup component add rustfmt


RustRoverでRustfmtを使用するには、以下の設定を行う。

  1. [File] - [Settings] - [Languages & Frameworks] - [Rust] - [Rustfmt]を選択する。
  2. [Run rustfmt on Save]チェックボックスにチェックを入力すると、ファイル保存時に自動フォーマットされる。


手動でフォーマットを実行するには、以下の手順を実行する。

  1. [Code] - [Reformat Code]を選択する。
  2. または、[Ctrl] + [Alt] + [L]キー (Linux / Windows) を押下する。


プロジェクトルートに rustfmt.toml ファイルを作成することで、フォーマット設定をカスタマイズできる。

 # rustfmt.tomlファイル
 
 max_width = 100
 hard_tabs = false
 tab_spaces = 4
 newline_style = "Unix"



Clippyの設定

Clippyは、Rustコードの静的解析ツールであり、コードの品質向上に役立つ。

Clippyをインストールする。

rustup component add clippy


RustRoverでは、Clippyの警告がエディタ上にリアルタイムで表示される。

Clippyを手動で実行するには、以下のコマンドを使用する。

cargo clippy


全ての警告を修正候補付きで表示するには、以下のコマンドを使用する。

cargo clippy --fix


特定のClippy lintを無効にする場合、以下のようにコード内で指定できる。

 #![allow(clippy::lint_name)]
 
 // または、特定の関数やブロックに対して
 #[allow(clippy::lint_name)]
 fn my_function() {
     // ...
 }



マクロ展開の表示

RustRoverでは、マクロの展開結果を確認することができる。

マクロ展開を表示する手順を、以下に示す。

  1. マクロ呼び出しにカーソルを置く。
  2. [Tools] - [Rust] - [Show Macro Expansion]を選択する。
    または、[Ctrl] + [Shift] + [M]キー (Linux / Windows) を押下する。


展開結果が別ウィンドウに表示され、マクロがどのようにコードを生成するかを確認できる。


プロファイリング

RustRoverでは、Cargo Flamingoを使用してパフォーマンスプロファイリングが可能である。

Cargo Flamingoをインストールする。

cargo install flamegraph


プロファイリングを実行するには、以下のコマンドを使用する。

cargo flamegraph


生成されたフレームグラフ (flamegraph.svg) を、ブラウザで開いて確認する。

※注意
Linuxでは、perfツールへのアクセス権限が必要な場合がある。
その場合、以下に示すコマンドを実行する。

echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid



WebAssembly (WASM) サポート

RustRoverは、WebAssemblyターゲットへのコンパイルをサポートしている。

WASMターゲットをインストールする。

rustup target add wasm32-unknown-unknown


wasm-packをインストールする。

cargo install wasm-pack


WASMプロジェクトをビルドするには、以下のコマンドを使用する。

wasm-pack build --target web


RustRoverの実行構成で、ビルドターゲットとして[wasm32-unknown-unknown]を指定することもできる。


MCPサーバの設定

Model Context Protocol (MCP)を使用することにより、AI Assistantは外部ツールやデータソースと連携できる。
MCPサーバに接続することで、AI Assistantの機能を大幅に拡張することができる。

サポートされる転送メカニズム

AI Assistantは、以下に示す転送メカニズムをサポートしている。

  • Standard Input/Output (STDIO)
    AI AssistantがMCPサーバをサブプロセスとして起動し、標準入出力でデータを交換する。
  • Streamable HTTP
    HTTPを使用してMCPサーバに接続する。
  • SSE
    レガシーMCPサーバ向けの転送メカニズム


MCPサーバへの接続

MCPサーバに接続する手順を以下に示す。

  1. [Settings] - [Tools] - [AI Assistant] - [Model Context Protocol (MCP)]を選択する。
  2. [Add]ボタンを押下して、新しいMCPサーバ設定を追加する。
  3. JSON設定を入力する。
  4. [OK]ボタンを押下する。
  5. [Apply]ボタンを押下して、MCPサーバを起動する。


JSON設定例

MCPサーバへの接続方法に応じて、JSON設定が異なる。

ローカルインストール

MCPサーバがローカルにインストールされている場合の設定例を以下に示す。

 {
   "mcpServers": {
     "filesystem": {
       "command": "node",
       "args": [
         "/path/to/server/dist/index.js",
         "/Users/username/Desktop"
       ]
     }
   }
 }


NPXを使用する場合

NPXを使用してMCPサーバを実行する場合の設定例を以下に示す。

 {
   "mcpServers": {
     "filesystem": {
       "command": "npx",
       "args": [
         "-y",
         "@modelcontextprotocol/server-filesystem",
         "/Users/username/Desktop"
       ]
     }
   }
 }


Dockerを使用する場合

Dockerを使用してMCPサーバを実行する場合の設定例を以下に示す。

 {
   "mcpServers": {
     "filesystem": {
       "command": "docker",
       "args": [
         "run",
         "-i",
         "--rm",
         "--mount", "type=bind,src=/local/path,dst=/container/path",
         "mcp/filesystem",
         "/projects"
       ]
     }
   }
 }


リモートサーバ

リモートMCPサーバに接続する場合の設定例を以下に示す。

 {
   "mcpServers": {
     "microsoftdocs": {
       "url": "https://learn.microsoft.com/api/mcp"
     }
   }
 }


IDEをMCPサーバとして使用する

JetBrains IDE (バージョン 2025.2以降) は統合MCPサーバを提供しており、外部クライアントからIDEのツールにアクセスできる。

MCPサーバを有効にする手順を以下に示す。

  1. [Settings] - [Tools] - [MCP Server]を選択する。
  2. [Enable MCP Server]を有効にする。
  3. [Clients Auto-Configuration]セクションで、各クライアントの[Auto-Configure]ボタンを押下する。
  4. クライアントを再起動する。


手動設定

手動で設定する場合、以下のいずれかの設定をコピーしてクライアントの設定ファイルに貼り付ける。

  • SSE Config
    SSE接続用の設定
  • Stdio Config
    STDIO接続用の設定


確認なしでアクションを実行する

外部クライアントが確認なしでターミナルコマンドや実行構成を実行できるようにするには、以下に示す設定を有効にする。

  1. [Settings] - [Tools] - [MCP Server]を選択する。
  2. [Command execution]セクションで、[Run shell commands or run configurations without confirmation (brave mode)]を有効にする。
  3. [Apply]ボタンを押下する。


サポートされるツール

下表に、統合MCPサーバが提供するツールの一覧を示す。

MCPサーバが提供するツール
ツール名 説明
execute_run_configuration 指定した実行構成を実行する。
get_run_configurations プロジェクトの実行構成一覧を取得する。
get_file_problems 指定したファイルのエラーと警告を分析する。
get_project_dependencies プロジェクトの依存関係一覧を取得する。
get_project_modules プロジェクトのモジュール一覧を取得する。
create_new_file 指定したパスに新しいファイルを作成する。
find_files_by_glob globパターンに一致するファイルを検索する。
find_files_by_name_keyword ファイル名にキーワードを含むファイルを検索する。
get_all_open_file_paths 開いている全ファイルのパスを取得する。
list_directory_tree ディレクトリツリーを表示する。
open_file_in_editor 指定したファイルをエディタで開く。
reformat_file 指定したファイルをフォーマットする。
get_file_text_by_path ファイルのテキスト内容を取得する。
replace_text_in_file ファイル内のテキストを置換する。
search_in_files_by_regex 正規表現でファイル内を検索する。
search_in_files_by_text テキストでファイル内を検索する。
get_symbol_info 指定した位置のシンボル情報を取得する。
rename_refactoring シンボルの名前を変更する。
execute_terminal_command ターミナルコマンドを実行する。
get_repositories プロジェクトのVCSルート一覧を取得する。


詳細な設定については、JetBrains公式ドキュメントを参照すること。


ACPを使用したOpenCodeとの連携

ACP (Agent Client Protocol) を使用すると、RustRoverのAI ChatからOpenCodeをコーディングエージェントとして利用できる。

ACPは、コードエディタとAIコーディングエージェント間の通信を標準化するプロトコルである。
エディタはACP互換エージェントをサブプロセスとして起動し、JSON-RPC over stdioで通信する。
RustRoverは、OpenCodeをサブプロセスとして起動して標準入出力を介して通信する。

ACPエージェントはJetBrains AIサービスサブスクリプションなしで利用できるため、RustRoverの非商用無料ライセンスでもOpenCodeをACP経由で使用可能である。

前提条件

  • OpenCodeがインストールされ、プロバイダ認証が完了していること。
  • RustRoverでAI AssistantおよびAI Chatが利用可能であること。
    AI AssistantプラグインはRustRoverと互換であり、非商用無料ライセンスでも有効化できる。
  • WSL (Windows Subsystem for Linux) 環境ではないこと。
    JetBrains公式ドキュメントでWSL環境でのACP互換エージェントはサポート対象外とされている。


OpenCode側の認証とプロジェクト設定

OpenCodeの認証は、RustRoverの設定ファイル acp.json ファイルにはAPIキーを記述せず、OpenCode側で行う。
JetBrains公式ドキュメントでも、ほとんどのエージェントはAPIキーを acp.json ファイルに記述せず、ターミナルで認証することが推奨されている。

プロバイダを認証するには、ターミナルで以下に示すコマンドを実行する。

opencode auth login


認証済みのプロバイダを確認する場合は、以下に示すコマンドを実行する。

opencode auth list


認証情報は、~/.local/share/opencode/auth.json ファイルに保存される。

プロジェクト固有のモデル、MCPサーバ、権限等は、Cargoプロジェクトまたはワークスペースのルートに opencode.json または opencode.jsonc ファイルを配置して設定する。

OpenCodeは起動時にカレントディレクトリから設定ファイルを探して、最も近いGitディレクトリまで上方向へ探索する。
CargoワークスペースのルートがGitリポジトリのルートと一致する場合が多いため、リポジトリまたはワークスペースルートに配置すれば自動検出される。

作業ルールや設計方針は、同じプロジェクトルートの AGENTS.md ファイルに記述する。
ACP経由でも AGENTS.md ファイルのプロジェクトルールは有効である。

JetBrains側のACP設定

~/.jetbrains/acp.jsonの作成

JetBrains IDEのACP設定は、ユーザ単位の ~/.jetbrains/acp.json ファイルで管理する。

AI Chatツールウィンドウ右上の[...(More)]ボタンから[Add Custom Agent]を選択すると、設定ファイルを作成して編集できる。

手動で作成する場合は、次のコマンドを実行する。

mkdir -p ~/.jetbrains


OpenCode実行ファイルの絶対パスの確認

command キーには、OpenCode実行ファイルの絶対パスを指定する。
JetBrains公式ドキュメントで、command パラメータには実行ファイルのフルパスを使用することが明記されている。

GUIから起動されるRustRoverのプロセスは、環境変数 <codePATH を継承しない場合があるため、相対パスやエイリアスは失敗する可能性がある。

次のコマンドで実行ファイルの場所を確認する。

command -v opencode
readlink -f "$(command -v opencode)"


出力されたパスを command キーの値に使用する。

acp.jsonの記述

~/.jetbrains/acp.json ファイルに、次の内容を記述する。

 {
    "default_mcp_settings": {
       "use_idea_mcp": true,
       "use_custom_mcp": true
    },
    "agent_servers": {
       "OpenCode": {
          "command": "/home/<ユーザ名>/.opencode/bin/opencode",
          "args": [
             "acp"
          ]
       }
    }
 }


command キーのパスは、実際に確認した絶対パスへ置き換える。
args 配列には acp を指定して、OpenCodeをACPサーバとして起動する。

acp.jsonの設定項目
項目 配置 説明
default_mcp_settings 最上位 全ローカルエージェントに適用する既定のMCP設定
エージェント固有設定で上書き可能
use_custom_mcp default_mcp_settings 配下 ユーザが設定したMCPサーバをエージェントへ公開する。
既定値は true
use_idea_mcp default_mcp_settings 配下 IntelliJ MCP Serverをエージェントへ公開する。
既定値は false

trueの場合、idea_mcp_allowed_tools キーで公開ツールを制限可能
agent_servers 最上位 ACPエージェントの一覧
キーはAI Chatに表示される名前になる。
command 各エージェント配下 エージェントの実行ファイル
JetBrainsがサブプロセスとして起動するため、絶対パスを指定する。
args 各エージェント配下 起動時に渡す引数の配列
OpenCodeでは acp を指定する。
env (省略可能) 各エージェント配下 エージェントプロセスに設定する環境変数
プロキシ等が必要な場合に使用する。
APIキーの平文記述は避けること。


特定の作業ディレクトリで起動する設定

--cwd オプションを使用すると、特定の作業ディレクトリでOpenCodeを起動できる。

複数のCargoプロジェクトを扱う場合に有効である。

 {
    "agent_servers": {
       "OpenCode-ProjectA": {
          "command": "/home/<ユーザ名>/.opencode/bin/opencode",
          "args": [
             "acp",
             "--cwd",
             "/path/to/project-a"
          ]
       },
       "OpenCode-ProjectB": {
          "command": "/home/<ユーザ名>/.opencode/bin/opencode",
          "args": [
             "acp",
             "--cwd",
             "/path/to/project-b"
          ]
       }
    }
 }


ACP Registryからのインストール

JetBrains IDE バージョン 2025.3以降では、ACP RegistryからOpenCodeを直接インストールできる。
OpenCodeはACP Registryに登録されており、"Community-driven, fully open-source agent"として提供されている。

ACP Registryからインストールする手順を、以下に示す。

  1. AI Chatツールウィンドウを開く。
  2. チャットモードセレクタから[Install From ACP Registry]を選択する。
    または、[Settings] - [Tools] - [AI Assistant] - [Agents]から開くこともできる。

  3. [Agents]ページで、OpenCodeを選択してインストールする。
  4. インストール完了後、AI ChatのエージェントセレクタにOpenCodeが表示される。


ACP Registryを利用するには、RustRoverおよびJetBrains AI プラグインを最新版へ更新する必要がある。

RustRoverでの有効化と動作確認

設定の反映

acp.json ファイルの保存後、RustRoverのAI Chatでエージェントを選択できる。

表示されない場合は、JSON形式と実行ファイルのパスを確認して、RustRoverを再起動する。

エージェントの選択

RustRoverでAI Chatツールウィンドウを開いて、チャットモードのエージェントセレクタから[OpenCode]を選択する。

Cargoプロジェクトの動作確認

Cargoプロジェクトまたはワークスペースを開いた状態で、読み取り中心の指示を送信する。

# プロンプト例

このCargoプロジェクトの構成と主要クレートを調査し、ビルド方法とテスト方法を要約してください。
ファイルは変更しないでください。


エージェントが応答し、プロジェクト内のファイルを参照できれば、ACP連携を確認できる。

OpenCode単体での事前確認

RustRover側を確認する前に、ターミナルで opencode acp コマンドを実行して、起動できるか確認する。
JetBrains公式ドキュメントでも、ターミナルで手動実行して動作確認することが推奨されている。

~/.opencode/bin/opencode acp


command キーに設定した絶対パスへ置き換えて実行する。
このコマンドはACPサーバを起動し、標準入力と標準出力でACPメッセージを待機する。

プロジェクト単位の設定

ACPエージェントの登録はユーザ単位の ~/.jetbrains/acp.json ファイルで行う。

一方、OpenCodeの動作はプロジェクト単位で設定できる。
次のファイルをCargoプロジェクトまたはワークスペースのルートに配置する。

  • opencode.json または opencode.jsonc
    モデル、MCPサーバ、権限等のプロジェクト設定を記述する。
  • AGENTS.md
    作業ルール、設計方針、禁止事項等を記述する。


OpenCodeは起動時にカレントディレクトリから設定ファイルを探して、最も近いGitディレクトリまで上方向へ探索するため、サブディレクトリから作業してもルートの設定が適用される。

トラブルシューティング

OpenCodeエージェントがAI Chatに表示されない
  • 原因
    acp.json ファイルのJSON形式が正しくない、または、設定変更がRustRoverに反映されていない。

  • 解決方法
    • acp.json ファイルが正しいJSON形式であることを確認する。
    • RustRoverを再起動する。


エージェントの起動に失敗する
  • 原因
    command キーの絶対パスが誤っている、OpenCodeの認証が完了していない、実行ファイルを起動できない。

  • 解決方法
    • command -v opencode コマンド および readlink -f コマンドで絶対パスを確認する。
    • 設定した絶対パスで opencode acp コマンドを手動実行する。
    • opencode auth list コマンドを実行して、プロバイダ認証を確認する。


ACPログの取得

AI Chatツールウィンドウ右上の [...(More)]ボタンから[Get ACP Logs]を選択すると、エージェントログのアーカイブを取得できる。

詳細な要求と応答を記録するには、Registryの llm.agent.extended.logging キーを有効してRustRoverを再起動する。

Registryを開く手順を、以下に示す。

  1. [Navigate]メニュー - [Search Everywhere]を選択する、または、[Shift]キーを2回押下して検索ウィンドウを開く。
  2. Registry と入力して、[Enter]キーを押下する。
  3. ダイアログで[Ctrl] + [F]キーを押下して、llm.agent.extended.logging キーを検索して、有効化する。
  4. [Close]ボタンを押下して、RustRoverを再起動する。


ログにはチャット内容等の機密情報が含まれる可能性があるため、共有前に確認すること。

セキュリティと運用上の注意

  • APIキーを ~/.jetbrains/acp.json ファイルに平文で記述しないこと。
    OpenCodeの認証機能 (opencode auth login) で設定した認証情報を使用する。
    認証情報は、~/.local/share/opencode/auth.json ファイルに保存される。
  • command キーには絶対パスを指定すること。
    シェルのエイリアスや相対パスは、RustRoverから起動できない場合がある。
  • use_idea_mcp キー と use_custom_mcp キーの公開範囲を確認すること。
    有効にしたMCPサーバの機能がエージェントから利用可能になる。
    必要最小限に留め、idea_mcp_allowed_tools キーでツールを制限できる。
  • 詳細ログを共有する前に機密情報を除去すること。
    llm.agent.extended.logging 有効時のログには、チャット内容やファイル内容が含まれる可能性がある。
  • WSL環境ではACP互換エージェントを使用しないこと。
    JetBrains公式ドキュメントでサポート対象外とされている。


関連情報