HelgeSverre/ollama-gui

A Web Interface for chatting with your local LLMs via the ollama API

Ollama GUI – ローカルで実行されるLLM向けのブラウザベースのチャットフロントエンド

何であるか – Ollama エンジンで提供される任意のモデルと会話できる単一ページ型Webアプリ。UIは完全にブラウザ内で実行され、独自のバックエンドをホストするものではありません。すべてのチャット履歴はブラウザのIndexedDBにローカルに保存されるため、アプリがリモートのOllamaサーバーに接続しない限り、何のデータもあなたのマシンから出ることはありません。

主な機能

  • チャット体験 – ストリーミング返信、生成停止、再生成、メッセージの編集。すべての編集はバージョンとして保存され、以前の状態に戻れるほか、返信を新しい会話に分岐させることも可能。
  • 「思考」モデル – 理由の追跡(例:qwen3、deepseek-r1、gpt-oss)を公開するモデルの場合、UIはモデルの内部的な思考の連鎖を折りたたみ可能なブロックで表示。gpt-ossでは努力レベルを調整可能。
  • 添付ファイル – 視覚モデル(llava、gemma3)向けに画像をドロップ、またはテキスト/コードファイルを添付。これらはプロンプトと共に送信されます。
  • モデル管理 – Ollamaモデルカタログを検索、サイズを選択、進捗付きでダウンロード、削除、機能の確認、コンテキスト長の表示、メモリからのモデルのアンロード。
  • 細かい設定 – システムプロンプト、温度、num_ctx、top_p、シードなど、グローバル、モデル単位、チャット単位で設定可能。
  • 履歴UI – 日付ごとにチャットをグループ化、ピン止め、アーカイブ、名前の変更、自動タイトル、全文検索(⌘K)。
  • 豊富なMarkdown – 構文強調付きコードブロック、KaTeXによる数式レンダリング。
  • 外観 – ライト/ダークテーマ、ロケール対応の日付と数値。
  • インポート/エクスポート – すべてのチャットをJSON形式でダンプ、または1つのチャットをMarkdown形式でエクスポート。

実行方法

  1. ローカルにOllamaをインストールし、起動(デフォルト http://localhost:11434)。
  2. Bun(またはNode 20)をインストールし、リポジトリをクローン。
  3. bun install && bun run dev – 開発サーバーは /api をOllamaにプロキシするため、CORSの変更は不要。
  4. http://localhost:5173 を開く。

デプロイオプション

  • 静的ビルド – bun run build で dist/ フォルダが生成され、任意のWebサーバー(nginxの例を提供)で配信可能。UIはOllamaに直接接続され、同じオリジンプロキシまたはクロスオリジンURL経由で通信。
  • Docker – 事前にビルドされたイメージはnginxでUIを提供し、/apiをOllamaインスタンスにプロキシ。docker-compose.yml を使ってOllamaとGUIを一緒に実行するか、GUIのみを実行して外部のOllamaに接続可能。
  • ホスティングされたデモ – Vercelでホスティングされたバージョン(https://ollama-gui.vercel.app)は、OLLAMA_ORIGINS にオリジンを追加することで、ローカルのOllamaインスタンスと連携可能。

開発とテスト

  • リンティング(bun run lint)、ユニット/統合テスト(bun run test)、カバレッジ、Playwrightによるエンドツーエンドテスト。特別なフラグ(OLLAMA_REAL=1)で、実際のOllamaサーバーに対してe2eテストを実行可能。
  • モデルカタログは別途のスクリーパーで公開Ollamaライブラリから生成。bun run catalog:update で更新可能。

技術スタック – Vue 3 + Vite、Tailwind CSS、VueUse、Dexie(IndexedDBラッパー)、markdown-it、highlight.js、KaTeX、Tabler Icons。

ライセンス – MIT。


要するに、Ollama GUIは、バージョン管理された編集、思考の可視化、ファイル添付、完全なモデル管理を備えた、ローカルでホストされる洗練されたWebフロントエンドであり、別途のサーバーを必要としません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト