「Claude CodeやCursorは便利だ。でも、そのたびに自分のコードとプロンプトがクラウドへ送られ、トークン課金も積み上がっていく」——この負担を、手元のMacの中だけで肩代わりできたら。それを狙って作られたのが omlx(oMLX)jundot/omlx)です。GitHubスター17,900超、Apache-2.0ライセンスの、Apple Silicon専用のローカルLLM推論サーバー。最大の特徴は、OpenAIとAnthropicの両方のAPIに互換で、しかもClaude Codeのローカルバックエンドとしてそのまま繋がることです。作者自身がREADMEで「Claude Codeのようなツールで実際のコーディング作業を、ローカルLLMで現実的にするために作った」と明言しています。

M2 MacでomlxをローカルLLMサーバーとして起動し、OpenAI互換の/v1/chat/completionsとAnthropic互換の/v1/messagesの両方をcurlで叩いた実測結果。KVキャッシュ再利用で応答が1.19秒→0.42秒に高速化
本記事の実測。M2 Mac(macOS 14.5)でomlxを起動し、OpenAI互換(/v1/chat/completions)とAnthropic互換(/v1/messages)の両エンドポイントを実際に叩いた。同じ長いプレフィックスの2回目は階層KVキャッシュが効き、応答が約2.8倍速くなった(256/359トークンを再利用)。
30秒でわかるポイント
  • 課題:Claude Code・Cursorはクラウド前提で、コードもプロンプトも外部へ出て料金もかかる。Ollama等のローカルサーバーはOpenAI互換のみで、Claude Codeにそのまま繋がらない。
  • 解決:omlxはOpenAIとAnthropicの両API互換のローカル推論サーバー。Claude Codeが叩く/v1/messages自分のMacで提供する。メニューバーから常駐管理でき、コードは一切マシンから出ない。
  • 実測:M2 Mac(macOS 14.5)で起動し両エンドポイントを実際に叩いた。階層KVキャッシュで2回目の応答が1.19秒→0.42秒(約2.8倍)に高速化。Claude Codeとの接続(配管)も通った。
  • 作り手:作者jundotを中心とするコミュニティ。Apache-2.0・無料。ただしpre-1.0(v0.5.1)でコミットは作者に集中——採用は活性度と一点集中を天秤にかける。
  • 対象Apple Silicon(M1/M2/M3/M4)専用。MLXベースでMetalに最適化。Windows/Linuxでは動かない。

まず前提知識として、LLMそのものの仕組み・主要モデル比較・ローカル実行・量子化の全体像は、当サイトのLLMとは?仕組み・主要モデル比較・ローカル実行・量子化を一気にまとめる2026年版にまとめてあります。本記事はその中でも「Apple Siliconで・Claude Codeのバックエンドとして・OpenAI/Anthropic両対応で動かす」という、omlxならではの立ち位置を実測で掘り下げます。

omlxとは何か——「メニューバーで動くApple Silicon専用のLLM推論サーバー」

omlxを一言でいえば、「Macのメニューバーから常駐管理できる、OpenAI互換のマルチモデル推論サーバー」です。公式のタグラインは「LLM inference, optimized for your Mac(あなたのMacに最適化されたLLM推論)」。もう少し噛み砕くと、次の3つを1つのアプリで束ねたものです。

推論エンジン——Apple公式のMLX(およびmlx-lm)を土台に、LLM・VLM(画像も読めるモデル)・OCR・埋め込み・リランカーをMac上で動かす
OpenAI/Anthropic互換のAPIサーバー——http://localhost:8000/v1 に、どのOpenAI互換クライアントもAnthropic互換クライアントも繋げる
ネイティブのメニューバーアプリ+Web管理画面——Swift/SwiftUI製(Electronではない)のメニューバー常駐アプリと、/admin のダッシュボードでモデルの起動・停止・監視・ベンチマークを行う

oMLXの管理ダッシュボード。ロード済みモデル・メモリ使用量・リクエスト状況をリアルタイムに表示し、モデルの起動/停止/ピン留めをブラウザから操作できる
omlxのWeb管理ダッシュボード(/admin)。モデルの起動・停止・ピン留め、メモリ監視、チャット、ベンチマークをブラウザから操作できる。8言語対応で、CDN依存はすべて同梱され完全オフラインで動く。出典: jundot/omlx 公式README

作者はjundotという個人開発者で、READMEにはこう書かれています——「試したどのLLMサーバーも、便利さと制御のどちらかを選ばせてきた。日常的に使うモデルはメモリに常駐させ、重いモデルは要求に応じて自動で入れ替え、コンテキスト上限を決め、それを全部メニューバーから管理したかった。(中略)ローカルLLMを、Claude Codeのようなツールでの実際のコーディング作業に耐えるものにする。だから作った」。Claude Codeのローカルバックエンド化が、このプロジェクトの出発点そのものなのです。

omlxの設計思想は「Apple Siliconに全振りする」こと。OllamaのようにあらゆるOSで動く汎用性を捨てる代わりに、MLX・Metal・macOSの機能をフルに使い、階層KVキャッシュ・連続バッチング・メモリガードといった「本気の推論サーバー」の機能をMacに持ち込む。汎用性ではなくMacでの一点突破が武器です。

何ができて、何を解決するのか

当サイトの読者が知りたいのは、結局この3つのはずです。整理します。

何ができるか:Apple SiliconのMac上で、テキストLLM・VLM・OCR・埋め込み・リランカーを、OpenAI互換+Anthropic互換のAPIとして配信する。複数モデルを1サーバーに載せ、LRUで自動退避・ピン留め・アイドルTTLで管理し、階層KVキャッシュで文脈を再利用する
何を解決するか:「AIコーディングは便利だが、コードとプロンプトを外へ出したくない・API課金を積みたくない」という不安を、ローカル実行で解消する。さらに「Ollama等はOpenAI互換だけで、Anthropic系ツール(Claude Code)にそのまま繋がらない」という具体的な穴を、Anthropic API互換で埋める
何を代替できるか:正直に言えば、生成品質でクラウドのClaude/GPTを丸ごと置き換えるものではありません(後述の実測を参照)。代替できるのは「推論サーバーそのもの」——OllamaやLM Studioのサーバー機能、あるいはクラウドAPIの接続先を、Macローカルのomlxに差し替える部分です。品質は指したモデルとMacのRAMがそのまま決めます

flowchart TD CC[Claude Code / Cursor / OpenCode
OpenAI・Anthropic互換クライアント] -->|"/v1/messages・/v1/chat/completions"| S[omlx サーバー
FastAPI・localhost:8000] S --> EP[EnginePool
複数モデル・LRU退避・TTL・ピン留め] EP --> BE[BatchedEngine
連続バッチング] EP --> VE[VLMEngine / Embedding / Reranker] S --> CACHE[階層KVキャッシュ] CACHE --> HOT[Hot層 RAM
高速アクセス] CACHE --> COLD[Cold層 SSD
再起動をまたいで残る] BE --> MLX[mlx-lm / MLX
Apple Metal]

omlxの中核機能——階層KVキャッシュ・連続バッチング・OpenAI/Anthropic両対応

omlxは「llama.cppに薄いAPIを被せただけ」のツールではありません。本番向けの推論サーバーで見られる機能を、Macに移植しているのが特徴です。公式READMEで挙げられている主要機能を、価値の大きい順に整理します。

1. 階層KVキャッシュ(Hot RAM + Cold SSD)——再起動をまたいで文脈が残る

omlxの目玉機能です。KVキャッシュ(会話の文脈をトークンごとに保持したもの)を、RAMのHot層SSDのCold層の二層で管理します。仕組みはvLLMに着想を得たブロック単位のページドキャッシュで、プレフィックス共有とCopy-on-Write(CoW)に対応します。Hot層が一杯になるとブロックはsafetensors形式でSSDへ退避され、次に同じプレフィックスのリクエストが来たらゼロから再計算せずディスクから復元されます。しかもCold層はサーバーを再起動しても残る——ここがOllamaなどの一般的なローカルサーバーと決定的に違う点です。

oMLXの階層KVキャッシュ。Hot層(RAM)とCold層(SSD)の二層構造で、頻繁に使うブロックはRAMに、あふれたブロックはSSDへ退避し、同じプレフィックスの再訪時に再計算せず復元する
omlxの階層KVキャッシュ(Hot + Cold)。RAMがあふれたブロックはSSDへ書き出され、再起動後も含めて同じプレフィックスの再利用時に復元される。Claude Codeのように「長い前提を繰り返し送る」ツールで効く。出典: jundot/omlx 公式README

この効果は本記事の実測パートで数値として確認できました(後述。2回目の同一プレフィックスで256/359トークンが再利用され、応答が約2.8倍高速化)。Claude Codeは毎ターン、同じCLAUDE.mdやツール定義という長い前提を送り続けるため、この「文脈の再利用」がそのまま体感速度に効きます。

2. 連続バッチング(Continuous Batching)

複数の同時リクエストを、mlx-lmのBatchGeneratorで束ねて処理します。最大同時リクエスト数はCLIや管理画面から設定でき(既定8)、スループットとメモリのトレードオフを調整できます。1人で使う分には効きにくいですが、複数のエージェントやツールから同時に叩く使い方では差が出ます。

3. OpenAI+Anthropic 両API互換——ここが最大の差別化

omlxは「OpenAIとAnthropicのAPIのドロップイン代替」を掲げます。ストリーミングの使用量統計(stream_options.include_usage)、Anthropicの適応的thinking、画像入力(base64・URL)にも対応します。提供エンドポイントは次のとおりです。

エンドポイント 説明 主なクライアント
POST /v1/chat/completions チャット補完(ストリーミング可) OpenAI SDK・Cursor・OpenCode 等
POST /v1/completions テキスト補完(ストリーミング可) OpenAI互換の旧クライアント
POST /v1/messages Anthropic Messages API Claude Code・Anthropic SDK
POST /v1/embeddings 埋め込み生成 RAG・検索
POST /v1/rerank ドキュメント再ランク RAG・検索
GET /v1/models モデル一覧 全クライアント共通
なぜ「Anthropic互換」が効くのか:Claude Codeは内部でAnthropicのMessages API(/v1/messages)を叩きます。OllamaやLM StudioはOpenAI互換の/v1/chat/completionsしか持たないため、Claude Codeの接続先には(そのままでは)なれません。omlxは/v1/messagesをローカルで提供するので、Claude CodeのANTHROPIC_BASE_URLを向けるだけで繋がります。これがomlxの最も分かりやすい存在意義です。

4. マルチモデル配信とメモリガード

1つのサーバーに、LLM・VLM・埋め込み・リランカーを混在させて載せられます。管理は自動と手動の合わせ技です。

LRU退避——メモリが逼迫すると、最も使われていないモデルを自動で降ろす
手動ロード/アンロード——管理画面のバッジからオンデマンドで載せ替える
モデルのピン留め——よく使うモデルを常駐させる
モデル別TTL——一定時間使われないモデルを自動で降ろす
プロセスメモリ強制(Memory Enforcer)——総メモリ上限(既定はシステムRAM−8GB)を設け、システム全体のOOM(メモリ枯渇)を防ぐ

実測でも、起動時に「メモリガード階層=balanced、上限6.5GB」で立ち上がり、Claude Codeの大きなコンテキストを処理する際には「適応プレフィルスロットリング」でメモリを見ながら流量を絞る挙動がログに出ました。Macの限られたユニファイドメモリを、OOMさせずに配分する設計思想が随所にあります。

5. Claude Code最適化・ツール呼び出し・その他

READMEには明確に「Claude Code Optimization」という項目があります。中身は「小さいコンテキストのモデルをClaude Codeで動かすためのコンテキストスケーリング(auto-compactが適切なタイミングで発火するようトークン数の報告を調整)」と「長いプレフィル中の読み取りタイムアウトを防ぐSSEキープアライブ」。ツール呼び出しはmlx-lmが対応する各種フォーマット(Llama/Qwen/DeepSeekのJSON、GLMのXML、Mistralの[TOOL_CALLS]等)を自動判定し、JSONスキーマ検証やMCP連携にも対応します。加えて、HuggingFaceからのモデル検索・ダウンロード、ワンクリックのベンチマーク、OpenClaw/OpenCode/Codex/Copilot/Piなどとのワンクリック連携も管理画面から行えます。

【実測】M2 Mac(macOS 14.5)でomlxを起動し、両エンドポイントを叩いた

ここが本記事の中心です。「Claude Codeのローカルバックエンドになる」と書くのは簡単ですが、実際にどこまで動くのか。手元のM2 MacBook Air(macOS 14.5)で、omlxをソースから入れて起動し、OpenAI互換・Anthropic互換の両エンドポイントを実際に叩いて確かめました

検証環境(2026-07-19時点)
・ハード:Apple M2(MacBook Air)/ユニファイドメモリ
・OS:macOS 14.5(Sonoma)※READMEのアプリ版要件は15.0以上だが、ソース版CLIサーバーは14.5でも起動できた
・omlx:v0.5.2.dev1(git clonepip install -e .でソースから導入・Python 3.12)
・モデル:mlx-community/Llama-3.2-1B-Instruct-4bit(0.68GB・動作確認用の小型モデル)
・カスタムカーネル:未ビルド(フルXcode無し。汎用パスで動作)

まず、macOS 14.5でも「ソース版サーバー」は動いた

最初の学びはインストール段階でした。omlxの配布は3通り——①.dmgのmacOSアプリ、②Homebrewの独自タップ、③ソースからpip install——ですが、①のアプリ版はmacOS 15.0(Sequoia)以上が必須です。検証機は14.5なので、アプリ版は入りません。しかし③のソース版CLIサーバーは、要件表記より古い14.5でも問題なく起動しました。MLX自体はmacOS 13.5世代から動くため、Metal依存のメニューバーアプリ(Swift/SwiftUI)とは要件が別、というのが実態です。

# ソースから導入(PyPIには無いのでcloneしてeditable install)
git clone https://github.com/jundot/omlx.git && cd omlx
python3.12 -m venv .venv && . .venv/bin/activate
pip install -e .            # mlx / mlx-lm / fastapi 等を取得

omlx --version              # → 0.5.2.dev1
「アプリ版」と「サーバー本体」でmacOS要件が違う
.dmg アプリ版(メニューバー常駐・自動更新・カスタムカーネル同梱)=macOS 15.0以上が必須
ソース版CLIサーバーomlx serve)=MLXが動く環境なら14.5でも起動(本記事で確認)
・GLM-5.2等のネイティブカスタムカーネルのビルドは、フルXcode(Metalツールチェイン)が必要。Command Line Toolsだけだと汎用パスに落ち、その分遅くなる
「Macが古くてアプリ版が入らない」場合でも、サーバー本体は試せる可能性がある——この切り分けは公式READMEにも明記されていない実践知です。

起動して、OpenAI互換エンドポイントを叩く

モデルを1つ用意し、omlx serve --model-dir <ディレクトリ> で起動します。サーバーは--model-dir直下のサブディレクトリからモデルを自動検出します。起動後、GET /v1/modelsで載っているモデルを確認できます。

# 小型モデルを用意してサーバー起動(既定ポート8000)
omlx serve --model-dir ~/models --port 8000

# OpenAI互換:モデル一覧
curl -s http://127.0.0.1:8000/v1/models
# → {"object":"list","data":[{"id":"Llama-3.2-1B-Instruct-4bit","max_model_len":131072,...}]}

続いてOpenAI互換の/v1/chat/completionsを叩きます。返ってきたJSONはそのままOpenAIの形で、usageにはprompt_tokenscompletion_tokensに加え、model_load_durationtotal_timeまで含まれていました。実測ではプロンプト47トークン・生成41トークンで、約18.7 tok/s(1Bモデルの汎用パス)。

実測の注意:今回のモデルは動作確認用の1B(10億パラメータ)です。試しに「Apple Siliconとは何か1文で」と聞くと、返答は「AMDのRadeon GPUのシリーズ」という明確な誤答でした。これはomlxの問題ではなく、小型モデルの品質そのものです。omlxは「サーバーの器」であり、賢さは指したモデルが持ち込む——Nanocoderの実測でも確認した「動く≠賢い」がここでも当てはまります。配管の検証には十分ですが、品質検証には大型モデルが要ります。

本命:Anthropic互換の /v1/messages を叩く

omlxの存在意義そのものである、Anthropic Messages API(/v1/messagesを叩きます。Ollama・LM Studioには無いエンドポイントです。

curl -s http://127.0.0.1:8000/v1/messages \
  -H "content-type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{"model":"Llama-3.2-1B-Instruct-4bit","max_tokens":60,
       "messages":[{"role":"user","content":"Say hello in three words."}]}'

返ってきたのは、紛れもなくAnthropicの形でした——"type":"message""content":[{"type":"text","text":"..."}]"stop_reason":"end_turn"、そしてusageinput_tokensoutput_tokenscache_creation_input_tokenscache_read_input_tokensOpenAIのchoices[].message形式ではなく、Anthropic固有のフィールド構造で応答が返ることを確認できました。これが「Claude Codeがそのまま繋がる」ことの技術的な裏付けです。

階層KVキャッシュは、本当に効いた(約2.8倍)

omlxの目玉、階層KVキャッシュの効果を数値で測りました。同じ長いシステムプロンプト(359トークン)を2回連続で投げusage.prompt_tokens_details.cached_tokensと応答時間を比較します。

omlxの階層KVキャッシュ実測結果。1回目(コールド)は359トークンをフル計算しtotal_time 1.19秒、2回目(ウォーム)は256トークンがキャッシュ再利用されtotal_time 0.42秒で約2.8倍高速化
階層KVキャッシュの実測。同じプレフィックスの2回目は256/359トークンがキャッシュから復元され、応答時間が1.19秒→0.42秒(約2.8倍)に短縮した。Claude Codeのように長い前提を繰り返し送るツールで、この差はターンごとに積み上がる。

1回目(コールド)cached_tokens=0total_time=1.19秒——359トークンをフルに計算
2回目(ウォーム・同一プレフィックス)cached_tokens=256total_time=0.42秒——256/359トークンをキャッシュから再利用し、約2.8倍高速

わずか359トークンでこの差です。Claude CodeのCLAUDE.mdやツール定義のように毎ターン数千〜数万トークンの同じ前提を送る使い方では、この再利用がそのまま体感の速さになります。なお、ここで実測したのは同一セッション内での再利用です。SSD(Cold)層がサーバー再起動をまたいで残るかどうかは今回は測っていませんが、公式READMEは「再起動後も含めて」復元されると説明しており、朝イチで立ち上げ直しても前日の文脈が効く設計とされています(この点は一次情報ベース)。

Claude Codeを実際に繋いでみた——「配管は通る、品質はモデル次第」

最後に、Claude Code本体のバックエンドをomlxに差し替えて接続を試しました。Claude Codeは接続先を環境変数で切り替えられます。

# Claude Code の接続先をローカルの omlx へ向ける
ANTHROPIC_BASE_URL="http://127.0.0.1:8000" \
ANTHROPIC_API_KEY="sk-omlx-local" \
ANTHROPIC_MODEL="Llama-3.2-1B-Instruct-4bit" \
claude -p "Reply with exactly: connected"

結果、Claude Codeはomlxへ接続し、リクエストは/v1/messagesに届きました。omlx側のログでは、Claude Codeの巨大なシステムプロンプト(ツール定義を含む)を処理するために「適応プレフィルスロットリング」と「プレフィルLRU退避」が発火する様子まで観測できました。つまり配管(接続経路)は完全に通ります

ただし——返ってきた出力は、Claude Codeのツール説明文の断片を反芻するような低品質なものでした。これは当然で、動作確認用の1Bモデルにはツール駆動のコーディングエージェントを回す力が無いからです。「繋がること」と「実用品質で動くこと」は別の話。omlxをClaude Codeの実用バックエンドにするなら、ツール対応の中〜大型モデル(相応のユニファイドメモリが必要)を指す必要があります。

実測の結論:omlxはM2 Mac・macOS 14.5でも起動し、OpenAI互換とAnthropic互換の両エンドポイントが実際に応答した。階層KVキャッシュも約2.8倍の高速化として効き、Claude Codeとの接続も通った。これらは誇張なしの事実。一方で出力品質は指したモデルが決める——1Bでは実用にならず、Claude Codeの相棒にするには大型モデルとRAMが要る。omlxの価値は「賢さ」ではなく「Macローカルで両API互換のサーバーを、キャッシュ最適化つきで持てること」にある。

Ollama / LM Studio / MLX / llama.cpp との違い——何が本当に固有の価値か

「結局、Ollamaでいいのでは?」に正面から答えます。当サイトにはOllama・LM Studio・MLX関連の解説が多数あり、omlxを紹介する以上、何がomlx固有で、何がそうでないかを正直に線引きするのが筋です。まず大前提として、ローカルでLLMを動かすこと自体はomlxの専売特許ではありません。Ollamaでもできます。差が出るのは「対応API」「対象プラットフォーム」「キャッシュ戦略」の3点です。

観点 omlx Ollama LM Studio MLX(素) llama.cpp
位置づけ 推論サーバー(Mac特化) 推論サーバー+CLI GUIアプリ+サーバー 推論フレームワーク 推論エンジン
対象OS Apple Silicon専用 Mac / Win / Linux Mac / Win / Linux Apple Silicon ほぼ全OS
バックエンド MLX / Metal llama.cpp(GGUF) llama.cpp等(GGUF) MLX / Metal 自前(GGUF)
OpenAI API互換 ×(自前実装が要る) ○(server)
Anthropic API互換 ○(/v1/messages) × × × ×
Claude Codeのバックエンド ○(そのまま) △(変換層が要る) ×
階層KVキャッシュ(SSD/再起動耐性) ○(Hot+Cold) △(限定的) ×
VLM/OCR/埋め込み/リランカー ○(1サーバーに混載) 一部 一部 ×(別実装) 一部
ライセンス Apache-2.0 MIT 商用(クローズド) MIT MIT
成熟度 pre-1.0(v0.5.1) 安定・巨大コミュニティ 安定 安定(Apple) 安定・巨大

この表から読み取るべきは、次の3点です。

Anthropic API互換=omlxのほぼ唯一無二の武器。Ollama・LM Studioは長らくOpenAI互換のみで、Claude Codeの接続先には変換プロキシを噛ませないとなれない。omlxは/v1/messagesを素で持つため、Claude CodeやAnthropic SDKがそのまま繋がる
Apple Siliconへの特化は諸刃の剣。MLX/Metalに最適化する代わりに、WindowsやLinuxでは一切動かない。Macユーザーには利点、そうでなければ選択肢に入らない
成熟度ではOllama・llama.cppに大きく劣る。omlxはpre-1.0の若いプロジェクトで、巨大コミュニティが支えるOllamaやllama.cppとは安定性・実績の厚みが違う。ここは正直に受け止めるべき点

なお、ローカルLLMを始めるとき「自分のMacで結局どのモデルが快適に動くのか」を先に知りたいなら、llmfit完全ガイド:今のPCで動くローカルLLMを1コマンドで判定するツールが役立ちます。omlxで配信するモデルを選ぶ前工程として噛み合います。より大きなモデルを非力なマシンで動かす別アプローチとしてはDistributed Llama:家庭用デバイスを繋ぐだけでLLMローカル実行を高速化する分散フレームワーク、CPUだけで巨大モデルを動かす量子化の極北としてはBitNet|Microsoftの1ビットLLM量子化フレームワーク — CPUだけで100Bモデルが動く仕組みも、あわせて選択肢を広げる読み物になります。

使えるかどうかの判定材料——ライセンス・活性度・バス係数・pre-1.0

採用判断に必要な事実を、誇張せずに並べます。数字はGitHub APIと公式リポジトリで実測しました(2026-07-19時点)。

omlxの採用判断サマリ。Apache-2.0・スター17,900超・162コントリビュータだが作者に集中・v0.5.1のpre-1.0・オープンissue700件超・Apple Silicon専用
採用判断のための実測サマリ(2026-07-19時点)。強みと弱みを同じ重さで並べる。魅力は「両API互換+Macローカル+活発な開発」、弱みは「pre-1.0・作者への一点集中・Apple Silicon限定」。
判定軸 実測値(2026-07-19時点) 評価
ライセンス Apache-2.0 商用利用・再配布可。特許条項つきで企業でも扱いやすい
GitHubスター 17,935 ローカル推論サーバーとして非常に高い注目度
公開時期 2026-02-13(約5か月前) 若いが急成長中
最終更新 2026-07-17 ほぼ毎日更新される高い活性度
リリース数 約98本(最新 v0.5.1 頻繁にリリース。ただしpre-1.0
コントリビュータ 162名(GitHub API) 数は多いがコミットは作者に集中
バス係数 低い(作者jundot=1,321コミット、2位=85) 実質的な牽引役はほぼ1人
オープンissue 717件 活発さの裏返しだが未対応も多い
対応プラットフォーム Apple Silicon専用・macOS(アプリ版15.0+) Mac以外では動かない

強み:注目度・活性度・両API互換

omlxの魅力は明快です。Apache-2.0で無料スター17,900超という高い注目度、そしてほぼ毎日更新される活性度。何より、Ollama・LM Studioに無いAnthropic API互換を持ち、Claude Codeのローカルバックエンドという明確な使いどころがあります。Macで「コードを外に出さずにAIコーディングの一部を回したい」個人開発者には、現時点で最も素直に刺さる推論サーバーの1つです。

弱み:pre-1.0・作者への一点集中・Apple Silicon限定

一方で、誇張されがちな点を正直に書きます。第一に、pre-1.0(v0.5.1)である点。APIや設定が今後変わる可能性を織り込む必要があります。第二に、バス係数が低いこと。コントリビュータは162名と多く見えますが、コミット数の内訳は作者jundot(1,321コミット)に圧倒的に集中し、2位は85コミット——15倍以上の差です。「162名が均等に支える」わけではなく、実質的な牽引役はほぼ1人です。これは若く勢いのあるOSSに共通する構造で悪いことではありませんが、「バス係数が高い(=個人依存が小さい)」と誤解しないことが大切です。第三に、Apple Silicon専用。Mac以外では検討にすら入りません。オープンissueも700件超あります。

採用の線引き:omlxは「Macローカルで・両API互換の推論サーバーを・キャッシュ最適化つきで持ちたい個人/小規模」に強く向く。一方、SLA・長期保証・クロスプラットフォーム・枯れた安定性が要件なら、現時点ではOllamaやllama.cppなどの成熟プロジェクト、あるいはクラウドAPIの方が無難。pre-1.0と作者一点集中という現実を理解した上で、「Macでの一点突破」という強みを取りにいくかどうかで判断する。

導入手順——コピペで動かす

実際に動かす手順です。前提はApple SiliconのMac。用途に応じて3つの入れ方があります。

1. いちばん簡単:Homebrew(独自タップ)

日常利用ならHomebrewが手軽です。omlxはHomebrew本体には無く、作者の独自タップから入れます。

# 独自タップを追加してインストール
brew tap jundot/omlx https://github.com/jundot/omlx
brew install omlx

# バックグラウンドサービスとして起動(クラッシュ時に自動再起動)
omlx start

管理はomlx start / omlx stop / omlx restart(Homebrew版は内部でbrew servicesに委譲)。既定は~/.omlx/models・ポート8000で立ち上がります。GLM-5.2等のネイティブカスタムカーネルを使う場合のみbrew install omlx --HEAD --with-custom-kernel(フルXcodeが必要)です。

2. GUI重視:macOSアプリ(.dmg)

メニューバーから常駐管理したい・自動更新が欲しいなら、Releasesから.dmgをダウンロードし、アプリケーションにドラッグするだけです(macOS 15.0以上が必須)。アプリはカスタムカーネルを同梱し、軽量なCLIシム(~/.omlx/bin/omlx)も入れてくれます。

3. 検証・開発向け:ソースから

本記事の検証で使った、最も環境を汚さない入れ方です(PyPIには無いのでcloneします)。

git clone https://github.com/jundot/omlx.git && cd omlx
python3.12 -m venv .venv && . .venv/bin/activate
pip install -e .                 # コアのみ
# pip install -e ".[mcp]"        # MCP対応込み

# モデルを置いて起動
omlx serve --model-dir ~/models --port 8000

4. Claude Codeのバックエンドにする

サーバーを起動したら、Claude Codeの接続先をomlxへ向けます。環境変数で切り替えるだけで、グローバル設定を汚しません。

ANTHROPIC_BASE_URL="http://127.0.0.1:8000" \
ANTHROPIC_API_KEY="sk-omlx-local" \
ANTHROPIC_MODEL="<載せたモデルID>" \
claude -p "hello"
実用のコツ:Claude Codeを実用品質で回すなら、ツール(関数呼び出し)対応の中〜大型モデルを指すこと。1Bのような小型では接続は通っても実用になりません。管理画面(/admin)のモデルダウンローダからHuggingFaceのMLXモデルを検索・取得でき、--memory-guard--hot-cache-max-sizeでMacのメモリに合わせた調整ができます。長いプレフィルでの読み取りタイムアウトが気になるなら--sse-keepalive-modeも確認してください。

まとめ——「Macで両API互換のローカルサーバーを持つ」という一点

omlxは、Apple Silicon専用の、OpenAI+Anthropic両API互換のローカルLLM推論サーバーです。最大の存在意義は、Ollama・LM Studioに無いAnthropic Messages API(/v1/messagesを素で提供し、Claude Codeのローカルバックエンドにそのまま使える点にあります。本記事ではM2 Mac(macOS 14.5)で実際に起動し、OpenAI互換・Anthropic互換の両エンドポイントが応答すること、階層KVキャッシュが約2.8倍の高速化として効くこと、Claude Codeとの接続が通ることを、いずれも実測で確認しました。

同時に、生成品質はomlxではなく指したモデルとMacのRAMが決めます。動作確認用の1Bモデルでは接続は通っても実用にはならず、Claude Codeの相棒として使うにはツール対応の大型モデルと相応のユニファイドメモリが必要です。ここを取り違えて「omlxを入れれば非力なMacで賢くなる」と期待すると、がっかりします。正しい見方は、omlxは「Macローカルで両API互換のサーバーを、キャッシュ最適化つきで持つための器」であり、賢さは別途モデルで用意するもの、というものです。

結論:Macで・コードを外に出さず・Claude CodeやOpenAI互換ツールのバックエンドをローカルに持ちたいなら、omlxは現時点で最も的を射た選択肢の1つ。階層KVキャッシュと両API互換という設計は、この用途に真っ直ぐ効く。ただしpre-1.0・作者一点集中・Apple Silicon限定という現実を理解した上で、「Macでの一点突破」を取りにいくツールだと割り切るのが正しい。

omlxが向く人・向かない人

向く人:Apple SiliconのMacを持ち、コードやプロンプトを外部へ出したくない開発者。Claude CodeやCursor・OpenCodeのバックエンドをローカルに置きたい人。複数モデル(LLM+VLM+埋め込み)を1サーバーで回したい人。長い前提を繰り返し送る使い方で、KVキャッシュの再利用を効かせたい人
慎重に検討すべき人:Windows/Linuxが主戦場の人(動かない)、SLA・長期保証・枯れた安定性が必須の本番運用、非力なMacでクラウド級の品質を常に求める用途。この場合は成熟したOllama・llama.cpp、あるいはクラウドAPIの併用が現実的

いずれにせよ、omlxは「賢さを買う」ツールではなく「Macローカルに、両API互換の推論基盤を据える」ツールです。その前提さえ押さえれば、期待と現実のズレは起きません。

参照ソース

jundot/omlx(公式リポジトリ・README) — 設計思想・機能・API互換・インストールの一次情報
oMLX 公式サイト(omlx.ai) — プロダクト概要とベンチマーク
oMLX Benchmarks(omlx.ai/benchmarks) — 公式のPP/TG性能計測
mlx-lm(Apple ml-explore) — omlxが土台とするMLX言語モデル推論ライブラリ
LICENSE(Apache-2.0 本文) — ライセンス条文