We use cookies to enhance your experience on the site
CodeWorlds
Back to collections
Guide29 min read

Continue

Continue is an open-source AI code assistant for VS Code and JetBrains with support for any LLM model - GPT-4, Claude, local models via Ollama. Full control over data and privacy. Free alternative to GitHub Copilot.

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:

  1. 100% Open Source - Apache 2.0 license, pełna transparentność kodu
  2. Dowolny model LLM - GPT-4, Claude, Gemini, Llama, Mistral, CodeLlama, i więcej
  3. Lokalne modele - Pełna prywatność z Ollama, LM Studio, vLLM
  4. Bring Your Own Key - Używaj swoich API keys, płać tylko za użycie
  5. Context providers - Dodaj dokumentację, terminal, search do kontekstu
  6. Slash commands - Szybkie akcje przez /edit, /comment, /share
  7. Tab autocomplete - Inteligentne uzupełnianie kodu jak Copilot

Continue vs GitHub Copilot

CechaContinueGitHub Copilot
Open Source✅ Tak (Apache 2.0)❌ Nie
ModeleDowolne (GPT-4, Claude, lokalne)Tylko modele GitHub/OpenAI
Lokalne modele✅ Ollama, LM Studio, vLLM❌ Brak
Prywatność danych✅ Pełna kontrola⚠️ Dane na serwerach GitHub
CenaDarmowy (BYOK)$10-19/mo
Self-hosting✅ Tak❌ Nie
Chat✅ Wbudowany✅ Copilot Chat
Autocomplete✅ Tab completion✅ Tab completion
IDEVS Code, JetBrainsVS Code, JetBrains, Vim

Instalacja

VS Code

Code
Bash
# Z marketplace
code --install-extension Continue.continue

# Lub przez VS Code:
# 1. Otwórz Extensions (Ctrl+Shift+X)
# 2. Szukaj "Continue"
# 3. Kliknij Install

JetBrains (IntelliJ, PyCharm, WebStorm)

Code
Bash
# Z JetBrains Marketplace:
# 1. Settings → Plugins → Marketplace
# 2. Szukaj "Continue"
# 3. Install
# 4. Restart IDE

Weryfikacja instalacji

Po instalacji:

  1. Otwórz panel Continue (Ctrl+L lub Cmd+L na Mac)
  2. Powinieneś zobaczyć chat interface
  3. Skonfiguruj model w ~/.continue/config.json

Konfiguracja modeli

Struktura config.json

Główny plik konfiguracyjny znajduje się w ~/.continue/config.json:

Code
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)

Code
JSON
{
  "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)

Code
JSON
{
  "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)

Code
JSON
{
  "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

Code
JSON
{
  "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

Code
Bash
# macOS / Linux
curl -fsSL https://ollama.ai/install.sh | sh

# macOS (Homebrew)
brew install ollama

# Windows
# Pobierz installer z https://ollama.com/download

Uruchomienie Ollama

Code
Bash
# 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.7b

Popularne modele do kodowania

Code
Bash
# 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 model

Konfiguracja Ollama w Continue

Code
JSON
{
  "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)

Code
Bash
# Ollama automatycznie wykrywa GPU
# Sprawdź status GPU
ollama ps

# Uruchom z konkretnym GPU
CUDA_VISIBLE_DEVICES=0 ollama serve

Główne funkcje

Chat (Cmd+L / Ctrl+L)

Chat to główna funkcja Continue pozwalająca na rozmowę z AI o kodzie:

Code
TEXT
// 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:

Code
TypeScript
// 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:

Code
TypeScript
// Zacznij pisać...
function calculateTax(

// Continue zasugeruje:
function calculateTax(amount: number, rate: number): number {
  return amount * rate
}

// Naciśnij Tab aby zaakceptować

Konfiguracja autocomplete:

Code
JSON
{
  "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:

Code
TEXT
/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 code

Konfiguracja custom slash commands:

Code
JSON
{
  "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

Code
JSON
{
  "contextProviders": [
    {
      "name": "code",
      "params": {}
    },
    {
      "name": "docs",
      "params": {}
    },
    {
      "name": "terminal",
      "params": {}
    },
    {
      "name": "search",
      "params": {}
    },
    {
      "name": "open",
      "params": {}
    },
    {
      "name": "problems",
      "params": {}
    }
  ]
}

URL Context Provider

Code
JSON
{
  "contextProviders": [
    {
      "name": "url",
      "params": {
        "preset": "docs"
      }
    }
  ]
}

Użycie w chacie:

Code
TEXT
@url https://docs.react.dev/learn/state-a-components-memory
How do I use useState in React?

Codebase Context Provider

Code
JSON
{
  "contextProviders": [
    {
      "name": "codebase",
      "params": {
        "nRetrieve": 25,
        "nFinal": 10,
        "useReranking": true
      }
    }
  ]
}

Użycie:

Code
TEXT
@codebase How is authentication implemented in this project?

File Context Provider

Code
JSON
{
  "contextProviders": [
    {
      "name": "file",
      "params": {}
    }
  ]
}

Użycie:

Code
TEXT
@file src/utils/auth.ts explain this file

Folder Context Provider

Code
JSON
{
  "contextProviders": [
    {
      "name": "folder",
      "params": {}
    }
  ]
}

Użycie:

Code
TEXT
@folder src/components what components do we have?

Custom Documentation

Code
JSON
{
  "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

Code
JSON
{
  "embeddingsProvider": {
    "provider": "ollama",
    "model": "nomic-embed-text",
    "apiBase": "http://localhost:11434"
  }
}

Alternatywne providers

Code
JSON
{
  "embeddingsProvider": {
    "provider": "openai",
    "model": "text-embedding-3-small",
    "apiKey": "sk-xxx"
  }
}
Code
JSON
{
  "embeddingsProvider": {
    "provider": "transformers.js",
    "model": "Xenova/all-MiniLM-L6-v2"
  }
}

Indexing codebase

Code
Bash
# Continue automatycznie indeksuje codebase
# Możesz też wymusić reindex:
# Cmd+Shift+P → "Continue: Rebuild codebase index"

.continueignore

Wyklucz pliki z indeksowania:

Code
GITIGNORE
# .continueignore
node_modules/
dist/
build/
*.min.js
*.lock
coverage/
.next/

Zaawansowana konfiguracja

System prompt customization

Code
JSON
{
  "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

Code
JSON
{
  "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

Code
JSON
{
  "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

Code
JSON
{
  "requestOptions": {
    "timeout": 60000,
    "verifySsl": true,
    "headers": {
      "X-Custom-Header": "value"
    }
  }
}

Integracja z narzędziami

Git integration

Continue automatycznie wykrywa kontekst git:

Code
TEXT
@git show me recent changes
@git what changed in the last commit?
@diff explain these changes

Terminal integration

Code
TEXT
@terminal show recent commands
@terminal what was the last error?

Problem integration

Code
TEXT
@problems fix all TypeScript errors
@problems what errors do we have?

Keyboard shortcuts

VS Code shortcuts

SkrótAkcja
Cmd+LOtwórz chat
Cmd+IEdit inline
Cmd+Shift+LDodaj do chatu
Cmd+Shift+RRegeneruj odpowiedź
TabAkceptuj autocomplete
EscZamknij autocomplete
Cmd+Shift+EnterSubmit
Cmd+DeleteWyczyść chat

JetBrains shortcuts

SkrótAkcja
Ctrl+LOtwórz chat
Ctrl+IEdit inline
Ctrl+Shift+LDodaj do chatu
TabAkceptuj autocomplete

Customization shortcuts

Code
JSON
// VS Code keybindings.json
[
  {
    "key": "cmd+shift+c",
    "command": "continue.chat"
  },
  {
    "key": "cmd+shift+e",
    "command": "continue.edit"
  }
]

Provider-specific setup

Azure OpenAI

Code
JSON
{
  "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

Code
JSON
{
  "models": [
    {
      "title": "Claude via Bedrock",
      "provider": "bedrock",
      "model": "anthropic.claude-3-sonnet-20240229-v1:0",
      "region": "us-east-1"
    }
  ]
}

Google AI (Gemini)

Code
JSON
{
  "models": [
    {
      "title": "Gemini Pro",
      "provider": "google",
      "model": "gemini-1.5-pro",
      "apiKey": "your-google-api-key"
    }
  ]
}

Groq (ultra-fast inference)

Code
JSON
{
  "models": [
    {
      "title": "Llama via Groq",
      "provider": "groq",
      "model": "llama-3.1-70b-versatile",
      "apiKey": "gsk_xxx"
    }
  ]
}

Together AI

Code
JSON
{
  "models": [
    {
      "title": "Mistral via Together",
      "provider": "together",
      "model": "mistralai/Mixtral-8x7B-Instruct-v0.1",
      "apiKey": "your-together-key"
    }
  ]
}

LM Studio

Code
JSON
{
  "models": [
    {
      "title": "LM Studio Model",
      "provider": "lmstudio",
      "model": "local-model",
      "apiBase": "http://localhost:1234/v1"
    }
  ]
}

OpenRouter

Code
JSON
{
  "models": [
    {
      "title": "Claude via OpenRouter",
      "provider": "openrouter",
      "model": "anthropic/claude-3.5-sonnet",
      "apiKey": "sk-or-xxx"
    }
  ]
}

Przypadki użycia

Code review

Code
TEXT
/review

# Lub bardziej szczegółowo:
Review this code for:
- Security vulnerabilities
- Performance issues
- Code smells
- TypeScript best practices

Refactoring

Code
TEXT
/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

Code
TEXT
/doc

# Lub:
Add comprehensive documentation including:
- Function purpose
- Parameters with types
- Return value
- Usage examples

Testing

Code
TEXT
/test

# Lub:
Write unit tests using Vitest for this function.
Include edge cases and error scenarios.

Debugging

Code
TEXT
I'm getting this error:
[paste error]

@file src/utils/api.ts
What might be causing this?

Learning

Code
TEXT
@docs https://react.dev
Explain how useMemo works and when I should use it

Bezpieczeństwo i prywatność

Lokalne modele (maksymalna prywatność)

Code
JSON
{
  "models": [
    {
      "title": "Local Llama",
      "provider": "ollama",
      "model": "llama3:8b"
    }
  ],
  "tabAutocompleteModel": {
    "provider": "ollama",
    "model": "starcoder2:3b"
  },
  "embeddingsProvider": {
    "provider": "ollama",
    "model": "nomic-embed-text"
  }
}

Telemetry

Code
JSON
{
  "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

CechaContinueCursor
Open Source✅ Tak❌ Nie
IDEVS Code, JetBrainsCustom (fork VS Code)
Lokalne modele✅ Tak⚠️ Ograniczone
CenaFree (BYOK)$20/mo
CustomizationPełnaOgraniczona

Continue vs Cody

CechaContinueCody
Open Source✅ Tak✅ Tak
Codebase context✅ Embeddings✅ Sourcegraph
Lokalne modele✅ Tak⚠️ Ograniczone
EnterpriseSelf-hostSourcegraph
CenaFreeFree + Pro $9/mo

Continue vs Tabnine

CechaContinueTabnine
Open Source✅ Tak❌ Nie
Chat✅ Tak✅ Tak
Lokalne modele✅ Dowolne⚠️ Tylko Tabnine
CenaFree (BYOK)Free + Pro $12/mo

Rozwiązywanie problemów

Continue nie widzi Ollama

Code
Bash
# Sprawdź czy Ollama działa
curl http://localhost:11434/api/tags

# Jeśli nie odpowiada:
ollama serve

# Sprawdź dostępne modele
ollama list

Autocomplete nie działa

  1. Sprawdź czy tabAutocompleteModel jest skonfigurowany
  2. Sprawdź czy model jest pobrany (dla Ollama)
  3. Sprawdź logi: Continue: Show Logs

Wolne odpowiedzi

  1. Dla lokalnych modeli - użyj mniejszego modelu (7B zamiast 70B)
  2. Sprawdź czy GPU jest wykorzystywane
  3. Zwiększ debounceDelay dla autocomplete

API errors

Code
JSON
{
  "requestOptions": {
    "timeout": 120000,
    "verifySsl": false
  }
}

Reset konfiguracji

Code
Bash
# Backup
cp ~/.continue/config.json ~/.continue/config.json.bak

# Reset
rm ~/.continue/config.json

# Restart VS Code/IDE

Migracja z GitHub Copilot

Krok 1: Instalacja Continue

Code
Bash
code --install-extension Continue.continue

Krok 2: Konfiguracja podobna do Copilot

Code
JSON
{
  "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
Bash
code --uninstall-extension GitHub.copilot

Cennik

Continue

  • 100% darmowy - Apache 2.0 license
  • BYOK (Bring Your Own Key)
  • Płacisz tylko za API modeli

Koszty API (przykładowe)

ModelProviderCena (input/output)
Claude 3.5 SonnetAnthropic$3/$15 per 1M tokens
GPT-4 TurboOpenAI$10/$30 per 1M tokens
Llama 3 70BGroq$0.59/$0.79 per 1M tokens
Lokalne modeleOllama$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:

  1. Współdzielić config.json w repo
  2. Użyć environment variables dla API keys
  3. 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:

  1. 100% Open Source - Apache 2.0 license, full code transparency
  2. Any LLM model - GPT-4, Claude, Gemini, Llama, Mistral, CodeLlama, and more
  3. Local models - Full privacy with Ollama, LM Studio, vLLM
  4. Bring Your Own Key - Use your own API keys, pay only for usage
  5. Context providers - Add documentation, terminal, search to context
  6. Slash commands - Quick actions via /edit, /comment, /share
  7. Tab autocomplete - Intelligent code completion like Copilot

Continue vs GitHub Copilot

FeatureContinueGitHub Copilot
Open SourceYes (Apache 2.0)No
ModelsAny (GPT-4, Claude, local)GitHub/OpenAI models only
Local modelsOllama, LM Studio, vLLMNone
Data privacyFull controlData on GitHub servers
PriceFree (BYOK)$10-19/mo
Self-hostingYesNo
ChatBuilt-inCopilot Chat
AutocompleteTab completionTab completion
IDEVS Code, JetBrainsVS Code, JetBrains, Vim

Installation

VS Code

Code
Bash
# From the marketplace
code --install-extension Continue.continue

# Or through VS Code:
# 1. Open Extensions (Ctrl+Shift+X)
# 2. Search for "Continue"
# 3. Click Install

JetBrains (IntelliJ, PyCharm, WebStorm)

Code
Bash
# From JetBrains Marketplace:
# 1. Settings → Plugins → Marketplace
# 2. Search for "Continue"
# 3. Install
# 4. Restart IDE

Verifying the installation

After installation:

  1. Open the Continue panel (Ctrl+L or Cmd+L on Mac)
  2. You should see the chat interface
  3. Configure your model in ~/.continue/config.json

Model configuration

config.json structure

The main configuration file is located at ~/.continue/config.json:

Code
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

Code
JSON
{
  "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

Code
JSON
{
  "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

Code
JSON
{
  "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

Code
JSON
{
  "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

Code
Bash
# macOS / Linux
curl -fsSL https://ollama.ai/install.sh | sh

# macOS (Homebrew)
brew install ollama

# Windows
# Download the installer from https://ollama.com/download

Running Ollama

Code
Bash
# 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.7b

Popular models for coding

Code
Bash
# 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 model

Ollama configuration in Continue

Code
JSON
{
  "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)

Code
Bash
# Ollama automatically detects the GPU
# Check GPU status
ollama ps

# Run with a specific GPU
CUDA_VISIBLE_DEVICES=0 ollama serve

Core features

Chat (Cmd+L / Ctrl+L)

Chat is the main Continue feature that lets you have a conversation with AI about your code:

Code
TEXT
// 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:

Code
TypeScript
// 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 reject

Example 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:

Code
TypeScript
// Start typing...
function calculateTax(

// Continue will suggest:
function calculateTax(amount: number, rate: number): number {
  return amount * rate
}

// Press Tab to accept

Autocomplete configuration:

Code
JSON
{
  "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:

Code
TEXT
/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 code

Custom slash commands configuration:

Code
JSON
{
  "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

Code
JSON
{
  "contextProviders": [
    {
      "name": "code",
      "params": {}
    },
    {
      "name": "docs",
      "params": {}
    },
    {
      "name": "terminal",
      "params": {}
    },
    {
      "name": "search",
      "params": {}
    },
    {
      "name": "open",
      "params": {}
    },
    {
      "name": "problems",
      "params": {}
    }
  ]
}

URL context provider

Code
JSON
{
  "contextProviders": [
    {
      "name": "url",
      "params": {
        "preset": "docs"
      }
    }
  ]
}

Usage in chat:

Code
TEXT
@url https://docs.react.dev/learn/state-a-components-memory
How do I use useState in React?

Codebase context provider

Code
JSON
{
  "contextProviders": [
    {
      "name": "codebase",
      "params": {
        "nRetrieve": 25,
        "nFinal": 10,
        "useReranking": true
      }
    }
  ]
}

Usage:

Code
TEXT
@codebase How is authentication implemented in this project?

File context provider

Code
JSON
{
  "contextProviders": [
    {
      "name": "file",
      "params": {}
    }
  ]
}

Usage:

Code
TEXT
@file src/utils/auth.ts explain this file

Folder context provider

Code
JSON
{
  "contextProviders": [
    {
      "name": "folder",
      "params": {}
    }
  ]
}

Usage:

Code
TEXT
@folder src/components what components do we have?

Custom documentation

Code
JSON
{
  "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

Code
JSON
{
  "embeddingsProvider": {
    "provider": "ollama",
    "model": "nomic-embed-text",
    "apiBase": "http://localhost:11434"
  }
}

Alternative providers

Code
JSON
{
  "embeddingsProvider": {
    "provider": "openai",
    "model": "text-embedding-3-small",
    "apiKey": "sk-xxx"
  }
}
Code
JSON
{
  "embeddingsProvider": {
    "provider": "transformers.js",
    "model": "Xenova/all-MiniLM-L6-v2"
  }
}

Indexing the codebase

Code
Bash
# Continue automatically indexes the codebase
# You can also force a reindex:
# Cmd+Shift+P → "Continue: Rebuild codebase index"

.continueignore

Exclude files from indexing:

Code
GITIGNORE
# .continueignore
node_modules/
dist/
build/
*.min.js
*.lock
coverage/
.next/

Advanced configuration

System prompt customization

Code
JSON
{
  "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

Code
JSON
{
  "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

Code
JSON
{
  "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

Code
JSON
{
  "requestOptions": {
    "timeout": 60000,
    "verifySsl": true,
    "headers": {
      "X-Custom-Header": "value"
    }
  }
}

Tool integrations

Git integration

Continue automatically detects git context:

Code
TEXT
@git show me recent changes
@git what changed in the last commit?
@diff explain these changes

Terminal integration

Code
TEXT
@terminal show recent commands
@terminal what was the last error?

Problem integration

Code
TEXT
@problems fix all TypeScript errors
@problems what errors do we have?

Keyboard shortcuts

VS Code shortcuts

ShortcutAction
Cmd+LOpen chat
Cmd+IInline edit
Cmd+Shift+LAdd to chat
Cmd+Shift+RRegenerate response
TabAccept autocomplete
EscDismiss autocomplete
Cmd+Shift+EnterSubmit
Cmd+DeleteClear chat

JetBrains shortcuts

ShortcutAction
Ctrl+LOpen chat
Ctrl+IInline edit
Ctrl+Shift+LAdd to chat
TabAccept autocomplete

Customizing shortcuts

Code
JSON
// VS Code keybindings.json
[
  {
    "key": "cmd+shift+c",
    "command": "continue.chat"
  },
  {
    "key": "cmd+shift+e",
    "command": "continue.edit"
  }
]

Provider-specific setup

Azure OpenAI

Code
JSON
{
  "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

Code
JSON
{
  "models": [
    {
      "title": "Claude via Bedrock",
      "provider": "bedrock",
      "model": "anthropic.claude-3-sonnet-20240229-v1:0",
      "region": "us-east-1"
    }
  ]
}

Google AI (Gemini)

Code
JSON
{
  "models": [
    {
      "title": "Gemini Pro",
      "provider": "google",
      "model": "gemini-1.5-pro",
      "apiKey": "your-google-api-key"
    }
  ]
}

Groq (ultra-fast inference)

Code
JSON
{
  "models": [
    {
      "title": "Llama via Groq",
      "provider": "groq",
      "model": "llama-3.1-70b-versatile",
      "apiKey": "gsk_xxx"
    }
  ]
}

Together AI

Code
JSON
{
  "models": [
    {
      "title": "Mistral via Together",
      "provider": "together",
      "model": "mistralai/Mixtral-8x7B-Instruct-v0.1",
      "apiKey": "your-together-key"
    }
  ]
}

LM Studio

Code
JSON
{
  "models": [
    {
      "title": "LM Studio Model",
      "provider": "lmstudio",
      "model": "local-model",
      "apiBase": "http://localhost:1234/v1"
    }
  ]
}

OpenRouter

Code
JSON
{
  "models": [
    {
      "title": "Claude via OpenRouter",
      "provider": "openrouter",
      "model": "anthropic/claude-3.5-sonnet",
      "apiKey": "sk-or-xxx"
    }
  ]
}

Use cases

Code review

Code
TEXT
/review

# Or more specifically:
Review this code for:
- Security vulnerabilities
- Performance issues
- Code smells
- TypeScript best practices

Refactoring

Code
TEXT
/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

Code
TEXT
/doc

# Or:
Add comprehensive documentation including:
- Function purpose
- Parameters with types
- Return value
- Usage examples

Testing

Code
TEXT
/test

# Or:
Write unit tests using Vitest for this function.
Include edge cases and error scenarios.

Debugging

Code
TEXT
I'm getting this error:
[paste error]

@file src/utils/api.ts
What might be causing this?

Learning

Code
TEXT
@docs https://react.dev
Explain how useMemo works and when I should use it

Security and privacy

Local models (maximum privacy)

Code
JSON
{
  "models": [
    {
      "title": "Local Llama",
      "provider": "ollama",
      "model": "llama3:8b"
    }
  ],
  "tabAutocompleteModel": {
    "provider": "ollama",
    "model": "starcoder2:3b"
  },
  "embeddingsProvider": {
    "provider": "ollama",
    "model": "nomic-embed-text"
  }
}

Telemetry

Code
JSON
{
  "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

FeatureContinueCursor
Open SourceYesNo
IDEVS Code, JetBrainsCustom (VS Code fork)
Local modelsYesLimited
PriceFree (BYOK)$20/mo
CustomizationFullLimited

Continue vs Cody

FeatureContinueCody
Open SourceYesYes
Codebase contextEmbeddingsSourcegraph
Local modelsYesLimited
EnterpriseSelf-hostSourcegraph
PriceFreeFree + Pro $9/mo

Continue vs Tabnine

FeatureContinueTabnine
Open SourceYesNo
ChatYesYes
Local modelsAnyTabnine only
PriceFree (BYOK)Free + Pro $12/mo

Troubleshooting

Continue cannot see Ollama

Code
Bash
# Check if Ollama is running
curl http://localhost:11434/api/tags

# If it doesn't respond:
ollama serve

# Check available models
ollama list

Autocomplete is not working

  1. Check that tabAutocompleteModel is configured
  2. Check that the model has been pulled (for Ollama)
  3. Check the logs: Continue: Show Logs

Slow responses

  1. For local models - use a smaller model (7B instead of 70B)
  2. Check if the GPU is being utilized
  3. Increase the debounceDelay for autocomplete

API errors

Code
JSON
{
  "requestOptions": {
    "timeout": 120000,
    "verifySsl": false
  }
}

Resetting the configuration

Code
Bash
# Backup
cp ~/.continue/config.json ~/.continue/config.json.bak

# Reset
rm ~/.continue/config.json

# Restart VS Code/IDE

Migrating from GitHub Copilot

Step 1: Install Continue

Code
Bash
code --install-extension Continue.continue

Step 2: Copilot-like configuration

Code
JSON
{
  "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
Bash
code --uninstall-extension GitHub.copilot

Pricing

Continue

  • 100% free - Apache 2.0 license
  • BYOK (Bring Your Own Key)
  • You only pay for model API usage

API costs (examples)

ModelProviderPrice (input/output)
Claude 3.5 SonnetAnthropic$3/$15 per 1M tokens
GPT-4 TurboOpenAI$10/$30 per 1M tokens
Llama 3 70BGroq$0.59/$0.79 per 1M tokens
Local modelsOllama$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:

  1. Share config.json in your repo
  2. Use environment variables for API keys
  3. Self-host models for the entire team