HN 日本語サマリー

← 一覧へ戻る
AI・機械学習

MacでOllamaとsbxを使ったOpenCodeの設定

Setting up OpenCode with Ollama and sbx on Mac (tensorsandtokens.com)

21 pointsby etoxin11 コメント

要約

この記事では、Mac上でローカルLLM開発環境を構築するために、Ollama、Docker Sandbox (sbx)、およびOpenCodeを連携させる方法を解説しています。Apple Silicon搭載MacでQwen 3.8やGemma 4といった大規模モデルを効率的に実行し、Webアプリケーション開発に活用するための具体的な手順が示されています。

全文翻訳

MacでOllamaとOpencodeを実行する。

ソフトウェア開発

OllamaのローカルモデルをOpencodeとDocker Sandboxesで実行する方法。

実用的なローカルLLM開発がついに実現しました。Qwen 3.8やGemma4のような強力なモデルを使えば、これらのモデルをWebアプリケーション構築に活用できるようになりました。私はApple Macbook pro m5 48GBモデルを使用しています。これはローカル開発において、適度なコンテキストサイズで30Bモデルを実行できるため、スイートスポットだと考えています。

なぜOllamaを使うのか

率直に言って、簡単だからです。現在mlxに対応しており、Apple Silicon上で高速に動作します。モデルディレクトリもかなり充実しています。また、非常に安定しており、クラッシュしません。

なぜOpencodeを使うのか

このブログでどこから始めるかという点で、Opencodeは素晴らしいハーネス(ツール)です。

私が使用するもう一つのツールは、docker sandboxes、別名 sbx です。私は職場でフロンティアモデルを使用しており、それらのハーネスをサンドボックス化する必要があります。また、ローカルモデルもコンテナ内で実行したいと考えています。なぜなら、意図しない幻覚(hallucination)によって、コンピュータを簡単に台無しにしてしまう可能性があるからです。

ツールのインストール

Docker Sandboxのインストール:

brew trust docker/tap && brew install docker/tap/sbx

Opencodeのインストール:

brew install anomalyco/tap/opencode

Ollamaのインストール:

Ollamaをインストールするには、https://ollama.com/にアクセスし、アプリをダウンロードしてインストールしてください。

モデルのインストール

モデルについては、2つのモデルをプルします。まず、ollamaが実行されていることを確認してください。

Qwen 3.8 27B mxfp8 (32GB): これは優れたワークホースモデルで、ほとんどの長時間実行タスクを処理でき、Opencode内で数時間 undisturbed で実行できます。

ollama pull qwen3.8:27b-mxfp8

Gemma 4 31b mxfp8 (34GB): これは、より大きなモデルが必要な場合に最適な、大きくて高密度のモデルです。

ollama pull gemma4:31b-mxfp8

注意: 48GBのAppleデバイスをお持ちでない場合は、標準モデル qwen3.8:27b-mlx および gemma4:31b-mlx をプルできます。

プロジェクトの設定

このセットアップでは、プロジェクトごとにsbx kitを設定する必要があります。キットはサンドボックスをカスタマイズする方法です。以下のフォルダとファイルを作成します。

./sbx-kit/files/home/.config/opencode-local.json
./sbx-kit/spec.yaml

spec.yaml

schemaVersion: "2"
kind: mixin
name: local-ollama-opencode
version: "0.1.0"
displayName: Local Ollama for OpenCode
description: Configure OpenCode in Docker Sandboxes to use Ollama running on the Mac host.

requires:
  agent: opencode

environment:
  variables:
    OPENCODE_CONFIG: /home/agent/.config/opencode-local.json

permissions:
  network:
    allow:
      - localhost:11434
      - localhost:5173
      - localhost:4000

agentInstructions:
  content: |
    Local Ollama runs on the host machine.

    Default model:
      qwen3.8:27b-mxfp8

    Deep file analysis / reasoning:
      gemma4:31b-mxfp8

opencode-local.yaml

{
  "$schema": "https://opencode.ai/config.json",

  "model": "ollama/gemma4:31b-mxfp8",
  "small_model": "ollama/gemma4:31b-mxfp8",
  "lsp": false,

  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Mac Ollama",

      "options": {
        "baseURL": "http://host.docker.internal:11434/v1"
      },

      "models": {


        "qwen3.8:27b-mxfp8-64K": {
          "id": "qwen3.8:27b-mxfp8",
          "name": "Qwen 3.8 27B MXFP8 [31 GB] [64K ctx]",
          "limit": {
            "context": 65536,
            "output": 8192
          },
          "variants": {
            "low": {
              "reasoningEffort": "low"
            },
            "medium": {
              "reasoningEffort": "medium"
            },
            "high": {
              "reasoningEffort": "high"
            },
            "xhigh": {
              "reasoningEffort": "xhigh"
            }
          }
        },

        "gemma4:31b-mxfp8": {
          "name": "Gemma 4 31B MXFP8 [33 → ~50 GB] [256K ctx]",
          "limit": {
            "context": 262144,
            "output": 8192
          }
        }

      }
    }
  }
}

Qwenモデルについては、コンテキストを64kに制限し、システムがメモリ不足でロックアップしないようにします。サンドボックス用に3GBのメモリも必要です。

Opencodeの実行

Opencodeを実行するには、以下を実行します。

sbx run opencode --kit ./sbx-kit/

これにより、Qwenが選択された状態でOpencodeが起動します。/models コマンドを使用して、必ず "low" effort に変更してください。

これで準備完了です。

注意: sbx を実行するにはDockerにログインする必要があります。この機能は開発コミュニティであまり好まれていませんが、他に方法はありません。

[画像: opencode]