# OpenCodeの機能と実践的な使い方
⚡ OpenCodeはTUIだけのツールではありません。`opencode run` を使えば非対話でプロンプトを実行でき、シェルスクリプトやCIパイプラインにAIを直接組み込めます。
🏷️ タイトル: プログラマティック実行
🔗 URL:
📘 概要
OpenCodeのCLIは、既定ではTUIを起動しますが、コマンドとフラグを通じてプログラマティックに動かせます。中心となるのが、プロンプトを一発で実行する `opencode run` です。
⚙️ 機能の説明
・`opencode run "..."`: 非対話でプロンプトを実行します。主なフラグは `-m/--model`(`provider/model` 指定)、`--agent`(カスタムエージェント)、`-s/--session`(既存セッション継続)、`-c/--continue`(直近セッション再開)、`-f/--file`(ファイル添付)、`--format`(`json` 等で出力)、`--attach`(起動中サーバーへ接続)です。
・`serve`: UIなしのヘッドレスAPIサーバーを起動します(`--port`、認証は `OPENCODE_SERVER_PASSWORD`)。
・`session`: 会話履歴の一覧・削除(`session list --format json`、`session delete
`)。
・`export` / `import`: セッションの書き出し・取り込み(`export --sanitize`)。
・`models` / `auth` / `agent` / `github` / `mcp` / `stats` / `upgrade`: モデル一覧、認証管理、エージェント作成、GitHub連携、MCP管理、利用量確認、更新。
🛠️ 実践的な使い方
非対話実行をスクリプトに組み込めば、複数ファイルの一括処理やCIでのレビューが自動化できます。例えば `opencode run --format json "この差分をレビューして"` の出力をファイルに保存したり、`opencode serve` を常駐させて各ファイルを `opencode run --attach ... --file` でループ処理したりでき、`--attach` で接続するとレイテンシを抑えられます。
💡 ユースケース
CIで変更ファイルだけを `opencode run` に渡してレビューコメントをJSONで受け取り、後続ジョブで集計・通知する、といった機械処理に向きます。`stats` で日次のトークン消費とコストを監視するのも有効です。
⚠️ 注意点
・`serve` を外部公開する際は `OPENCODE_SERVER_PASSWORD` による認証を必ず設定してください。
・`--format json` の出力構造に依存する処理は、バージョン更新時に必ず確認しましょう。
・`OPENCODE_DISABLE_AUTOUPDATE` などの環境変数で、CI環境での自動更新を抑止できます。
#OpenCode# #CLI#