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을 실행하는 자유 사이의 간극을 메워줍니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트