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

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트