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をローカルで実行する自由との間のギャップを埋めます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト