We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

This lesson's interactive features are locked, please to keep using them

Providers and Models

OpenCode is an agent. The "brain" behind it (scare-quotes intended) comes from the provider and the model you connect it to. If you don't understand the distinction, discussions about AI-tools can get dumb fast.

You'll hear people say stuff like, "Claude is sooo much better than Gemini," and then, when asked which model, they'll say, "I don't know, I just use the Claude app."

Claude Fable 5.1 (slow, expensive, powerful) and GPT-6 Luna (cheap, fast, less powerful) are very different and have different purposes. It's very important to know the strengths and weaknesses of the models you're using.

Provider vs. Model

  • A provider is the service OpenCode uses a model through, like OpenAI, Anthropic, Google, or OpenCode Go.
  • A model is the specific LLM you use through that provider, like gpt-5, claude-sonnet-4-5, gemini-3.1-pro, or deepseek-v4.1-flash-free.

In OpenCode's config, the full model ID uses the format provider_id/model_id:

  • opencode/deepseek-v4.1-flash-free
  • openai/gpt-5
  • anthropic/claude-sonnet-4-5

So when you choose a model in OpenCode, you're really choosing a provider/model pair.

The same model can be available through several different providers. The company that trained it isn't necessarily the provider you access it through. For example, anthropic/claude-sonnet-4-5 and opencode/claude-sonnet-4-5 are both valid provider/model pairs.

Why It Matters

Model determines raw capability. Provider determines the experience around that capability, things like authentication, pricing, rate limits, latency, uptime, and privacy promises.

Assignment

Tell OpenCode to run and submit the CLI tests from the project root.