メインコンテンツへスキップ

LM Studioとの接続

LM Studioとの接続

Xcodeと「LM Studio」を接続して、XcodeのChatエンジンとして「LM Studio」のローカルLLMを使用する方法です。

Xcode関係の動作環境
LM Studio バージョン0.4.11+1 (0.4.11+1)


MacBookPro 14 inch CPU: Apple Silicon M1 Max

RAM: 32 GB

SSD: 1 TB

macOS: Tahoe 26.4

Xcode: 26.4


MacBookPro 16 inch CPU: Apple Silicon M2 Max

RAM: 96 GB

SSD: 8 TB

macOS: Tahoe 26.4

Xcode: 26.4
LM Studioの設定

まず、「LM Studio」のローカルサーバー機能を有効にします。

Developer画面を開きます。

スクリーンショット 2026-04-15 5.17.32.png

Status: Stoppedとなっているのをチェックを有効にします。
Status: Runnug状態になります。

スクリーンショット 2026-04-15 5.17.52.png

Statusの画面で接続URLなどを確認します。今回はデフォルトの「http://127.0.0.1:1234」です。

スクリーンショット 2026-04-15 5.54.42.png

Xcodeの設定

次にXcodeでプロジェクトを開きます。Xcodeで「LM Studio」のローカルLLMに接続したときに直ぐにテストするためです。

スクリーンショット 2026-04-15 5.18.26.png

Xcodeの設定画面の「Intellgence」を開きます。

スクリーンショット 2026-04-15 5.18.52.png

Chat 項目で「Add a Chat Provider...」をクリックし、次の様な登録画面を開きます。

スクリーンショット 2026-04-15 5.19.06.png

設定を「LM Studion」のサーバー状態と同じ様に入力します。

Port: 1234 (初期値のまま)
Description: Local LM Studio Server (分かり易い名称)

スクリーンショット 2026-04-15 5.20.00.png

「Add」ボタンを押して登録します。新しいChatが登録出来ました。

スクリーンショット 2026-04-15 5.20.27.png

この状態で登録した「Local LM Studio Server」をクリックして、状態を確認すると次の様になっています。Modelsには「LM Studio」に登録してるモデルの一覧です。

スクリーンショット 2026-04-15 5.27.07.png

Xcodeのプロジェクト操作

XcodeのプロジェクトからChatメニューを選択して使用したいモデル を選択します。今回は「LM Studio」のLocal LM Studio Serverを選択しモデルを選択します。今回は「openal/gpt-oss-120b」という大きな物を選択してみました。

スクリーンショット 2026-04-15 5.20.50.png

スクリーンショット 2026-04-15 5.21.11.png

モデルを選択するとロードが必要な場合にはロードを始めます。この状態は「LM Studio」のDeveloper画面から確認出来ます。

次にチャットに何か入力してレスポンスをみましょう。ここでは「今、ソースコードは読めますか?」と入力しました。

スクリーンショット 2026-04-15 5.21.59.png

次に「このプログラムは何をする物ですか?」と入力しました。

スクリーンショット 2026-04-15 5.23.15.png

<<< 略 >>>

スクリーンショット 2026-04-15 5.23.23.png

これで、ローカルLLMとして「LM Studio」が使用できるようになりました。

「LM Studio」のDeveloper画面ではモデルの動作などが確認出来ます。

スクリーンショット 2026-04-15 5.22.45.png

LM Linkとの関係

「LM Studio」の持つLM Linkが有効になっていると共有されている「LM Studio」のモデルも使用できるようになります。

ローカルと共有されているモデル名が同一ならどうも「ローカル」を優先的に使用する様です。また、ローカルなのか? 共有なのか? を判断する事はXcodeのチャットでは無理なようです。「LM Studio」側の問題かもしれません。