Continue - Open Source AI Code Assistant
Czym jest Continue?
Continue to open-source'owy asystent AI do programowania dla VS Code i JetBrains IDE (IntelliJ, PyCharm, WebStorm, etc.). W przeciwieństwie do GitHub Copilot, Continue pozwala na używanie dowolnego modelu językowego - od komercyjnych API (GPT-4, Claude, Gemini) po lokalne modele uruchamiane przez Ollama, LM Studio czy vLLM.
Continue został stworzony z myślą o deweloperach, którzy chcą pełnej kontroli nad swoimi danymi i preferują elastyczność w wyborze modeli AI. Projekt jest w pełni open-source (Apache 2.0), co oznacza, że możesz go modyfikować, hostować samodzielnie i używać bez żadnych opłat - płacisz tylko za API modeli, które wybierzesz.
Dlaczego Continue?
Kluczowe zalety Continue:
- 100% Open Source - Apache 2.0 license, pełna transparentność kodu
- Dowolny model LLM - GPT-4, Claude, Gemini, Llama, Mistral, CodeLlama, i więcej
- Lokalne modele - Pełna prywatność z Ollama, LM Studio, vLLM
- Bring Your Own Key - Używaj swoich API keys, płać tylko za użycie
- Context providers - Dodaj dokumentację, terminal, search do kontekstu
- Slash commands - Szybkie akcje przez /edit, /comment, /share
- Tab autocomplete - Inteligentne uzupełnianie kodu jak Copilot
Continue vs GitHub Copilot
| Cecha | Continue | GitHub Copilot |
|---|---|---|
| Open Source | ✅ Tak (Apache 2.0) | ❌ Nie |
| Modele | Dowolne (GPT-4, Claude, lokalne) | Tylko modele GitHub/OpenAI |
| Lokalne modele | ✅ Ollama, LM Studio, vLLM | ❌ Brak |
| Prywatność danych | ✅ Pełna kontrola | ⚠️ Dane na serwerach GitHub |
| Cena | Darmowy (BYOK) | $10-19/mo |
| Self-hosting | ✅ Tak | ❌ Nie |
| Chat | ✅ Wbudowany | ✅ Copilot Chat |
| Autocomplete | ✅ Tab completion | ✅ Tab completion |
| IDE | VS Code, JetBrains | VS Code, JetBrains, Vim |
Instalacja
VS Code
# Z marketplace
code --install-extension Continue.continue
# Lub przez VS Code:
# 1. Otwórz Extensions (Ctrl+Shift+X)
# 2. Szukaj "Continue"
# 3. Kliknij InstallJetBrains (IntelliJ, PyCharm, WebStorm)
# Z JetBrains Marketplace:
# 1. Settings → Plugins → Marketplace
# 2. Szukaj "Continue"
# 3. Install
# 4. Restart IDEWeryfikacja instalacji
Po instalacji:
- Otwórz panel Continue (Ctrl+L lub Cmd+L na Mac)
- Powinieneś zobaczyć chat interface
- Skonfiguruj model w
~/.continue/config.json
Konfiguracja modeli
Struktura config.json
Główny plik konfiguracyjny znajduje się w ~/.continue/config.json:
{
"models": [
{
"title": "Claude 3.5 Sonnet",
"provider": "anthropic",
"model": "claude-3-5-sonnet-20241022",
"apiKey": "sk-ant-xxx"
}
],
"tabAutocompleteModel": {
"title": "Starcoder",
"provider": "ollama",
"model": "starcoder2:3b"
},
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text"
},
"contextProviders": [],
"slashCommands": []
}Konfiguracja Claude (Anthropic)
{
"models": [
{
"title": "Claude 3.5 Sonnet",
"provider": "anthropic",
"model": "claude-3-5-sonnet-20241022",
"apiKey": "sk-ant-api03-xxx",
"contextLength": 200000,
"completionOptions": {
"temperature": 0.7,
"maxTokens": 4096
}
},
{
"title": "Claude 3 Opus",
"provider": "anthropic",
"model": "claude-3-opus-20240229",
"apiKey": "sk-ant-api03-xxx"
},
{
"title": "Claude 3 Haiku (szybki)",
"provider": "anthropic",
"model": "claude-3-haiku-20240307",
"apiKey": "sk-ant-api03-xxx"
}
]
}Konfiguracja OpenAI (GPT-4)
{
"models": [
{
"title": "GPT-4 Turbo",
"provider": "openai",
"model": "gpt-4-turbo",
"apiKey": "sk-xxx"
},
{
"title": "GPT-4o",
"provider": "openai",
"model": "gpt-4o",
"apiKey": "sk-xxx"
},
{
"title": "GPT-4o Mini",
"provider": "openai",
"model": "gpt-4o-mini",
"apiKey": "sk-xxx"
}
]
}Konfiguracja lokalnych modeli (Ollama)
{
"models": [
{
"title": "Llama 3.1 70B",
"provider": "ollama",
"model": "llama3.1:70b"
},
{
"title": "CodeLlama 34B",
"provider": "ollama",
"model": "codellama:34b"
},
{
"title": "Mistral 7B",
"provider": "ollama",
"model": "mistral:7b"
},
{
"title": "DeepSeek Coder",
"provider": "ollama",
"model": "deepseek-coder:33b"
}
],
"tabAutocompleteModel": {
"title": "Starcoder 3B",
"provider": "ollama",
"model": "starcoder2:3b"
}
}Konfiguracja wielu providerów
{
"models": [
{
"title": "Claude Sonnet (główny)",
"provider": "anthropic",
"model": "claude-3-5-sonnet-20241022",
"apiKey": "sk-ant-xxx"
},
{
"title": "GPT-4 (backup)",
"provider": "openai",
"model": "gpt-4-turbo",
"apiKey": "sk-xxx"
},
{
"title": "Llama Local (offline)",
"provider": "ollama",
"model": "llama3:8b"
}
]
}Ollama - Lokalne modele
Instalacja Ollama
# macOS / Linux
curl -fsSL https://ollama.ai/install.sh | sh
# macOS (Homebrew)
brew install ollama
# Windows
# Pobierz installer z https://ollama.com/downloadUruchomienie Ollama
# Uruchom serwer Ollama
ollama serve
# W nowym terminalu - pobierz modele
ollama pull llama3:8b
ollama pull codellama:7b
ollama pull starcoder2:3b
ollama pull deepseek-coder:6.7bPopularne modele do kodowania
# Modele ogólne
ollama pull llama3:8b # 4.7GB - dobry balans
ollama pull llama3:70b # 40GB - najlepsza jakość
ollama pull mistral:7b # 4.1GB - szybki i dobry
# Modele do kodu
ollama pull codellama:7b # 3.8GB - Meta code model
ollama pull codellama:34b # 19GB - lepszy dla kodu
ollama pull deepseek-coder:6.7b # 3.8GB - świetny do kodu
ollama pull starcoder2:3b # 1.7GB - autocomplete
# Modele do chat
ollama pull llama3.1:8b # 4.7GB - najnowsza wersja
ollama pull phi3:14b # 7.9GB - Microsoft modelKonfiguracja Ollama w Continue
{
"models": [
{
"title": "Llama 3 Local",
"provider": "ollama",
"model": "llama3:8b",
"apiBase": "http://localhost:11434"
}
],
"tabAutocompleteModel": {
"title": "Starcoder Autocomplete",
"provider": "ollama",
"model": "starcoder2:3b",
"apiBase": "http://localhost:11434"
},
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text",
"apiBase": "http://localhost:11434"
}
}Ollama z GPU (NVIDIA)
# Ollama automatycznie wykrywa GPU
# Sprawdź status GPU
ollama ps
# Uruchom z konkretnym GPU
CUDA_VISIBLE_DEVICES=0 ollama serveGłówne funkcje
Chat (Cmd+L / Ctrl+L)
Chat to główna funkcja Continue pozwalająca na rozmowę z AI o kodzie:
// Zaznacz kod i naciśnij Cmd+L
User: Explain this function
[zaznaczony kod]
Continue: This function does XYZ...
It takes parameters A and B...
The return value is...Przydatne użycia chatu:
- Wyjaśnienie złożonego kodu
- Pytania o najlepsze praktyki
- Debugging - "dlaczego ten kod nie działa?"
- Propozycje refaktoringu
Edit (Cmd+I / Ctrl+I)
Edit pozwala na bezpośrednią modyfikację kodu przez AI:
// Zaznacz kod, naciśnij Cmd+I
// Wpisz instrukcję:
"Refactor to use async/await instead of callbacks"
// Continue wygeneruje diff, który możesz zaakceptować lub odrzucićPrzykładowe instrukcje edit:
- "Add error handling"
- "Convert to TypeScript"
- "Add input validation"
- "Optimize this loop"
- "Make this function pure"
Tab Autocomplete
Autocomplete działa automatycznie podczas pisania:
// Zacznij pisać...
function calculateTax(
// Continue zasugeruje:
function calculateTax(amount: number, rate: number): number {
return amount * rate
}
// Naciśnij Tab aby zaakceptowaćKonfiguracja autocomplete:
{
"tabAutocompleteModel": {
"title": "Fast Autocomplete",
"provider": "ollama",
"model": "starcoder2:3b"
},
"tabAutocompleteOptions": {
"useCopyBuffer": true,
"useFileSuffix": true,
"maxPromptTokens": 1024,
"debounceDelay": 300
}
}Slash Commands
Slash commands to szybkie akcje dostępne przez /nazwa:
/edit refactor this to be more readable
/comment add JSDoc comments to all functions
/share create a shareable link for this code
/cmd generate a terminal command to do X
/test write unit tests for this function
/fix fix the errors in this codeKonfiguracja custom slash commands:
{
"slashCommands": [
{
"name": "test",
"description": "Write unit tests",
"prompt": "Write comprehensive unit tests for the selected code using Jest. Include edge cases and error scenarios."
},
{
"name": "doc",
"description": "Add documentation",
"prompt": "Add detailed JSDoc/TSDoc documentation to this code. Include @param, @returns, and @example where appropriate."
},
{
"name": "review",
"description": "Code review",
"prompt": "Review this code for potential issues, bugs, and improvements. Consider performance, security, and best practices."
},
{
"name": "explain",
"description": "Explain code",
"prompt": "Explain this code step by step. What does each part do? What's the overall purpose?"
}
]
}Context Providers
Context providers dodają dodatkowy kontekst do promptów:
Wbudowane context providers
{
"contextProviders": [
{
"name": "code",
"params": {}
},
{
"name": "docs",
"params": {}
},
{
"name": "terminal",
"params": {}
},
{
"name": "search",
"params": {}
},
{
"name": "open",
"params": {}
},
{
"name": "problems",
"params": {}
}
]
}URL Context Provider
{
"contextProviders": [
{
"name": "url",
"params": {
"preset": "docs"
}
}
]
}Użycie w chacie:
@url https://docs.react.dev/learn/state-a-components-memory
How do I use useState in React?Codebase Context Provider
{
"contextProviders": [
{
"name": "codebase",
"params": {
"nRetrieve": 25,
"nFinal": 10,
"useReranking": true
}
}
]
}Użycie:
@codebase How is authentication implemented in this project?File Context Provider
{
"contextProviders": [
{
"name": "file",
"params": {}
}
]
}Użycie:
@file src/utils/auth.ts explain this fileFolder Context Provider
{
"contextProviders": [
{
"name": "folder",
"params": {}
}
]
}Użycie:
@folder src/components what components do we have?Custom Documentation
{
"contextProviders": [
{
"name": "docs",
"params": {
"sites": [
{
"title": "Next.js Docs",
"startUrl": "https://nextjs.org/docs",
"rootUrl": "https://nextjs.org/docs"
},
{
"title": "Prisma Docs",
"startUrl": "https://www.prisma.io/docs",
"rootUrl": "https://www.prisma.io/docs"
}
]
}
}
]
}Embeddings i RAG
Konfiguracja embeddings
{
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text",
"apiBase": "http://localhost:11434"
}
}Alternatywne providers
{
"embeddingsProvider": {
"provider": "openai",
"model": "text-embedding-3-small",
"apiKey": "sk-xxx"
}
}{
"embeddingsProvider": {
"provider": "transformers.js",
"model": "Xenova/all-MiniLM-L6-v2"
}
}Indexing codebase
# Continue automatycznie indeksuje codebase
# Możesz też wymusić reindex:
# Cmd+Shift+P → "Continue: Rebuild codebase index".continueignore
Wyklucz pliki z indeksowania:
# .continueignore
node_modules/
dist/
build/
*.min.js
*.lock
coverage/
.next/Zaawansowana konfiguracja
System prompt customization
{
"systemMessage": "You are an expert TypeScript developer working on a Next.js project. Follow these guidelines:\n- Use TypeScript strict mode\n- Prefer functional components with hooks\n- Use Tailwind CSS for styling\n- Follow the project's existing patterns"
}Model completion options
{
"models": [
{
"title": "Claude Custom",
"provider": "anthropic",
"model": "claude-3-5-sonnet-20241022",
"completionOptions": {
"temperature": 0.3,
"maxTokens": 4096,
"topP": 0.95,
"topK": 40,
"presencePenalty": 0,
"frequencyPenalty": 0
}
}
]
}Prompt templates
{
"promptTemplates": {
"edit": "Please edit the following code according to these instructions:\n\n{{{userInput}}}\n\nCode:\n```\n{{{selectedText}}}\n```",
"chat": "Context:\n{{{contextItems}}}\n\nQuestion: {{{userInput}}}",
"autocomplete": "{{{prefix}}}"
}
}Request options
{
"requestOptions": {
"timeout": 60000,
"verifySsl": true,
"headers": {
"X-Custom-Header": "value"
}
}
}Integracja z narzędziami
Git integration
Continue automatycznie wykrywa kontekst git:
@git show me recent changes
@git what changed in the last commit?
@diff explain these changesTerminal integration
@terminal show recent commands
@terminal what was the last error?Problem integration
@problems fix all TypeScript errors
@problems what errors do we have?Keyboard shortcuts
VS Code shortcuts
| Skrót | Akcja |
|---|---|
Cmd+L | Otwórz chat |
Cmd+I | Edit inline |
Cmd+Shift+L | Dodaj do chatu |
Cmd+Shift+R | Regeneruj odpowiedź |
Tab | Akceptuj autocomplete |
Esc | Zamknij autocomplete |
Cmd+Shift+Enter | Submit |
Cmd+Delete | Wyczyść chat |
JetBrains shortcuts
| Skrót | Akcja |
|---|---|
Ctrl+L | Otwórz chat |
Ctrl+I | Edit inline |
Ctrl+Shift+L | Dodaj do chatu |
Tab | Akceptuj autocomplete |
Customization shortcuts
// VS Code keybindings.json
[
{
"key": "cmd+shift+c",
"command": "continue.chat"
},
{
"key": "cmd+shift+e",
"command": "continue.edit"
}
]Provider-specific setup
Azure OpenAI
{
"models": [
{
"title": "Azure GPT-4",
"provider": "azure",
"model": "gpt-4",
"apiKey": "your-azure-key",
"apiBase": "https://your-resource.openai.azure.com",
"apiVersion": "2024-02-15-preview",
"deployment": "your-deployment-name"
}
]
}AWS Bedrock
{
"models": [
{
"title": "Claude via Bedrock",
"provider": "bedrock",
"model": "anthropic.claude-3-sonnet-20240229-v1:0",
"region": "us-east-1"
}
]
}Google AI (Gemini)
{
"models": [
{
"title": "Gemini Pro",
"provider": "google",
"model": "gemini-1.5-pro",
"apiKey": "your-google-api-key"
}
]
}Groq (ultra-fast inference)
{
"models": [
{
"title": "Llama via Groq",
"provider": "groq",
"model": "llama-3.1-70b-versatile",
"apiKey": "gsk_xxx"
}
]
}Together AI
{
"models": [
{
"title": "Mistral via Together",
"provider": "together",
"model": "mistralai/Mixtral-8x7B-Instruct-v0.1",
"apiKey": "your-together-key"
}
]
}LM Studio
{
"models": [
{
"title": "LM Studio Model",
"provider": "lmstudio",
"model": "local-model",
"apiBase": "http://localhost:1234/v1"
}
]
}OpenRouter
{
"models": [
{
"title": "Claude via OpenRouter",
"provider": "openrouter",
"model": "anthropic/claude-3.5-sonnet",
"apiKey": "sk-or-xxx"
}
]
}Przypadki użycia
Code review
/review
# Lub bardziej szczegółowo:
Review this code for:
- Security vulnerabilities
- Performance issues
- Code smells
- TypeScript best practicesRefactoring
/edit Extract this logic into a custom hook
# Lub przez chat:
@file src/components/UserForm.tsx
How can I refactor this to be more maintainable?Documentation
/doc
# Lub:
Add comprehensive documentation including:
- Function purpose
- Parameters with types
- Return value
- Usage examplesTesting
/test
# Lub:
Write unit tests using Vitest for this function.
Include edge cases and error scenarios.Debugging
I'm getting this error:
[paste error]
@file src/utils/api.ts
What might be causing this?Learning
@docs https://react.dev
Explain how useMemo works and when I should use itBezpieczeństwo i prywatność
Lokalne modele (maksymalna prywatność)
{
"models": [
{
"title": "Local Llama",
"provider": "ollama",
"model": "llama3:8b"
}
],
"tabAutocompleteModel": {
"provider": "ollama",
"model": "starcoder2:3b"
},
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text"
}
}Telemetry
{
"allowAnonymousTelemetry": false
}Data handling
Continue:
- Nie przechowuje twojego kodu na serwerach
- Nie trenuje modeli na twoim kodzie
- Wysyła kod tylko do wybranego providera API
- Z lokalnymi modelami - żadne dane nie opuszczają twojego komputera
Porównanie z innymi narzędziami
Continue vs Cursor
| Cecha | Continue | Cursor |
|---|---|---|
| Open Source | ✅ Tak | ❌ Nie |
| IDE | VS Code, JetBrains | Custom (fork VS Code) |
| Lokalne modele | ✅ Tak | ⚠️ Ograniczone |
| Cena | Free (BYOK) | $20/mo |
| Customization | Pełna | Ograniczona |
Continue vs Cody
| Cecha | Continue | Cody |
|---|---|---|
| Open Source | ✅ Tak | ✅ Tak |
| Codebase context | ✅ Embeddings | ✅ Sourcegraph |
| Lokalne modele | ✅ Tak | ⚠️ Ograniczone |
| Enterprise | Self-host | Sourcegraph |
| Cena | Free | Free + Pro $9/mo |
Continue vs Tabnine
| Cecha | Continue | Tabnine |
|---|---|---|
| Open Source | ✅ Tak | ❌ Nie |
| Chat | ✅ Tak | ✅ Tak |
| Lokalne modele | ✅ Dowolne | ⚠️ Tylko Tabnine |
| Cena | Free (BYOK) | Free + Pro $12/mo |
Rozwiązywanie problemów
Continue nie widzi Ollama
# Sprawdź czy Ollama działa
curl http://localhost:11434/api/tags
# Jeśli nie odpowiada:
ollama serve
# Sprawdź dostępne modele
ollama listAutocomplete nie działa
- Sprawdź czy
tabAutocompleteModeljest skonfigurowany - Sprawdź czy model jest pobrany (dla Ollama)
- Sprawdź logi:
Continue: Show Logs
Wolne odpowiedzi
- Dla lokalnych modeli - użyj mniejszego modelu (7B zamiast 70B)
- Sprawdź czy GPU jest wykorzystywane
- Zwiększ
debounceDelaydla autocomplete
API errors
{
"requestOptions": {
"timeout": 120000,
"verifySsl": false
}
}Reset konfiguracji
# Backup
cp ~/.continue/config.json ~/.continue/config.json.bak
# Reset
rm ~/.continue/config.json
# Restart VS Code/IDEMigracja z GitHub Copilot
Krok 1: Instalacja Continue
code --install-extension Continue.continueKrok 2: Konfiguracja podobna do Copilot
{
"models": [
{
"title": "GPT-4 Turbo",
"provider": "openai",
"model": "gpt-4-turbo",
"apiKey": "sk-xxx"
}
],
"tabAutocompleteModel": {
"title": "GPT-3.5 Turbo",
"provider": "openai",
"model": "gpt-3.5-turbo",
"apiKey": "sk-xxx"
}
}Krok 3: Wyłączenie Copilot
code --uninstall-extension GitHub.copilotCennik
Continue
- 100% darmowy - Apache 2.0 license
- BYOK (Bring Your Own Key)
- Płacisz tylko za API modeli
Koszty API (przykładowe)
| Model | Provider | Cena (input/output) |
|---|---|---|
| Claude 3.5 Sonnet | Anthropic | $3/$15 per 1M tokens |
| GPT-4 Turbo | OpenAI | $10/$30 per 1M tokens |
| Llama 3 70B | Groq | $0.59/$0.79 per 1M tokens |
| Lokalne modele | Ollama | $0 (tylko hardware) |
Oszczędności vs Copilot
- Copilot: $10-19/mo = $120-228/rok
- Continue + Lokalne modele: $0
- Continue + API: ~$5-20/mo (zależnie od użycia)
FAQ - Najczęściej zadawane pytania
Czy Continue jest tak dobry jak Copilot?
Z odpowiednim modelem (Claude 3.5 Sonnet, GPT-4) - tak, często lepszy. Dodatkowo masz pełną kontrolę nad modelami i prywatnością.
Jakie modele polecacie do kodowania?
- Najlepsza jakość: Claude 3.5 Sonnet lub GPT-4 Turbo
- Balans jakość/cena: Llama 3.1 70B (Groq) lub DeepSeek Coder
- Lokalne: Llama 3 8B lub CodeLlama 34B
- Autocomplete: Starcoder2 3B lub DeepSeek Coder 6.7B
Czy mogę używać Continue offline?
Tak, z lokalnymi modelami przez Ollama. Potrzebujesz wystarczającej mocy obliczeniowej (min. 8GB RAM dla 7B modeli).
Czy Continue działa z moim językiem programowania?
Tak, Continue działa z każdym językiem. Jakość zależy od wybranego modelu - większość modeli dobrze radzi sobie z popularnymi językami.
Jak przejść z Cursor na Continue?
Continue jest rozszerzeniem do VS Code - nie musisz zmieniać IDE. Po prostu zainstaluj Continue w VS Code i skonfiguruj preferowane modele.
Czy mogę używać Continue w zespole?
Tak, możesz:
- Współdzielić config.json w repo
- Użyć environment variables dla API keys
- Self-hostować modele dla całego zespołu
Continue - open source AI code assistant
What is Continue?
Continue is an open-source AI coding assistant for VS Code and JetBrains IDEs (IntelliJ, PyCharm, WebStorm, etc.). Unlike GitHub Copilot, Continue lets you use any language model - from commercial APIs (GPT-4, Claude, Gemini) to local models running through Ollama, LM Studio, or vLLM.
Continue was built with developers in mind who want full control over their data and prefer flexibility in choosing AI models. The project is fully open-source (Apache 2.0), which means you can modify it, self-host it, and use it without any fees - you only pay for the API of the models you choose.
Why Continue?
Key advantages of Continue:
- 100% Open Source - Apache 2.0 license, full code transparency
- Any LLM model - GPT-4, Claude, Gemini, Llama, Mistral, CodeLlama, and more
- Local models - Full privacy with Ollama, LM Studio, vLLM
- Bring Your Own Key - Use your own API keys, pay only for usage
- Context providers - Add documentation, terminal, search to context
- Slash commands - Quick actions via /edit, /comment, /share
- Tab autocomplete - Intelligent code completion like Copilot
Continue vs GitHub Copilot
| Feature | Continue | GitHub Copilot |
|---|---|---|
| Open Source | Yes (Apache 2.0) | No |
| Models | Any (GPT-4, Claude, local) | GitHub/OpenAI models only |
| Local models | Ollama, LM Studio, vLLM | None |
| Data privacy | Full control | Data on GitHub servers |
| Price | Free (BYOK) | $10-19/mo |
| Self-hosting | Yes | No |
| Chat | Built-in | Copilot Chat |
| Autocomplete | Tab completion | Tab completion |
| IDE | VS Code, JetBrains | VS Code, JetBrains, Vim |
Installation
VS Code
# From the marketplace
code --install-extension Continue.continue
# Or through VS Code:
# 1. Open Extensions (Ctrl+Shift+X)
# 2. Search for "Continue"
# 3. Click InstallJetBrains (IntelliJ, PyCharm, WebStorm)
# From JetBrains Marketplace:
# 1. Settings → Plugins → Marketplace
# 2. Search for "Continue"
# 3. Install
# 4. Restart IDEVerifying the installation
After installation:
- Open the Continue panel (Ctrl+L or Cmd+L on Mac)
- You should see the chat interface
- Configure your model in
~/.continue/config.json
Model configuration
config.json structure
The main configuration file is located at ~/.continue/config.json:
{
"models": [
{
"title": "Claude 3.5 Sonnet",
"provider": "anthropic",
"model": "claude-3-5-sonnet-20241022",
"apiKey": "sk-ant-xxx"
}
],
"tabAutocompleteModel": {
"title": "Starcoder",
"provider": "ollama",
"model": "starcoder2:3b"
},
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text"
},
"contextProviders": [],
"slashCommands": []
}Claude (Anthropic) configuration
{
"models": [
{
"title": "Claude 3.5 Sonnet",
"provider": "anthropic",
"model": "claude-3-5-sonnet-20241022",
"apiKey": "sk-ant-api03-xxx",
"contextLength": 200000,
"completionOptions": {
"temperature": 0.7,
"maxTokens": 4096
}
},
{
"title": "Claude 3 Opus",
"provider": "anthropic",
"model": "claude-3-opus-20240229",
"apiKey": "sk-ant-api03-xxx"
},
{
"title": "Claude 3 Haiku (fast)",
"provider": "anthropic",
"model": "claude-3-haiku-20240307",
"apiKey": "sk-ant-api03-xxx"
}
]
}OpenAI (GPT-4) configuration
{
"models": [
{
"title": "GPT-4 Turbo",
"provider": "openai",
"model": "gpt-4-turbo",
"apiKey": "sk-xxx"
},
{
"title": "GPT-4o",
"provider": "openai",
"model": "gpt-4o",
"apiKey": "sk-xxx"
},
{
"title": "GPT-4o Mini",
"provider": "openai",
"model": "gpt-4o-mini",
"apiKey": "sk-xxx"
}
]
}Local models (Ollama) configuration
{
"models": [
{
"title": "Llama 3.1 70B",
"provider": "ollama",
"model": "llama3.1:70b"
},
{
"title": "CodeLlama 34B",
"provider": "ollama",
"model": "codellama:34b"
},
{
"title": "Mistral 7B",
"provider": "ollama",
"model": "mistral:7b"
},
{
"title": "DeepSeek Coder",
"provider": "ollama",
"model": "deepseek-coder:33b"
}
],
"tabAutocompleteModel": {
"title": "Starcoder 3B",
"provider": "ollama",
"model": "starcoder2:3b"
}
}Multiple providers configuration
{
"models": [
{
"title": "Claude Sonnet (primary)",
"provider": "anthropic",
"model": "claude-3-5-sonnet-20241022",
"apiKey": "sk-ant-xxx"
},
{
"title": "GPT-4 (backup)",
"provider": "openai",
"model": "gpt-4-turbo",
"apiKey": "sk-xxx"
},
{
"title": "Llama Local (offline)",
"provider": "ollama",
"model": "llama3:8b"
}
]
}Ollama - local models
Installing Ollama
# macOS / Linux
curl -fsSL https://ollama.ai/install.sh | sh
# macOS (Homebrew)
brew install ollama
# Windows
# Download the installer from https://ollama.com/downloadRunning Ollama
# Start the Ollama server
ollama serve
# In a new terminal - pull models
ollama pull llama3:8b
ollama pull codellama:7b
ollama pull starcoder2:3b
ollama pull deepseek-coder:6.7bPopular models for coding
# General-purpose models
ollama pull llama3:8b # 4.7GB - good balance
ollama pull llama3:70b # 40GB - best quality
ollama pull mistral:7b # 4.1GB - fast and capable
# Code-specific models
ollama pull codellama:7b # 3.8GB - Meta code model
ollama pull codellama:34b # 19GB - better for code
ollama pull deepseek-coder:6.7b # 3.8GB - excellent for code
ollama pull starcoder2:3b # 1.7GB - autocomplete
# Chat models
ollama pull llama3.1:8b # 4.7GB - latest version
ollama pull phi3:14b # 7.9GB - Microsoft modelOllama configuration in Continue
{
"models": [
{
"title": "Llama 3 Local",
"provider": "ollama",
"model": "llama3:8b",
"apiBase": "http://localhost:11434"
}
],
"tabAutocompleteModel": {
"title": "Starcoder Autocomplete",
"provider": "ollama",
"model": "starcoder2:3b",
"apiBase": "http://localhost:11434"
},
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text",
"apiBase": "http://localhost:11434"
}
}Ollama with GPU (NVIDIA)
# Ollama automatically detects the GPU
# Check GPU status
ollama ps
# Run with a specific GPU
CUDA_VISIBLE_DEVICES=0 ollama serveCore features
Chat (Cmd+L / Ctrl+L)
Chat is the main Continue feature that lets you have a conversation with AI about your code:
// Select code and press Cmd+L
User: Explain this function
[selected code]
Continue: This function does XYZ...
It takes parameters A and B...
The return value is...Useful chat applications:
- Explaining complex code
- Asking about best practices
- Debugging - "why isn't this code working?"
- Refactoring suggestions
Edit (Cmd+I / Ctrl+I)
Edit allows direct code modification through AI:
// Select code, press Cmd+I
// Type an instruction:
"Refactor to use async/await instead of callbacks"
// Continue will generate a diff that you can accept or rejectExample edit instructions:
- "Add error handling"
- "Convert to TypeScript"
- "Add input validation"
- "Optimize this loop"
- "Make this function pure"
Tab Autocomplete
Autocomplete works automatically as you type:
// Start typing...
function calculateTax(
// Continue will suggest:
function calculateTax(amount: number, rate: number): number {
return amount * rate
}
// Press Tab to acceptAutocomplete configuration:
{
"tabAutocompleteModel": {
"title": "Fast Autocomplete",
"provider": "ollama",
"model": "starcoder2:3b"
},
"tabAutocompleteOptions": {
"useCopyBuffer": true,
"useFileSuffix": true,
"maxPromptTokens": 1024,
"debounceDelay": 300
}
}Slash commands
Slash commands are quick actions accessible via /name:
/edit refactor this to be more readable
/comment add JSDoc comments to all functions
/share create a shareable link for this code
/cmd generate a terminal command to do X
/test write unit tests for this function
/fix fix the errors in this codeCustom slash commands configuration:
{
"slashCommands": [
{
"name": "test",
"description": "Write unit tests",
"prompt": "Write comprehensive unit tests for the selected code using Jest. Include edge cases and error scenarios."
},
{
"name": "doc",
"description": "Add documentation",
"prompt": "Add detailed JSDoc/TSDoc documentation to this code. Include @param, @returns, and @example where appropriate."
},
{
"name": "review",
"description": "Code review",
"prompt": "Review this code for potential issues, bugs, and improvements. Consider performance, security, and best practices."
},
{
"name": "explain",
"description": "Explain code",
"prompt": "Explain this code step by step. What does each part do? What's the overall purpose?"
}
]
}Context providers
Context providers add additional context to your prompts:
Built-in context providers
{
"contextProviders": [
{
"name": "code",
"params": {}
},
{
"name": "docs",
"params": {}
},
{
"name": "terminal",
"params": {}
},
{
"name": "search",
"params": {}
},
{
"name": "open",
"params": {}
},
{
"name": "problems",
"params": {}
}
]
}URL context provider
{
"contextProviders": [
{
"name": "url",
"params": {
"preset": "docs"
}
}
]
}Usage in chat:
@url https://docs.react.dev/learn/state-a-components-memory
How do I use useState in React?Codebase context provider
{
"contextProviders": [
{
"name": "codebase",
"params": {
"nRetrieve": 25,
"nFinal": 10,
"useReranking": true
}
}
]
}Usage:
@codebase How is authentication implemented in this project?File context provider
{
"contextProviders": [
{
"name": "file",
"params": {}
}
]
}Usage:
@file src/utils/auth.ts explain this fileFolder context provider
{
"contextProviders": [
{
"name": "folder",
"params": {}
}
]
}Usage:
@folder src/components what components do we have?Custom documentation
{
"contextProviders": [
{
"name": "docs",
"params": {
"sites": [
{
"title": "Next.js Docs",
"startUrl": "https://nextjs.org/docs",
"rootUrl": "https://nextjs.org/docs"
},
{
"title": "Prisma Docs",
"startUrl": "https://www.prisma.io/docs",
"rootUrl": "https://www.prisma.io/docs"
}
]
}
}
]
}Embeddings and RAG
Embeddings configuration
{
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text",
"apiBase": "http://localhost:11434"
}
}Alternative providers
{
"embeddingsProvider": {
"provider": "openai",
"model": "text-embedding-3-small",
"apiKey": "sk-xxx"
}
}{
"embeddingsProvider": {
"provider": "transformers.js",
"model": "Xenova/all-MiniLM-L6-v2"
}
}Indexing the codebase
# Continue automatically indexes the codebase
# You can also force a reindex:
# Cmd+Shift+P → "Continue: Rebuild codebase index".continueignore
Exclude files from indexing:
# .continueignore
node_modules/
dist/
build/
*.min.js
*.lock
coverage/
.next/Advanced configuration
System prompt customization
{
"systemMessage": "You are an expert TypeScript developer working on a Next.js project. Follow these guidelines:\n- Use TypeScript strict mode\n- Prefer functional components with hooks\n- Use Tailwind CSS for styling\n- Follow the project's existing patterns"
}Model completion options
{
"models": [
{
"title": "Claude Custom",
"provider": "anthropic",
"model": "claude-3-5-sonnet-20241022",
"completionOptions": {
"temperature": 0.3,
"maxTokens": 4096,
"topP": 0.95,
"topK": 40,
"presencePenalty": 0,
"frequencyPenalty": 0
}
}
]
}Prompt templates
{
"promptTemplates": {
"edit": "Please edit the following code according to these instructions:\n\n{{{userInput}}}\n\nCode:\n```\n{{{selectedText}}}\n```",
"chat": "Context:\n{{{contextItems}}}\n\nQuestion: {{{userInput}}}",
"autocomplete": "{{{prefix}}}"
}
}Request options
{
"requestOptions": {
"timeout": 60000,
"verifySsl": true,
"headers": {
"X-Custom-Header": "value"
}
}
}Tool integrations
Git integration
Continue automatically detects git context:
@git show me recent changes
@git what changed in the last commit?
@diff explain these changesTerminal integration
@terminal show recent commands
@terminal what was the last error?Problem integration
@problems fix all TypeScript errors
@problems what errors do we have?Keyboard shortcuts
VS Code shortcuts
| Shortcut | Action |
|---|---|
Cmd+L | Open chat |
Cmd+I | Inline edit |
Cmd+Shift+L | Add to chat |
Cmd+Shift+R | Regenerate response |
Tab | Accept autocomplete |
Esc | Dismiss autocomplete |
Cmd+Shift+Enter | Submit |
Cmd+Delete | Clear chat |
JetBrains shortcuts
| Shortcut | Action |
|---|---|
Ctrl+L | Open chat |
Ctrl+I | Inline edit |
Ctrl+Shift+L | Add to chat |
Tab | Accept autocomplete |
Customizing shortcuts
// VS Code keybindings.json
[
{
"key": "cmd+shift+c",
"command": "continue.chat"
},
{
"key": "cmd+shift+e",
"command": "continue.edit"
}
]Provider-specific setup
Azure OpenAI
{
"models": [
{
"title": "Azure GPT-4",
"provider": "azure",
"model": "gpt-4",
"apiKey": "your-azure-key",
"apiBase": "https://your-resource.openai.azure.com",
"apiVersion": "2024-02-15-preview",
"deployment": "your-deployment-name"
}
]
}AWS Bedrock
{
"models": [
{
"title": "Claude via Bedrock",
"provider": "bedrock",
"model": "anthropic.claude-3-sonnet-20240229-v1:0",
"region": "us-east-1"
}
]
}Google AI (Gemini)
{
"models": [
{
"title": "Gemini Pro",
"provider": "google",
"model": "gemini-1.5-pro",
"apiKey": "your-google-api-key"
}
]
}Groq (ultra-fast inference)
{
"models": [
{
"title": "Llama via Groq",
"provider": "groq",
"model": "llama-3.1-70b-versatile",
"apiKey": "gsk_xxx"
}
]
}Together AI
{
"models": [
{
"title": "Mistral via Together",
"provider": "together",
"model": "mistralai/Mixtral-8x7B-Instruct-v0.1",
"apiKey": "your-together-key"
}
]
}LM Studio
{
"models": [
{
"title": "LM Studio Model",
"provider": "lmstudio",
"model": "local-model",
"apiBase": "http://localhost:1234/v1"
}
]
}OpenRouter
{
"models": [
{
"title": "Claude via OpenRouter",
"provider": "openrouter",
"model": "anthropic/claude-3.5-sonnet",
"apiKey": "sk-or-xxx"
}
]
}Use cases
Code review
/review
# Or more specifically:
Review this code for:
- Security vulnerabilities
- Performance issues
- Code smells
- TypeScript best practicesRefactoring
/edit Extract this logic into a custom hook
# Or through chat:
@file src/components/UserForm.tsx
How can I refactor this to be more maintainable?Documentation
/doc
# Or:
Add comprehensive documentation including:
- Function purpose
- Parameters with types
- Return value
- Usage examplesTesting
/test
# Or:
Write unit tests using Vitest for this function.
Include edge cases and error scenarios.Debugging
I'm getting this error:
[paste error]
@file src/utils/api.ts
What might be causing this?Learning
@docs https://react.dev
Explain how useMemo works and when I should use itSecurity and privacy
Local models (maximum privacy)
{
"models": [
{
"title": "Local Llama",
"provider": "ollama",
"model": "llama3:8b"
}
],
"tabAutocompleteModel": {
"provider": "ollama",
"model": "starcoder2:3b"
},
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text"
}
}Telemetry
{
"allowAnonymousTelemetry": false
}Data handling
Continue:
- Does not store your code on any servers
- Does not train models on your code
- Sends code only to the API provider you choose
- With local models - no data leaves your computer
Comparison with other tools
Continue vs Cursor
| Feature | Continue | Cursor |
|---|---|---|
| Open Source | Yes | No |
| IDE | VS Code, JetBrains | Custom (VS Code fork) |
| Local models | Yes | Limited |
| Price | Free (BYOK) | $20/mo |
| Customization | Full | Limited |
Continue vs Cody
| Feature | Continue | Cody |
|---|---|---|
| Open Source | Yes | Yes |
| Codebase context | Embeddings | Sourcegraph |
| Local models | Yes | Limited |
| Enterprise | Self-host | Sourcegraph |
| Price | Free | Free + Pro $9/mo |
Continue vs Tabnine
| Feature | Continue | Tabnine |
|---|---|---|
| Open Source | Yes | No |
| Chat | Yes | Yes |
| Local models | Any | Tabnine only |
| Price | Free (BYOK) | Free + Pro $12/mo |
Troubleshooting
Continue cannot see Ollama
# Check if Ollama is running
curl http://localhost:11434/api/tags
# If it doesn't respond:
ollama serve
# Check available models
ollama listAutocomplete is not working
- Check that
tabAutocompleteModelis configured - Check that the model has been pulled (for Ollama)
- Check the logs:
Continue: Show Logs
Slow responses
- For local models - use a smaller model (7B instead of 70B)
- Check if the GPU is being utilized
- Increase the
debounceDelayfor autocomplete
API errors
{
"requestOptions": {
"timeout": 120000,
"verifySsl": false
}
}Resetting the configuration
# Backup
cp ~/.continue/config.json ~/.continue/config.json.bak
# Reset
rm ~/.continue/config.json
# Restart VS Code/IDEMigrating from GitHub Copilot
Step 1: Install Continue
code --install-extension Continue.continueStep 2: Copilot-like configuration
{
"models": [
{
"title": "GPT-4 Turbo",
"provider": "openai",
"model": "gpt-4-turbo",
"apiKey": "sk-xxx"
}
],
"tabAutocompleteModel": {
"title": "GPT-3.5 Turbo",
"provider": "openai",
"model": "gpt-3.5-turbo",
"apiKey": "sk-xxx"
}
}Step 3: Disable Copilot
code --uninstall-extension GitHub.copilotPricing
Continue
- 100% free - Apache 2.0 license
- BYOK (Bring Your Own Key)
- You only pay for model API usage
API costs (examples)
| Model | Provider | Price (input/output) |
|---|---|---|
| Claude 3.5 Sonnet | Anthropic | $3/$15 per 1M tokens |
| GPT-4 Turbo | OpenAI | $10/$30 per 1M tokens |
| Llama 3 70B | Groq | $0.59/$0.79 per 1M tokens |
| Local models | Ollama | $0 (hardware only) |
Savings vs Copilot
- Copilot: $10-19/mo = $120-228/year
- Continue + Local models: $0
- Continue + API: ~$5-20/mo (depending on usage)
FAQ - frequently asked questions
Is Continue as good as Copilot?
With the right model (Claude 3.5 Sonnet, GPT-4) - yes, often better. On top of that, you get full control over models and privacy.
What models do you recommend for coding?
- Best quality: Claude 3.5 Sonnet or GPT-4 Turbo
- Quality/price balance: Llama 3.1 70B (Groq) or DeepSeek Coder
- Local: Llama 3 8B or CodeLlama 34B
- Autocomplete: Starcoder2 3B or DeepSeek Coder 6.7B
Can I use Continue offline?
Yes, with local models through Ollama. You need sufficient computing power (at least 8GB RAM for 7B models).
Does Continue work with my programming language?
Yes, Continue works with any language. Quality depends on the chosen model - most models handle popular languages well.
How do I switch from Cursor to Continue?
Continue is a VS Code extension - you don't need to change your IDE. Simply install Continue in VS Code and configure your preferred models.
Can I use Continue in a team?
Yes, you can:
- Share config.json in your repo
- Use environment variables for API keys
- Self-host models for the entire team