インストール - CLion

提供: MochiuWiki : SUSE, EC, PCB

概要

CLionは、C/C++向けのクロスプラットフォームIDEである。

  • コーディング支援
    エディタは、コードの読み取りと記述を効果的に行うことができる。
    スマート補完に入力すれば補完結果を絞り込み、パンくずリストでは範囲階層内で場所をトラッキングすることができる。
    また、パラメータ名ヒントのお陰で、関数呼び出しに関する洞察も得られる。
    シンボルの使用箇所をコンテキストに合わせて検索したり、名前を入力するだけでそのシンボルに移動することも可能である。
    CLionでは、書式設定や命名規則等も含む様々なコーディングガイドラインに準じたコード検証も行うことができる。

  • コード生成
    多数のボイラープレートコードを瞬時に生成する。
    関数のオーバーライドや実装には単純なショートカットが用意されており、コンストラクタ、デストラクタ、getter、setter、等値、リレーショナル、ストリーム出力演算子も生成できる。
    ステートメントでコードブロックをラッピングしたり、使用箇所から宣言を生成することも可能である。
    カスタムライブテンプレートを作成することにより、頻繁に使用するコードブロックをコードベース全体で再利用できるようになるため、開発にかかる時間を短縮して、一貫したスタイルを維持することができる。

  • 安全なリファクタリング
    シンボル名の変更、関数、変数、マクロのインライン化、階層内でのメンバの移動、関数シグネチャの変更、関数、変数、パラメータ、typedefの抽出等、
    使用する自動リファクタリングに関係なく、全コードへの適切な変更は、CLionが安全にプロパゲートする。

  • クイックドキュメント
    キャレットのあるコードをインスペクションすることにより、関数シグネチャの詳細、コメントの表示、Doxygen式ドキュメンテーションのプレビュー、明示的な型が不足するシンボルの推論型の確認、
    適切に書式設定された最終的なマクロの置換の確認まで、コードに関するあらゆる情報を知ることができる。
  • 統合デバッガ
    GDBまたはLLDBをバックエンドとして使用するCLionのデバッガを使用することにより、問題の調査と解決を難なく行うことができる。
    ローカルプロセスへのアタッチ、リモートデバッグが可能である。

    組み込み開発では、CLionのOpenOCD、Embedded GDB Server構成により、オンチップデバッグが可能となる。
    組み込みデバイス用の分解ビュー、メモリビュー、ペリフィラルビューを活用すれば、さらに詳細な情報を得ることができる。


また、統合されたC/C++開発環境として、以下に示すような特徴もある。

  • プロジェクトモデル
    CLionでは、プロジェクトモデルを使用して、コーディング支援、リファクタリング、コーディングスタイルの一貫性、その他のスマートアクションに関する情報をエディター内に表示する。
    CMake、Makefile、Gradle、コンパイルデータベース等に対応している。

  • リモートでのコラボレーション作業
    ソースコードをローカルで編集した後、アプリケーションまたはユニットテストをローカル、リモート、オンチップで、ビルドおよび実行できる。
    コラボレーション環境を向上させて、複数人とリアルタイムでCLionプロジェクトの作業を行うことができる。

  • 必要なものを全て1箇所に集約
    CLionには、VCS (SVN / Git / GitHub / Mercurial / Perforce)、ユニットテスト用のGoogle Test / Catch / Boost.Testフレームワーク、
    Doxygen、データベースツール、Markdown等をサポートしており、開発タスクに欠かせないあらゆる機能が含まれている。



CLionのインストール

CLionの公式Webサイトにアクセスして、CLionをダウンロードする。
ダウンロードしたファイルを解凍する。

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


必要ならば、CLionを任意のインストールディレクトリに配置する。

mv CLion <任意のインストールディレクトリ>


CLionのデスクトップエントリファイルを作成する。
CLionを起動して、[ツール]メニューバー - [デスクトップエントリの作成]を選択する。
~/.local/share/applicationsディレクトリにCLionのデスクトップエントリファイルが作成される。


Raspberry Pi / Qt 5との連携

CLionを使用してRaspberry PiとQt 5のクロス開発を行う場合は、インストール_-_Qt5_Raspberry_Pi#CLion / Qt 5との連携のページを参照すること。


PinePhone / Qt 5との連携

CLionを使用してPinePhoneとQt 5のクロス開発を行う場合は、インストール_-_Qt5_PinePhone#CLion / Qt 5との連携のページを参照すること。


MSP430との連携

MSP430向けGCCツールチェーンのインストール

TIの公式Webサイトにアクセスして、MSP430のGCCツールチェーンおよびMSP430の開発向けヘッダファイル群をダウンロードする。
ダウンロードするファイルは2つである。

  • Mitto Systems GCC 64-bit Linux installer incl. support files
  • Header and Support Files


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

# MSP430 GCCツールチェーン
7z x msp430-gcc-full-linux-x64-installer-<バージョン>.7z

# MSP430 開発向けヘッダファイル群
unzip msp430-gcc-support-files-<バージョン>.zip
mv msp430-gcc-support-files-<バージョン> <任意のディレクトリ>


MSP430 GCCツールチェーンをインストールする。

sudo ./msp430-gcc-full-linux-x64-installer-<バージョン>.run \
     --prefix <MSP430 GCCツールチェーンのインストールディレクトリ  例: /opt/TI/MSP430_GCC> \
     --mode xwindow --installer-language ja
# または
kdesu -c './msp430-gcc-full-linux-x64-installer-<バージョン>.run \
          --prefix <MSP430 GCCツールチェーンのインストールディレクトリ  例: /opt/TI/MSP430_GCC> \
          --mode xwindow --installer-language ja'


/<MSP430 GCCツールチェーンのインストールディレクトリ>/bin/gdb_agent_consoleファイルに実行権限を付加する。

chmod +x /<MSP430 GCCツールチェーンのインストールディレクトリ>/bin/gdb_agent_console
# または
sudo chmod +x /<MSP430 GCCツールチェーンのインストールディレクトリ>/bin/gdb_agent_console


MSP Flasherのインストール (ez-FETを使用する場合)

TIの公式Webサイトにアクセスして、MSP Flasherをダウンロードする。

  • Linux 64-Bit Installer for MSPFlasher


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

unzip MSPFlasher-<バージョン>-linux-x64-installer.zip


解凍したファイル (インストーラ) に実行権限を付加する。

chmod u+x MSPFlasher-<バージョン>-linux-x64-installer.run


MSP Flasherをインストールする。
MSP Flasherのインストールディレクトリは、任意のディレクトリで構わない。

./MSPFlasher-<バージョン>-linux-x64-installer.run


MSP Debugのインストール

MSP Debugのビルドに必要なライブラリをインストールする。

# SUSE
sudo zypper install readline-devel libusb-1_0-devel libusb-compat-devel


MSP DebugのGithubにアクセスして、ソースコードをダウンロードする。

git clone https://github.com/dlbeer/mspdebug.git
cd mspdebug


MSP Debugをビルドおよびインストールする。

make PREFIX=<MSP Debugのインストールディレクトリ> -j $(nproc)
make PREFIX=<MSP Debugのインストールディレクトリ> install


MSP430向けGCCツールチェーンのアンインストール

/<MSP430向けGCCツールチェーンのインストールディレクトリ>/binディレクトリに移動する。

cd /<MSP430向けGCCツールチェーンのインストールディレクトリ>/bin


MSP430向けGCCツールチェーンをアンインストールする。

sudo ./uninstall
# または
kdesu ./uninstall


CLionの設定

CMakeツールチェーンファイルの作成
vi /<MSP430プロジェクトのトップディレクトリ>/toolchain-msp430-gcc-ti.cmake


 # /<MSP430プロジェクトのトップディレクトリ>/toolchain-msp430-gcc-ti.cmakeファイル
 
 include(CMakeForceCompiler)
 
 # ツールチェーン等のパス
 SET(PLATFORM_PACKAGES_PATH    "<上記のセクションでインストールしたMSP430 GCCツールチェーンのパス  例: /opt/TI/MSP430_GCC>")
 list(APPEND CMAKE_MODULE_PATH "<CLionのMSP430プロジェクトのトップディレクトリ  例: /home/user/MSP430Project>")
 list(APPEND CMAKE_MODULE_PATH "${PLATFORM_PACKAGES_PATH}/lib/cmake")
 list(APPEND CMAKE_PREFIX_PATH "${PLATFORM_PACKAGES_PATH}/lib/cmake")
 INCLUDE_DIRECTORIES("${PLATFORM_PACKAGES_PATH}/include ${INCLUDE_DIRECTORIES}")
 
 # ターゲットデバイス名
 SET(SUPPORTED_DEVICES "<ターゲットデバイス名  例: msp430g2553>" CACHE STRING "Supported Target Devices")
 
 set(CMAKE_SYSTEM_NAME msp430-gcc)
 
 # コンパイラの設定
 SET(MSP430_TI_COMPILER_FOLDER   ${PLATFORM_PACKAGES_PATH})
 SET(MSP430_TI_BIN_FOLDER        ${MSP430_TI_COMPILER_FOLDER}/bin)
 SET(MSP430_TI_INCLUDE_FOLDER    ${MSP430_TI_COMPILER_FOLDER}/include)
 SET(TOOLCHAIN_PREFIX            msp430-elf)
 SET(TOOLCHAIN_BIN_PATH          ${MSP430_TI_BIN_FOLDER})
 SET(FLASHER_PATH                <上記のセクションでインストールしたMSP Flasherのパス  例: /home/user/MSPFlasher>)
 SET(MSPDEBUG_PATH               <上記のセクションでインストールしたMSP Debugのパス    例: /home/user/MSP_Debug/bin>)
 SET(MSPDEBUG_DEVICE             ezfet)
 
 INCLUDE_DIRECTORIES(${MSP430_TI_INCLUDE_FOLDER} ${INCLUDE_DIRECTORIES})
 
 LINK_DIRECTORIES(${MSP430_TI_INCLUDE_FOLDER} ${LINK_DIRECTORIES})
 
 FIND_PROGRAM(MSP430_CC      ${TOOLCHAIN_PREFIX}-gcc     PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_CXX     ${TOOLCHAIN_PREFIX}-g++     PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_AR      ${TOOLCHAIN_PREFIX}-ar      PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_AS      ${TOOLCHAIN_PREFIX}-as      PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_OBJDUMP ${TOOLCHAIN_PREFIX}-objdump PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_OBJCOPY ${TOOLCHAIN_PREFIX}-objcopy PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_SIZE    ${TOOLCHAIN_PREFIX}-size    PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_NM      ${TOOLCHAIN_PREFIX}-nm      PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSPDEBUG       mspdebug                    PATHS ${MSPDEBUG_PATH})
 FIND_PROGRAM(MSP430_FLASHER MSP430Flasher               PATHS ${FLASHER_PATH})
 
 set(CMAKE_C_COMPILER    ${MSP430_CC} CACHE STRING "C Compiler")
 set(CMAKE_CXX_COMPILER  ${MSP430_CXX} CACHE STRING "C++ Compiler")
 
 set(AS     ${MSP430_AS} CACHE STRING "AS Binary")
 set(AR     ${MSP430_AR} CACHE STRING "AR Binary")
 set(OBJCOPY ${MSP430_OBJCOPY} CACHE STRING "OBJCOPY Binary")
 set(OBJDUMP ${MSP430_OBJDUMP} CACHE STRING "OBJDUMP Binary")
 set(SIZE    ${MSP430_SIZE} CACHE STRING "SIZE Binary") 
 
 IF(NOT CMAKE_BUILD_TYPE)
    SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
       "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
       FORCE)
 ENDIF(NOT CMAKE_BUILD_TYPE)
 
 set(MSPGCC_OPT_LEVEL    "g" CACHE STRING "MSPGCC OPT LEVEL")
 set(MSPGCC_WARN_PROFILE "-Wall -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wunused"
            CACHE STRING "MSPGCC WARNINGS")
 
 set(MSPGCC_DISABLED_BUILTINS "-fno-builtin-printf -fno-builtin-sprintf"
                              CACHE STRING "MSPGCC Disabled Builtins")
 
 set(MSPGCC_OPTIONS "-gdwarf-3 -fdata-sections -ffunction-sections -fverbose-asm ${MSPGCC_DISABLED_BUILTINS}"
                    CACHE STRING "MSPGCC OPTIONS")
 
 set(CMAKE_C_FLAGS   "${MSPGCC_WARN_PROFILE} ${MSPGCC_OPTIONS} -O${MSPGCC_OPT_LEVEL}  -DGCC_MSP430" CACHE STRING "C Flags")
 
 set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--gc-sections -Wl,--print-gc-sections"
                               CACHE STRING "Linker Flags")
 set(CMAKE_EXE_LINKER_FLAGS "-Wl,--gc-sections"
                            CACHE STRING "Linker Flags")
 
 # リンカコマンドの設定
 set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_C_COMPILER> ${CMAKE_EXE_LINKER_FLAGS} <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>"
                               CACHE STRING "C++ Executable Link Command")
 
 set(CMAKE_C_LINK_EXECUTABLE ${CMAKE_CXX_LINK_EXECUTABLE} CACHE STRING "C Executable Link Command")
 
 set(PROGBIN     ${MSP430_FLASHER} CACHE STRING "Programmer Application")


リンカコマンドファイルのコピー

ターゲットデバイスのリンカコマンドファイルを、プロジェクトのトップディレクトリにコピーする。

cp /<上記のセクションでインストールしたMSP430 GCCツールチェーンのパス>/include/<ターゲットデバイス名>.ld \
   <MSP430プロジェクトのトップディレクトリ>

# 例: MSP430G2553を使用する場合
cp /<上記のセクションでインストールしたMSP430 GCCツールチェーンのパス>/include/msp430g2553.ld \
   <MSP430プロジェクトのトップディレクトリ>


プロジェクトの設定
  1. プロジェクトを開いて、[ファイル]メニューバー - [設定]を選択する。
  2. [設定]画面の左ペインから、[ビルド、実行、デプロイ] - [CMake]を選択する。
  3. [設定]画面の右ペインから、[+]アイコンを選択して、CMakeの設定を行う。
    • [名前]
      任意の名前
    • [ビルドタイプ]プルダウン
      Debug
    • [ツールチェーン]プルダウン
      MSP430ツールチェーンを選択する。
    • [ジェネレーター]
      [デフォルトを使用する]
    • [CMakeオプション]
      -DCMAKE_TOOLCHAIN_FILE=<上記のセクションで作成したCMakeツールチェーンファイルのパス>
  4. [OK]ボタンを押下する。



ACPを使用したOpenCodeとの連携

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

ACPは、コードエディタとAIコーディングエージェント間の通信を標準化するオープンなプロトコルであり、LSP (Language Server Protocol) が言語サーバ統合を標準化したのと同じ役割を、エージェント向けに果たす。
CLionはACP互換エージェントをサブプロセスとして起動して、JSON-RPC over stdioで通信する。

ACPの仕組み

ACP連携時の全体構成は次のとおりである。

  • CLion (AI Assistant)
    AI Chatからエージェントを選択し、プロンプトを送信する。
    ACP互換エージェントをサブプロセスとして起動する。
  • 通信経路 (JSON-RPC / stdio)
    CLionとエージェントの間で、JSON-RPCメッセージを標準入力と標準出力でやり取りする。
    ローカル実行が基本であり、ネットワークポートの開放は不要である。
  • OpenCode (opencode acp コマンド)
    OpenCodeの acp サブコマンドが、ACP互換サーバとしてstdio上で待ち受ける。
    設定済みのツール、MCPサーバ、AGENTS.md ファイルのルール等を通常どおり利用する。


JetBrains公式では、ACP互換エージェントはJetBrains AIサービスのサブスクリプション無しでも接続・利用可能とされている。
ただし、Windows Subsystem for Linux (WSL) 環境では、ACP互換エージェントはサポート対象外である。

前提条件

  • OpenCodeがインストール済みであること。
    インストール手順は、インストール - OpenCodeのページを参照すること。
  • OpenCodeのプロバイダ認証が完了していること。
  • CLionでAI Assistantが利用可能であること。
  • WSL環境ではないこと。


OpenCode側の準備

ACP設定の前に、OpenCode側の初期化と認証を済ませておく。
これは、JetBrains側の設定ファイルにAPIキーを直接記述しなくて済むようにするためである。

プロバイダの認証

OpenCodeのプロバイダ認証には、CLIとTUIの2つの方法がある。
どちらの方法でも、認証情報は ~/.local/share/opencode/auth.json ファイルに保存される。

  • opencode auth login コマンド (CLI)
    ターミナルから直接プロバイダを選択して認証する。
  • /connect コマンド (TUI)
    OpenCodeを起動して、TUI内で /connect コマンドを実行してプロバイダを選択し、APIキーを入力する。


CLIで認証する場合は、次のコマンドを実行する。

opencode auth login


TUIで認証する場合は、OpenCodeを起動後、TUI内で以下に示すコマンドを実行する。

/connect


設定済みのプロバイダを確認する。

opencode auth list


利用可能なモデル一覧を更新して確認する。

opencode models --refresh


プロジェクト設定ファイルの準備

OpenCodeは、プロジェクトルートの opencode.json / opencode.jsonc ファイルを読み込み、グローバル設定よりも優先する。

OpenCodeは起動時にカレントディレクトリから設定ファイルを探して、Gitルート方向へ探索する。
プロジェクト固有のモデル指定やMCPサーバ設定は、このファイルに記述する。

  • opencode.json / opencode.jsonc
     {
        "$schema": "https://opencode.ai/config.json",
        "model": "opencode-go/glm-5.2",
        "instructions": [
           "AGENTS.md"
        ]
     }
    


作業ルールや設計方針は、プロジェクトルートの AGENTS.md ファイルに記述する。
OpenCodeはこのファイルを読み込み、プロジェクト専用のルールとして適用する。

AGENTS.md ファイルは手動で作成するほか、OpenCode TUIの /init コマンドで生成できる。
OpenCodeを起動して、TUI内で /init コマンドを実行すると、OpenCodeがプロジェクト構成を解析して、AGENTS.md ファイルのひな形を作成または更新する。

JetBrains側のACP設定

~/.jetbrains/acp.jsonの作成

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

このファイルは、次のいずれかの経路から作成・編集できる。

  • AI Chatツールウィンドウ右上のメニュー - [Add Custom Agent]
    ファイルが存在しない場合は新規作成され、編集用に開かれる。
  • [設定] - [ツール] - [AI Assistant] - [Agents]
    Agents設定画面からエージェントの追加やMCP設定の切り替えを行う。


手動で作成する場合は、以下に示す通り、ディレクトリとファイルを用意する。

mkdir -p ~/.jetbrains


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

command コマンドには、OpenCode実行ファイルの絶対パスを指定する必要がある。

JetBrains公式のトラブルシューティングでも、エージェント起動失敗時はフルパスの使用が推奨されている。

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

# 出力例
/home/<ユーザ名>/.opencode/bin/opencode


acp.jsonの記述

確認した絶対パスを command キーに設定する。
args キーには acp を指定し、OpenCodeをACPサーバとして起動する。

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


下表に、各設定項目の意味を示す。

acp.jsonの設定項目
項目 配置 説明
default_mcp_settings 最上位 全ローカルエージェントに適用される既定のMCP設定
use_idea_mcpuse_custom_mcp を配下に持つ。
use_custom_mcp default_mcp_settings 配下 ユーザ設定済みのMCPサーバをエージェントへ公開するかどうか。
既定値は true
use_idea_mcp default_mcp_settings 配下 JetBrains内蔵のIntelliJ MCP Serverをエージェントへ公開するかどうか。
既定値は false
agent_servers 最上位 登録するエージェントの最上位オブジェクト
各キーがAI Chatに表示されるエージェント名になる。
command 各エージェント配下 エージェントの実行ファイルパス
AI Assistantはこのファイルをサブプロセスとして起動する。

※絶対パスを指定すること。
args 各エージェント配下 起動時に渡すコマンドライン引数の配列
OpenCodeでは acp を指定する。
env (省略可能) 各エージェント配下 エージェントプロセスに設定する環境変数
プロキシ等が必要な場合に使用する。


環境変数が必要な場合の記述

プロキシ環境等で環境変数が必要な場合は、env キーに追加する。

APIキーは env キーに直接記述せず、原則として opencode auth login コマンドで設定した認証情報を使用すること。

 {
    "agent_servers": {
       "OpenCode": {
          "command": "/home/<ユーザ名>/.opencode/bin/opencode",
          "args": [
             "acp"
          ],
          "env": {
             "HTTP_PROXY": "http://proxy.example.local:8080",
             "HTTPS_PROXY": "http://proxy.example.local:8080"
          }
       }
    }
 }


CLionでの有効化と動作確認

設定の反映

acp.json ファイルを作成または編集した直後から、通常はAI Chatでエージェントを選択できる。
エージェントがAI Chatに表示されない場合は、acp.json ファイルのJSON形式を確認したうえでCLionを再起動すること。

ファイル形式の確認とIDE再起動は、JetBrains公式のトラブルシューティング手順にも挙げられている。

エージェントの選択

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

追加したエージェントは、エージェントアイコン付きでリストに表示される。

動作確認

まず読み取り中心の指示で接続を確認する。

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


エージェントが応答して、ファイル参照や検索を実行できれば、ACP連携は成功である。

その後、実装や修正の指示を出して運用に進めればよい。

OpenCode単体での事前確認

JetBrains側でトラブルシュートする前に、ターミナルで opencode acp コマンドが起動するか確認できる。
正常な場合は、プロセスがJSON-RPCメッセージを待機する状態で停止する。

/home/<ユーザ名>/.opencode/bin/opencode acp


プロジェクト単位の設定

ACPエージェントの登録自体は、JetBrainsユーザ単位 (~/.jetbrains/acp.json) でのみ行う。

JetBrains公式仕様では、プロジェクトルートや .idea ディレクトリ配下にACP設定を置いて、プロジェクト単位で有効化することはサポートされていない。
プロジェクトごとにACPエージェントを切り替えたい要件はYouTrackで要望が挙がっている機能であり、現時点では未対応である。

一方、OpenCode側の挙動はプロジェクト単位で制御できる。
推奨される構成を次に示す。

  • ~/.jetbrains/acp.json
    JetBrains全体でOpenCodeのACPエージェントを1つ登録する。
  • <プロジェクトルート>/opencode.json
    そのプロジェクト専用のOpenCode設定を記述する。モデル、MCPサーバ、ツールの許可等を指定できる。
  • <プロジェクトルート>/AGENTS.md
    そのプロジェクト専用の作業ルール、設計方針、禁止事項を記述する。


この分離により、ACPエージェントの登録はユーザ単位のまま、OpenCodeの挙動だけをプロジェクトごとに切り替えられる。

トラブルシューティング

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

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


エージェントの起動に失敗する
  • 原因
    OpenCodeの絶対パス誤り、OpenCode側の認証未完了、実行ファイルの異常

  • 解決方法
    • OpenCode実行ファイルの絶対パスが指定されていることを確認する。
    • ターミナルで opencode コマンドを手動実行して、OpenCodeが起動するか確認する。
    • opencode auth list コマンドを実行して、プロバイダ認証が完了しているか確認する。


ACPログの取得

AI Chatツールウィンドウ右上のメニューから[Get ACP Logs]を選択すると、エージェントのログをアーカイブ形式で取得できる。

より詳細なログが必要な場合は、Registryの llm.agent.extended.logging キーを有効化する。
ただし、この詳細ログにはチャット内容等の機密情報が含まれる可能性があるため、共有前には内容を確認すること。

Registryの有効化手順は次のとおりである。

  1. [Shift]キーを2回押下して、Search Everywhereを開く。
  2. Registry と入力して、[Enter]キーを押下する。
  3. [Ctrl] + [F]キーを押下して、llm.agent.extended.logging を検索して、有効化する。
  4. CLionを再起動する。


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

  • APIキーを acp.json ファイルに平文で記述しないこと。
    プロバイダ認証は opencode auth login コマンドで行い、保存された認証情報を再利用する。
  • llm.agent.extended.logging 有効時のログの取り扱いに注意すること
    チャット内容やファイル内容が含まれる可能性がある。
    共有時には事前に機密情報を取り除くこと。
  • WSL環境ではACP互換エージェントは動作対象外である。
    ネイティブLinux環境でCLionとOpenCodeを動かすこと。
  • command コマンドには絶対パスを使用すること。
    相対パスやシェルのエイリアスは、JetBrainsのサブプロセス起動では解決されない場合がある。
  • MCPサーバの公開範囲を意識すること
    use_idea_mcp キー および use_custom_mcp キーで、エージェントへ公開するMCPサーバを制御できる。


関連情報