ラベル vs-code の投稿を表示しています。 すべての投稿を表示
ラベル vs-code の投稿を表示しています。 すべての投稿を表示

2026年4月18日土曜日

Roo Code + LM Studio 最強ローカルAI開発環境

 AIによるコード生成が当たり前になった今、エンジニアが次に求めるのは「自分のコードベースをすべて把握した上での提案」です。VS Code拡張の Roo Code(旧Cline) は、プロジェクト全体をスキャンして記憶する「セマンティック検索(RAG)」機能を備えています。

今回は、プライバシーとパフォーマンスを両立させるため、M4 Max Mac Studioのパワーをフル活用し、「すべてをローカル完結させる」 環境構築の全記録をまとめました。

今回の構成とポイント

巷の解説記事はDockerを使うものが多いですが、今回はインフラエンジニアらしく、Macネイティブバイナリlaunchdを駆使して「軽量・常駐・爆速」を目指します。

  • 脳 (LLM): LM Studio (qwen2.5-coder:32b)

  • 翻訳機 (Embedding): LM Studio (nomic-embed-text-v2-moe)

  • 本棚 (Vector DB)Qdrant (Macバイナリ版)

  • 常駐化: macOS launchd


1. 意外な落とし穴:VS Codeのプロキシ設定

構築を始める前に、一番ハマりやすいポイントを潰しておきます。VS Codeはシステムのプロキシ設定を拾ってしまい、127.0.0.1 への通信すら外へ投げようとすることがあります。

settings.json に以下を追記し、VS Codeを完全に再起動(Cmd+Q)しておきましょう。

JSON
"http.proxySupport": "off"

2. Qdrantの導入と常駐化(Docker不要)

Roo Codeが「コードの記憶」を保存するには、ベクトルデータベースの Qdrant が必須です。Dockerを使わずに導入する手順は以下の通り。

バイナリの設置

Bash
# 作業ディレクトリの作成
mkdir ~/qdrant && cd ~/qdrant

# Apple Silicon(aarch64)用バイナリのダウンロード
curl -L https://github.com/qdrant/qdrant/releases/latest/download/qdrant-aarch64-apple-darwin.tar.gz -o qdrant.tar.gz

# 解凍と実行権限の付与
tar -xvf qdrant.tar.gz
chmod +x qdrant

launchdによる自動起動設定

毎回手動で起動するのはスマートではありません。Macの起動時にバックグラウンドで動き、プロセスが落ちても自動復旧するように設定します。

Bash
cat << EOF > ~/Library/LaunchAgents/io.qdrant.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>io.qdrant</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/$(whoami)/qdrant/qdrant</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>WorkingDirectory</key>
    <string>/Users/$(whoami)/qdrant</string>
    <key>StandardOutPath</key>
    <string>/Users/$(whoami)/qdrant/qdrant.log</string>
    <key>StandardErrorPath</key>
    <string>/Users/$(whoami)/qdrant/qdrant-error.log</string>
</dict>
</plist>
EOF

# サービスの登録と開始
launchctl load ~/Library/LaunchAgents/io.qdrant.plist

ヘルスチェック

Bash
ps aux | grep qdrant
lsof -i :6333  # 6333ポートがLISTENしていればOK

3. LM Studio側の準備

対話用のモデルだけでなく、Embedding用のモデルもロードしておきます。

  • Local Server 画面で Start Server を実行。

  • ポート番号(デフォルト 1234)を確認。

  • 重要: 設定パネルの CORS (Cross-Origin Resource Sharing) を ON にします。これがOFFだとVS Codeからのアクセスが拒絶されます。


4. Roo Codeの設定(統合)

VS CodeのRoo Code設定画面(インデックス作成)で以下を入力します。

  • エンベッダープロバイダーOpenAI互換

  • ベースURLhttp://127.0.0.1:1234/v1 (末尾の /v1 を忘れずに)

  • モデルtext-embedding-nomic-embed-text-v2-moe

  • モデルディメンション768

  • Qdrant URLhttp://127.0.0.1:6333


5. 運用とリソース

M4 Max Mac Studio(36GB RAM)環境において、この構成でのリソース消費は驚くほど低いです。

  • 待機時CPU: ほぼ 0%。

  • メモリ: Qdrant単体では数百MB程度。

  • インデックス作成時: ログ(tail -f ~/qdrant/qdrant.log)が流れる瞬間だけCPUを使いますが、バックグラウンドでの作業を妨げることはありません。

まとめ

1992年からUnixを触り、インフラを見続けてきた人間にとっても、手元のマシンでこれほど高度な検索・推論基盤が完結するのは感慨深いものがあります。

一度デーモン化してしまえば、あとはAIがあなたの過去のコード資産をすべて把握した状態で、最高の相棒として機能してくれます。Dockerを使わずに構築したいMacユーザーの方は、ぜひ試してみてください。




2023年8月20日日曜日

conflicts(github)の対処方法 for vs-code

git上で、conflicts が発生した場合
vs codeにて、対処する場合、以下の赤枠から選択して処理を行う 











オプション内容
Accept Current ChangeCurrent Changeの内容を残す
(Incomming Changeや余計な記号は消す)
Accept Incoming ChangeIncomming Changeの内容を残す
(Current Changeや余計な記号は消す)
Accept Both Change両方の内容を残す
(余計な記号は消す)
Compare Changes左右のウィンドウで変更点を比較する

2023年7月26日水曜日

VS Codeのターミナル上でGitブランチ名を表示させる方法

1).bashrcの末端に追記を行う
vi ~/.bashrc


2)以下を追記する
-----追記内容------
# For Bash
export PS1="\u@\h \W \[\e[32m\]git-branch->$(git branch 2>/dev/null | grep '^*' | colrm 1 2)\[\e[00m\] $"

2021年11月12日金曜日

VS Code(snipets)

スニペット作成サイト
https://migi.me/vsc_snippet/


手順:

1)基本設定  >  ユーザースニペット















2)スニペット名を記載する









3)以下の枠内に、json形式で記載を行う

(例では、”prefix”: initContainersの題名で記載を行なった)













































4)作成後、キーボードで  “  i “と入力すると予測機能で先ほど作成した

スニペットが表示されるので、選択を行うだけ。



2021年10月27日水曜日

選択行を一括で移動 for Visual Studio Code

1)対象の範囲を選択

2)Command  +  {  or  }  で選択範囲を移動できる。






















以下のように、選択範囲をまとめて、移動することが出来た。



VS Code for Plugin (k8s)

 snippetsというプラグインを利用することで、
パーツごとの雛形が作成されるので、相当便利だと思う。
(他のソースコード関連もsnippetsは用意されている)

以下のsnippets系はお勧め。

(重複しているものもあるので一部不要になるかもしれない。)




































使い方:

例えば、podを作成したい場合、以下のように”pod”と記載していると

候補の雛形が出てくるので、あとは、選択するだけ。









選択すると、以下のような雛形を作成されるので

必要な箇所のみ修正すれば、完成になる。

(何処からかコピペしたのを再利用するより、入力ミス防止になるので良いのではと考えている。)



ローカルLLMでコーディングさせるポイント

 簡単な指示で、依頼するとコンテキストオーバーで記憶喪失になって コードの内容が一致しないことが起こるので、work.mdみたいな作業メモを取らせたるのがよい 途中から、別スレッドに再実施する場合でも、work.mdが引き継ぎとして 参照して実施してくれるのがポイント