😅

opencode × Ollama × Devstral を試してみたが、まだ実用は厳しかった話

に公開

【お詫びと訂正2025/6/22】

この記事で扱っている「opencode」は、技術評論社の記事で紹介されていた sst/opencode とは別のものである opencode-ai/opencode の設定が混在していました。そのため、使用する際に混乱を招く内容となっていたことがわかりました。

混乱を招く記事を書いてしまい、大変申し訳ございませんでした。

技術評論社の記事で紹介されていた sst/opencode プロジェクトに基づく正確な検証について、実施し内容を記事内に反映しました(修正箇所は設定ファイルの部分と環境変数の設定です)。

大変失礼いたしました。

はじめに

技術評論社の記事で紹介されていたオープンソースのAIコーディングエージェントopencodeが一般利用可能にというのを見て、「これは面白そうだ」と思い、金がないのでローカルLLMであるDevstralをOllamaで動かしてopencodeの動作検証をしてみました。

結果としては、ローカルLLMでの動作確認はできたけれどファイル操作に失敗したという状態です。しかし、試した記録には意味があると思い、この記事を書き残します。

opencodeの概要

  • 100%OSSのコーディングエージェント
  • TUI(Text User Interface)動作
  • OpenAI, Anthropic Claude, Google Gemini, AWS Bedrock, Groq, Azure OpenAI, OpenRouterなど各種AIプロバイダをサポート

GitHubへのリンク:https://github.com/sst/opencode

やりたかったこととその結果

  • AIコーディングアシスタントをチャットとして動作確認→完了!
  • ローカルLLM(Devstral)と連携して「ファイルの生成・編集」まで行わせたい→失敗!

実行環境:

  • 実行環境:
    • OS: Windows11 (Ubuntu on WSL2)
    • CPU: Ryzen9 3950
    • Memory: 128GB (DDR4)
    • GPU: RTX 3090(VRAM 24GB)
  • 使用ツール
    • opencode: v0.1.117
    • ollama: 0.9.2
    • node: v20.10.0
    • npm: 10.2.3
  • 使用 LLM:
    • devstral:24b(ローカル/Ollama)

用語説明

  • ollamaとは
    大規模言語モデル(LLM)をローカル環境で簡単に実行・管理するためのオープンソースツール
  • Devstralとは
    Mistral AI, All Hands AI 2025 年 5 月末に公開、ソフトウェアエンジニアリングタスク用のエージェント LLM、コードベースの探索、複数のファイルの編集、ソフトウェアエンジニアリングエージェントに使える

導入

ollamaの導入

管理者権限不要!UbuntuでのOllamaローカルインストール手順を参考にさせていただきました。

# Ollamaのバイナリファイルをダウンロード
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama.tgz

# 展開
tar -xzf ollama.tgz

# 実行権限付与
ls -l ./bin/ollama
chmod +x ./bin/ollama

# ollama実行
./bin/ollama serve

# Devstralのpull
./bin/ollama pull devstral:24b

今回は、Devstralを使用しますがhttps://models.dev/の一覧にあるものならば使えるそうです。(一覧にないGemma3はopencodeでは使えないってエラーを吐かれました…)

opencodeの導入

opencodeのドキュメントに書いてある通りに実行します。

npm install -g opencode-ai

npm以外にもインストールスクリプトがあったり、macOSならhomebreaw、arch linuxならparuを用いて導入ができるようです。

opencodeの設定

以下の2つの設定ファイルを作成する

※6/22追記:以下.opencode.jsonはopencode-ai/opencodeの設定でしたので不要です。
/.opencode.json
{
"agents": {
"coder": {
"model": "local.devstral",
"reasoningEffort": "high"
},
"task": {
"model": "local.devstral"
},
"title": {
"model": "local.devstral"
}
}
}

~/.config/opencode/config.json

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "devstral:24b": {
          "tools": true
        }
      }
    }
  }
}

環境変数の設定
※6/22追記:こちらもopencode-ai/opencodeの設定でしたので不要です。
# ollamaのエンドポイントを指定する
export LOCAL_ENDPOINT=http://localhost:11434/v1

opencodeを実行

実行

# 適当な作業ディレクトリを作って移動
mkdir test-opencode
cd test-opencode

# opencodeを作業ディレクトリで起動
opencode .

モデル選択

起動すると以下の画像ようなTUIが表示されます。
TUI

コマンド入力を受け付けているので、/modelsと入力しEnterキーを押すとモデル一覧が表示されます。
models

ここで注意、この状態でいくら上下に行ってもローカルで導入したはずのdevstral:24bが出てきませんが、左右矢印キーを押すとローカル動作のモデルが出てくる。ここで使いたいモデル(今回はdevstral:24b)を選択してEnterキーを押します。
local_models

hello worldを書かせてみる

hello worldのPythonスクリプトを書かせてみましょう。
CUIなので日本語のテキストを入力するときは癖があります(入力すると左下または右下に日本語が一時的に表示されて確定後テキストエリアに表示される)。英語ができる人は英語でプロンプトを書きましょう。
prompt

プロンプトを書き終わったらEnterキーを押すと、LLMが起動し反応を返します。
hello

ファイル操作をさせてみる(失敗)

プロンプト①:hello.pyというファイルを現在のディレクトリに作成してください。その内容はPythonのHelloWorldを表示するコードです。
file_failed

プロンプト②:please make hello.py file in current directory.
file_failed2
いずれもファイルの作成方法を出してくれるだけで、コマンドを実行してくれませんでした。
コマンドを実行するようにプロンプトを書くと以下のように返されます。

I'm here to help, but I can't execute commands directly.
If you need assistance with a specific task or have
questions about using commands in a particular context
(like terminal commands for a script), feel free to ask!

「コマンド実行できないよ」ってことらしいです。

試したこと

以下のことを試してみましたが、いずれも失敗に終わりました。

  • chmod -R 777 test-opencodeをすることで明示的に書き込みを可能にしてみた→ファイル操作不可
  • hello.pyをあらかじめ作って実行してみた→ファイル操作不可
  • 作業ディレクトリに.opencodeを作成→対話ログが出力されることを期待したが出力されず
  • ~/.config/opencode/config.jsonのmodelsに明示的にtools: trueの設定を加えたが効果なし

現時点での感想

  • OSSとしての方向性は面白い
  • ローカルLLMとCLIベースのコーディングアシスタントという構成は理想的
  • 現時点では実用レベルに至っておらず(やり方が悪いだけかも)
  • 初期導入で迷いやすい、同じ名前のものが2つあるのは… まとめてくださっている方がいらっしゃいました→OpenCode 違い

まとめ

  • opencodeは発展すれば便利そうなツールです
  • 今後の開発次第では再度試したいです

同じようにチャレンジしている人の参考になれば嬉しいです。
(そして、ファイル操作のうまいやり方があったら教えてください!)

参考

opencode
opencode:GitHub
オープンソースのAIコーディングエージェントopencodeが一般利用可能に

Discussion