世界を動かす技術を、日本語で。

すべてをローカルに – オフラインAIワークスペースの構築

概要

  • クラウドやリモート実行を一切使わず、すべてローカルで完結するAIアシスタント環境の構築体験
  • ローカルLLM、コンテナ型コード実行、ヘッドレスブラウザによる自動化を組み合わせた実装事例
  • Apple Silicon上での動作、Ollama・assistant-ui・Apple container・Playwright等の活用
  • プライバシー重視の設計思想と現状の課題、今後の展望
  • Githubリソースや利用方法への案内

すべてローカルで完結するAIアシスタント構築体験

  • クラウド非依存・完全ローカル動作 のAIアシスタント環境構築
  • 主流LLMチャットアプリ(ChatGPTやClaude等) が提供する機能のローカル実現
    • チャット用LLMの利用
    • コードの自動生成と実行
    • インターネット経由での情報取得
  • プライバシー重視 のため、データを外部クラウドに渡さず処理
  • LLMによる計画立案からコード実行まで、すべてローカル内で完結
  • 画像・動画編集など、個人情報を含む作業も安全に実施可能

技術スタックと構成

  • LLM:Ollama (ローカルモデル、プライベートモデル対応)
  • フロントエンドUI:assistant-ui
  • サンドボックス型VMランタイム:Apple container
  • オーケストレーション:coderunner
  • ブラウザ自動化:Playwright
    • Apple Silicon上での動作確認
    • containerによる完全なコード実行隔離

Macアプリ化の試行錯誤

  • a0.devによるMacアプリ生成 を試みるも、iOS向けが主用途で断念
  • NextJS+Electronによるラッピング も困難で断念
  • 結果として、 ローカルWeb版assistant-ui を採用
    • シンプルで設定しやすく、実用上問題なし

assistant-uiのカスタマイズ

  • 複数LLM切り替え機能 を実装(ai-sdkを利用)
  • 初期はローカルモデル中心だが、将来的には高性能なローカルモデルへの移行を想定
  • tool-calling対応モデル の必要性
    • Ollamaは一部モデルでtool-calling未対応
    • モデルごとの対応状況や価格情報が流動的

コンテナ型コード実行環境の構築

  • Apple container を利用し、1コンテナ=1VMで完全隔離環境を実現
  • Jupyter serverをVM内で起動し、MCP(Model Context Protocol)ツールとして公開
    • 例:Claude DesktopやGemini CLIからMCP経由でコード実行可能
    • MCP対応ツールとの親和性
  • coderunnerのコードは 公開済み・再利用可能

Apple containerの課題

  • VMイメージビルド時の不安定さ(Trap errorやハング)
    • containerプロセスのkill、buildkitイメージの削除、再ビルドを繰り返す必要
    • 安定化には今後の成熟に期待

ヘッドレスブラウザの導入

  • Playwrightをcontainer内で起動し、MCPツールとして公開
  • オンライン情報収集やツールの自動インストール 等の自動化処理が可能
  • 研究用途や最新情報取得の基盤として活用

実現できること(例)

  • テーマに関する リサーチ自動化
  • CSVから グラフ生成・レンダリング
  • ffmpegによる動画編集 (例:「0:10~1:00をカット」)
  • 画像編集(リサイズ・トリミング・フォーマット変換)
  • GitHubから ツールの自動インストール (container内で安全に実行)
  • ヘッドレスブラウザでページ取得・要約

ボリューム・隔離設計

  • ホスト(~/.coderunner/assets)とcontainer(/app/uploads)でボリューム共有
    • 編集・生成ファイルは安全な共有領域で管理
    • 実行コードはホストOSに一切影響なし

現状の制約と今後

  • Apple Silicon専用 (macOS 26は任意)
  • ツール管理・出力ストリーミング用UIの改善 が必要
  • ヘッドレスブラウザは一部サイトで bot判定されやすい

最後に

  • クラウド依存ゼロ・プライバシー重視 という新しいコンピューティング思想の体現
  • 巨大企業のLLMが最先端を走る一方、 日常作業はローカルツールで十分可能
  • 実際に構築・公開済み (coderunner-uiをGithubで配布中)
  • フィードバック・課題報告・コントリビューション歓迎

参考リソース

  • assistant-ui
  • instavm/coderunner
  • Apple/container
  • instavm/coderunner-ui

Hackerたちの意見

これについては結構考えることがあって、この文章に感謝してる。今のプライバシーを確保するのって、本当に大変だよね。

この文章にはそのような内容は全くなく、その目的に対しても役に立たないね。

現在の制約はソフトウェアよりもハードウェアの方が大きいんじゃないかな? 良いLLMをローカルで動かすためのハードウェアは大体2000ドルから始まるし(例えばStrix HaloやAI Max 395)、いくつかのStrix Haloのバージョンが出れば、かなり楽になると思う。

これ、どんどん良くなってるよね。https://simonwillison.net/2025/Jul/29/space-invaders/

良いLLMをローカルで動かすためのハードウェアは大体2000ドルから始まるし(例えばStrix HaloやAI Max 395)、いくつかのStrix Haloのバージョンが出れば、かなり楽になると思う。「良い」っていうのもまだ疑問だけどね。この手のものが便利になるのは、魔法みたいに瞬時に動くときだよね。もし劣った結果で遅い速度でいじってると、ほとんど価値がなくなっちゃう。ローカルモデルはかなり進化したけど、コーディングに関してはClaudeレベルにはまだ遠い。最近、最新のQwenとGLMモデルをOpenRouterでClineを使って試してみたけど、Claude 3.0と大体同じくらいの感じだった。ベンチマークは一つの指標だけど、実際は全然違う話だよね。

この体験の理想主義に常に惹かれるけど、アクセスできるモデルのパフォーマンスや、クラウドでオンデマンドに動かすコストを考えると、結局は楽しい趣味に過ぎないんだよね。ハードウェアが急速に進化し続ける中で、中古で手に入れたものもそのペースで価値が下がるから、ハードウェアに本気で投資するのは無理がある。ローカル環境で動かす重みのパフォーマンスが劇的に劣ることもあって、全然割に合わない。将来的には変わると思うし、重みが利用可能になったらローカルの推論スタックに投資するのが楽しみ。までは、比較的高価で急速に価値が下がる資産を持て余してる状態だね。

家でLLMを動かすのは、「自宅でK8sクラスターを運用する」っていう混乱の繰り返しだよ。君はOpenAIでもGoogleでもないんだから。必要な小さなモデルを作るには、pytorchやopencvを使えばいいんだよ。Dockerすら必要ない! 簡単なコードベースのHTTPルーターアプリと事前共有の証明書を使って友達と共有できるし。クローゼットの中の2~3台のコンピュータで大規模なデータセンターを管理するためのパターンを再現してるだけだよ。それって、頭おかしいよ。

変わることはないと思う。2年後にGPT-5と同じくらいのローカルオプションがあったとしても、もっと良いクラウドオプションが出てきて、同じトレードオフをしなきゃいけないだろうね。

AIは生産性に大きな影響を与えるから、特にそうだよね。もしCloud LLMがローカルLLMより10IQポイント高かったら、1ヶ月後にはCloud LLMを使ってる奴に置いてかれてるのがわかると思う。LocalLlamaは趣味用か、仕事でローカルラマを使う必要がある人向けだよ。これは一度きりの初期投資と後でのリターンのトレードオフじゃなくて、毎回のクエリでトレードオフをしてるってこと。すぐに影響が出るからね。追記:このコメントにはダウンボートしか期待してないよ。このHNがAIに関して落ちぶれたのは、長い間語り継がれるケーススタディになるだろうね。

中古で手に入れたものは、そのペースで価値が下がるよ。 それは違うんじゃない?私が見た限り、ローカル推論を最も多く行っている人たちはApple SiliconやNvidiaのハードウェアのオーナーだよ。Apple Siliconは約7年間、十分なLLMサポートがあるし、Nvidiaは今やっと11年前のGPUハードウェアをドライバーで廃止し始めたところ。3年か5年前にそこそこパワフルな推論マシンを買ったなら、今でも素晴らしいtok/sで動いてるはずだよ。もしかしたらMoEアーキテクチャやバックエンドの改善のおかげで、さらに速い推論ができるかも。

ハードウェアが急速に進化し続ける中で、中古で手に入れたものはそのペースで価値が下がり続けるから、ハードウェアへの本当の投資が正当化できなくなる。理由を説明してくれる?最悪のシナリオは、あなたのセットアップが最高のパフォーマンスを発揮しないかもしれないけど、それでも動いてモデルを実行できるってことだよね。これはクラシックで非常に基本的なオペックスとキャペックスのトレードオフ分析のように聞こえるけど、金融的にはクラウドプロバイダーが好まれるのは非常に特定のケース、つまりスケーリングニーズがわからないときにインフラを立ち上げるための短期投資だけだよ。LLMsには当てはまらないと思う。OPは約600ドル投資したみたいだけど、これは同等のEC2インスタンスの3ヶ月分くらいだよね。これを知った上で、数字であなたの理由を支持できる?

ローカルLLMのシーンはすごく楽しいし、みんなが何をしているかを追うのが好きなんだ。でも、MacBook ProでたくさんのRAMを使ってローカルモデルを動かすたびに、ローカルホストモデルと、月20ドルやトークンごとの名目価格で他のプロバイダーから得られるフロンティアモデルとのギャップを思い知らされる。速度と品質の違いはものすごいよ。今のローカルモデルはすごく印象的だけど、SaaSのフロンティアモデルにはまだ大きく遅れをとってる感じ。ベンチマークチャートではこのギャップがうまく捉えられてないと思う。おそらく、モデルがそのベンチマークでうまく動くように訓練されているからだろうね。私はすでにOpenAIやAnthropicのフロンティアモデルが遅くてエラーが多いと感じているから、さらに速度と品質が落ちるのは魅力的じゃない。趣味としては楽しいと思うし、プライバシーリスクを取れない人にはいいかもね。でも、私は128GBのRAMを搭載したM5やM6のMacBook Proがどれだけできるかを見るまで、LLM用の専用購入を試みる気にはなれないな。

「未来にはこれが変わることを期待しているし、私もそう願っている。Claude Codeをどんどん自分のワークフローに取り入れ始めたから、日常のコーディングタスクで会社に依存したくないんだ。レート制限やAPIの費用、月に$100-$200を払うことを心配したくない。自分がやることが、使っているAI会社に監視されたり、データを掘られたりするのは嫌だ。私にとって、これは購入したスマートホームのすべてがローカルコントロールを持っている理由と似ているし、自分のスマートホームソフトウェアを運営して、外からアクセスできる部分を自己ホストしている理由でもある。明日には消えてしまうかもしれない会社に、価格を引き上げられたり、データを第三者に売られたりするのは嫌だし、自分のデータを自分の目的に使われるのも嫌だ。今は自分の所有するハードウェアや自分で管理するVPSでLLMを設定しようとは思わない。コストが非常に高いし(今はAnthropicに月$20を払っていて、その価格に対して満足している)、設定や維持には手間がかかりすぎて、今はその知識を身につけることに興味がない。そういうのを楽しむ人もいるけど、私はそうじゃない。現在のオープンモデルやそれに関連するツールは、Anthropicなどから得られるものとは同じクラスには見えない。でも、変わることを期待しているよ!」

まだローカルの方が好きかな。でもそれは、ほとんどのAI推論が遅いかローカルと同じくらいだからだと思う。最近、Cerebrasを試してみたんだけど(Groqのことも聞いたことある)、1000 tk/sとかで試すと、メンタルモデルがガラッと変わって、かなりイライラしちゃうんだよね。Cerebrasはデータをログに残さないって言ってるし、私が彼らにスポンサーされてるわけじゃないって信じてほしい(スポンサーだったらいいのに)。でも、彼らはちょっといい感じだよね。いつか速度の意味のある改善ができることを願ってる。拡散モデルはアーキテクチャ的にすごく速いみたいだし。

LLMs: Ollamaはローカルモデル用(今のところプライベートモデルも) ちなみに、昨日OllamaのmacOSアプリを試してみたんだけど、起動時に最初にすることは、何かのGoogleドメインに接続しようとすることなんだよね。あんまりプライベートじゃないね。 https://imgur.com/a/7wVHnBA

自動更新チェック https://github.com/ollama/ollama/blob/main/docs/faq.md

そうそう、私もvscodeでclineプラグインとcopilotプラグインの両方で同じことに気づいたよ。両方ともローカルのollamaを使うように設定して、Little Snitchで外部接続をブロックしたら、電話をかけたりposthogを使ったりしないと全く動かないんだ。設定でテレメトリーをオフにしても、Clineがそんなに外部通信をしようとするのは超残念だね。

これは素晴らしい仕事だね。ローカルでサンドボックスされた実行レイヤーに焦点を当てるのは、プライベートAIワークスペースにとって大きなピースだと思う。coderunnerツールはめちゃくちゃ役に立ちそうだね。補完的な課題はナレッジレイヤーで、RAGを通じてAIに自分の個人データ(メール、ノート、ファイル)を認識させることだよ。これを大規模に試みると、ストレージが大きなボトルネックになるんだ。何年分ものメールのベクターデータベースは簡単に50GBを超えちゃうからね。(全 disclosure: 私はこれに取り組んでいるバークレーのチームの一員だよ。)私たちはLEANNというベクターインデックスを作ったんだけど、埋め込みを全く保存しないことでストレージを約97%削減できるんだ。これで自分のデジタルライフ全体をローカルでインデックス化するのが実際に可能になるよ。こんなローカル実行エンジンとLEANNのような超効率的なナレッジインデックスを組み合わせるのが、本当の「ローカルジャーヴィス」への道だと感じるね。コード: https://github.com/yichuan-w/LEANN 論文: https://arxiv.org/abs/2405.08051

埋め込みについてはほとんど知らないんだけど、クラウド埋め込みに同じ「プルーニンググラフ」アプローチを実装しているプロジェクトってあるの?

年間のメールのためのベクターデータベースは簡単に50GBを超えることができる。2025年には、これは比較的少ない要件だと思う。

「世界最高の」LLMの助けを借りても、思ったほどスムーズにはいかなかったんだ。彼らはステップを幻覚したり、プラットフォーム特有の細かいところを見逃したりして、逆に悪化させることが多かった。これが、ネイティブアプリのトレーニングデータがどれだけ少ないかを示しているよ。人々はネイティブアプリの設計についてブログを書くことはほとんどないし、長ったらしいMediumのチュートリアルも存在しない。ネイティブデスクトップアプリのオープンソースプロジェクトの数は、モバイルやウェブアプリに比べてほんのわずかだ。歴史的に見ても、マイクロソフトは世界の一流技術ライターに素晴らしいWindowsのコーディング本を書かせていたけど(チャールズ・ペッツォルドを参照)、今やその業界はほぼ死んでしまった。こうしたトレーニングデータの穴は、ますます大きな問題になっていくよ。これはソフトウェアエンジニアリング全般に言えることで、ネイティブデスクトップアプリを書くことを望む人は少ない。90年代にはWindowsデスクトップアプリを書くスキルがあれば素晴らしかったけど、今はキャリアの行き止まりになってしまう。C/C++プログラミングは難しかったし、Windows APIを学ぶのも簡単ではなかった。マイクロソフトはトレーニングプログラムにたくさんの資金を投入していたけど、状況は大きく変わった。OSベンダー(マイクロソフト、アップル)やいくつかのレガシーアプリチーム(アドビ、オートデスクなど)を除けば、デスクトップアプリを書く仕事はほとんど存在しないんだ。

インフラはさておき、ローカルホストされたMCP対応のLLMを使ってどれくらい成功したのか、特にどのモデルを使ったのかを聞いてみたいな。記事のE2Eテストは、クラウドのモデルに対して行われているみたいだから。

冬に暖房器具は必要ないだろうね。

現在、ThinkAgents.aiでクローズドアルファを進めていて、今後数週間で最もアクティブなビルダーに展開する準備をしているよ。