bernardo-bruning/ollama-copilot

Proxy that allows you to use ollama as a copilot like Github copilot

Ollama Copilot – GitHub Copilot用ローカルLLMプロキシ

概要 – GitHub Copilotクライアント(VS Code、Neovim、Zedなどの拡張機能)と、ローカルで実行されているLLMサーバーとの間に配置される小さなGoプログラムです。CopilotのHTTPリクエストを、Ollama互換API(またはllmman、DeepSeek、Mistral、OpenRouter、OpenAIなどの他のプロバイダー)への呼び出しに変換します。実際には、コードに特化したモデルを自分のマシンで実行し、公式サービスと全く同じようにCopilot UIで補完を提案させることができます。


クイックスタート(ワンライナー)

# まずOllamaをインストール (https://ollama.com/download/linux を参照)
curl -fsSL https://ollama.com/install.sh | sh

# デフォルトのコードモデルをプル
ollama pull codellama:code

# プロキシバイナリをインストール
go install github.com/bernardo-bruning/ollama-copilot@latest

# 実行(デフォルトでは localhost:11434 のOllamaを使用)
ollama-copilot

次に、Copilot拡張機能の接続先を http://localhost:11435(または以下に示すHTTPSポート)に設定すれば、ローカルモデルからの補完が得られます。


仕組み

コンポーネント 役割
Ollama / llmman / 他のプロバイダー 実際の言語モデルをホストし、Ollama互換のREST APIを公開します。
ollama-copilot HTTP/HTTPSポートのセットをリッスンし、CopilotのJSONペイロードを受け取り、選択したプロバイダーに転送し、Copilotが期待する形式で補完を返します。
Copilotクライアント (VS Code, Neovim, Zed, …) GitHubのクラウドサービスではなく、プロキシに通常のリクエストを送信します。

プロキシはコマンドラインフラグで設定可能で、以下のことが可能です:

  • プロバイダーの選択 (-provider ollama|llmman|deepseek|mistral|openrouter|openai)
  • APIトークンの指定 (-token)
  • モデルの選択 (-model)
  • -num-predict(生成するトークン数)や -num-ctx(コンテキストウィンドウ)などの生成パラメータの調整
  • 通常のHTTPまたはTLS経由での実行(-cert/-keyを指定)

インストールオプション

1. 自動スクリプト(推奨)

./install.sh

このスクリプトは以下のことを行います:

  • Goバイナリをビルドし、~/.local/bin/ollama-copilot にインストールします。
  • オプションでSystemdサービスを作成し、起動時にプロキシを開始させ、num-predict を永続的に設定できるようにします。
  • インストールされているエディタを検出し、Neovim、VS Code、Zedに必要なプロキシ設定を追加する提案を行います。

2. 手動でのGoインストール

go install github.com/bernardo-bruning/ollama-copilot@latest

$HOME/go/bin (または $GOPATH/bin) が $PATH に含まれていることを確認してください。

3. プロキシの実行

# デフォルト – ポート 11434 のローカルOllamaインスタンスと通信
ollama-copilot

# Ollamaが別の場所(コンテナ、リモートホスト)で実行されている場合
OLLAMA_HOST="http://192.168.133.7:11434" ollama-copilot

-port、-proxy-port、-port-ssl、-proxy-port-ssl を使用してリッスンポートを変更することもできます。


プロバイダー別の注意点

プロバイダー 設定方法 コマンド例
Ollama (デフォルト) Ollamaをインストールし、モデルをプル (例: codellama:code)。 ollama-copilot
llmman llmman をインストールし、llmman serve を実行してモデルをプルし、-provider llmman でプロキシを開始。 ollama-copilot -provider llmman -model hf.co/unsloth/Qwen3.5-0.8B-GGUF
DeepSeek DeepSeekからAPIキーを取得。 ollama-copilot -provider deepseek -token $YOUR_KEY -model deepseek-coder
Mistral MistralからAPIキーを取得。 ollama-copilot -provider mistral -token $YOUR_KEY -model codestral-latest
OpenRouter / OpenAI 適切なトークンとモデル名を指定。 ollama-copilot -provider openrouter -token $KEY -model openrouter/anthropic/claude-3.5-sonnet

IDE統合(手動設定)

Neovim (copilot.vim を使用)

let g:copilot_proxy = 'http://localhost:11435'
let g:copilot_proxy_strict_ssl = v:false

先にCopilotにサインインしていることを確認してください (:Copilot signin)。

VS Code (公式Copilot拡張機能)

settings.json に追加:

{
  "github.copilot.advanced": {
    "debug.overrideProxyUrl": "http://localhost:11437"
  },
  "http.proxy": "http://localhost:11435",
  "http.proxyStrictSSL": false
}

Zed

{
  "features": {"edit_prediction_provider": "copilot"},
  "show_completions_on_input": true,
  "edit_predictions": {
    "copilot": {"proxy": "http://localhost:11435", "proxy_no_verify": true}
  }
}

PyCharm / その他のJetBrains IDE

HTTP Proxy を設定 → ホスト localhost、ポート 11435。Tools → Server Certificates で Accept non-trusted certificates automatically を有効にします。

Emacs (実験的)

(setq copilot-network-proxy '(:host "127.0.0.1" :port 11434 :rejectUnauthorized :json-false))

(copilot-emacs パッケージが必要です。)


設定フラグ(要約)

フラグ デフォルト 意味
-port :11437 プロキシ自体がリッスンするHTTPポート(Copilotクライアントが使用)。
-proxy-port :11438 プロキシエンドポイント用のHTTPポート(一部のエディタは別のポートを使用)。
-port-ssl :11436 -port のHTTPS版。
-proxy-port-ssl :11435 -proxy-port のHTTPS版。
-cert / -key – HTTPSモード用のTLS証明書とキーへのパス。
-provider ollama リクエストを転送するバックエンド。
-token TOKEN クラウドプロバイダー用のAPIトークン。
-model codellama:code 選択したプロバイダーが理解するモデル識別子。
-num-predict 250 (Copilotには 25 を推奨) モデルがリクエストごとに生成するトークン数。
-template <PRE> {{.Prefix}} <SUF> {{.Suffix}} <MID> 「fill-in-the-middle」補完に使用されるプロンプトテンプレート。
-system You are a helpful... モデルに送信されるシステムレベルの指示。

ロードマップ(現在のステータス)

  • ✅ 補完APIの使用を有効化; fill-in-the-middle。
  • ✅ 柔軟な設定モデル (llamacode:code 以外も対応)。
  • ✅ 自己インストールスクリプト。
  • ✅ Neovim, VS Code, Zedの自動設定。
  • ✅ ドキュメント。
  • ⬜ Windowsセットアップ (未対応)。

誰がこれを使うべきか?

  • ソースコードをクラウドサービスに送信せずにコード補完を利用したい開発者。
  • オンプレミスのLLMを必要とするプライバシーやセキュリティの制約があるチーム。
  • さまざまなオープンソースコードモデル (CodeLlama, Qwenなど) を試しながら、使い慣れたCopilot UIを利用したい人。

結論 – ollama-copilot は、洗練されたCopilotエディタ体験と、独自のコード特化型LLMをローカルで実行する自由との間のギャップを埋めます。

関連

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