0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ローカル LLM でvibecoding環境(OpenCode + Ollama)を立ち上げてみよう(オプション編)

0
Posted at

はじめに

前回の記事で WSL Ubuntu に OpenCode + Ollama をインストールしました。今回はその続きで、OpenCode を使いこなすためのオプションやコマンドを紹介します。

本テーマは 3 回にわけて紹介予定です。

  1. インストール編(前回)
  2. OpenCode のオプション編(今回)
  3. 実践編

全部を網羅するのではなく、初心者が最初に押さえておけば十分なものに絞りました。


目次


対象者

  • ローカル LLM でコーディング支援を試してみたい人
  • WSL Ubuntu 環境で OpenCode + Ollama を動かしたい人
  • GPU なし(CPU 推論のみ)の環境で使えるか知りたい人

環境

  • WSL2 Ubuntu
  • Ollama インストール済み
  • OpenCode インストール済み(前回の記事参照)

推奨する起動コマンド

まずはこれをコピペして動かしてみてください。

TUI モード(対話的に使う)

opencode -m ollama/qwen2.5-coder:7b

非対話モード(ワンショットで使う)

opencode run -m ollama/qwen2.5-coder:7b "このコードを説明して"
オプション 説明 備考
-m ollama/<model> 使用モデルを指定 プロバイダー/モデル名 の形式で書く
-c / --continue 前回のセッションを引き継ぐ 会話の続きをしたいときに便利
-s <id> / --session <id> 指定したセッション ID を再開 opencode session で ID を確認できる
-f <file> / --file <file> ファイルを添付して送信 run モード専用。複数指定可
--format json 出力を JSON 形式にする run モード専用。スクリプトから使うときに便利

スラッシュコマンド

TUI 内で / で始まるコマンドが使えます。

ビルトインコマンド

カテゴリ コマンド ショートカット 説明
セッション /new ctrl+x n 新規セッションを開始
/compact ctrl+x c セッションを圧縮(トークン節約)
/export ctrl+x x 会話を Markdown でエクスポート
/exit ctrl+x q OpenCode を終了
編集操作 /undo 直前の変更を取り消し
/redo 取り消した変更をやり直し
その他 /editor ctrl+x e 外部エディタでメッセージを作成
/share セッションを共有
/help ヘルプを表示

ファイル参照(@

メッセージ内で @ を入力すると、ファイルをファジー検索で参照できます。

@src/main.py このファイルのバグを修正して

ファイルの中身がコンテキストに含まれます。

シェルコマンド実行(!

! で始まるメッセージはシェルコマンドとして実行され、出力が会話に追加されます。

!python test.py

「実行したらエラーが出た、直して」という流れがスムーズにできます。

補足

  • テキスト直打ち = コード変更依頼です。質問だけしたい場合でもそのまま入力すれば OK ですが、意図しない変更を避けたい場合は「変更しないで」と明示してください
  • @ は複数ファイルも指定できます(@src/main.py @src/utils.py この 2 ファイルをリファクタして
  • ! の出力はそのままチャットのコンテキストに入るので、エラー出力を AI に読ませて修正させる使い方が便利です
  • /compact はコンテキスト上限に近づいたときにトークンを節約できるので、ローカル LLM では地味に重要です
  • /undo は OpenCode が生成したコードが微妙だったときに即座にロールバックできます

設定ファイル

毎回 -m ollama/qwen2.5-coder:7b を打つのは面倒なので、設定ファイルにまとめておくのがおすすめです。

プロジェクトのルートに以下の内容で opencode.json を作成します。まずはこれをコピペしてください。

{
  "$schema": "https://opencode.ai/config.json",
  "model": "ollama/qwen2.5-coder:7b",
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama (local)",
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "qwen2.5-coder:7b": {
          "name": "Qwen 2.5 Coder 7B"
        }
      }
    }
  },
  "permission": {
    "write": "ask",
    "bash": "ask"
  }
}

これでプロジェクトルートから opencode だけで起動できます。

opencode

ファイル書き換え・コマンド実行の前に毎回確認が入るので、最初はこれで慣れるのがおすすめです。慣れてきたら "ask""grant"(確認なし)に変えると快適になります。

補足: グローバル設定は ~/.config/opencode/opencode.json に置けます。プロジェクトルートに opencode.json があればそちらが優先されます。

権限設定のカスタマイズ

設定値 動作 使いどころ
"grant" 常に許可(確認なし) 慣れてきたら。bash はこれにすると楽
"ask" 実行前に確認を求める 最初はこれが安心
"deny" 実行を禁止する 読み取り専用で使いたいとき

「コードの説明や質問だけに使いたい、書き換えは一切させたくない」という場合は "deny" にしてください。

権限キーの一覧

permission に指定できるキーの一覧です。

キー 対象 おすすめ初期値
read ファイル読み込み "grant"
edit ファイル編集 "ask"
write ファイル新規作成・上書き "ask"
bash シェルコマンド実行 "ask"
glob パターンでファイル検索 "grant"
grep 正規表現でコード検索 "grant"
list ディレクトリ一覧の取得 "grant"
task サブエージェント(タスク)実行 "ask"
webfetch Web コンテンツ取得 "ask"
websearch Web 検索 "ask"

読み取り系(read / glob / grep / list)は "grant" で問題ありません。書き込み・実行系(edit / write / bash)を "ask" にしておけば、意図しない変更を防げます。


まとめ

カテゴリ よく使うもの
起動オプション -m(モデル指定), -c(セッション継続), -f(ファイル添付)
セッション管理 /new, /compact, /export, /exit
ファイル参照 @ファイル名(ファジー検索で追加)
コマンド実行 !コマンド(出力を会話に追加)
取り消し /undo, /redo
設定ファイル opencode.json にまとめると楽

ローカル LLM で OpenCode を使う場合のポイントは 2 つです。

  • opencode.json でモデルを固定 しておく(毎回 -m を打たなくて済む)
  • @ でファイルを参照してから質問 する(コンテキストを明示的に渡す)

次回は実践編として、実際に OpenCode + Ollama でコードを生成させた結果を紹介します。


関連記事

henagineer のプログラミング・開発記事まとめ

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?