At a glance

Provider Auth Chat & completion Offline Agent mode MCP Skills Plugins
Claude Code Anthropic CLI sign-in
GitHub Copilot GitHub device flow
Ollama None (local)
OpenAI-compatible Bearer token

Every provider supports chat and inline completion — that’s the floor. Beyond that, the deeper agent surface (agent-mode notebook editing, MCP servers, Skills, Plugins) is Claude Code only by design: those features integrate with the Claude Code CLI’s session and tool model.

If you need offline operation, Ollama is the only path. If you need agentic behavior, Claude Code is the only path. Most teams pick one for chat and a different one for inline completion — see below.

When to pick which

Use Claude Code if you want the full agent surface — sessions, Skills, Plugins, MCP, agent-mode notebook editing. Claude Code is the deepest integration and the only path to all of those features.

Use GitHub Copilot if you already pay for it and want a familiar chat + inline completion experience. Good model choice via Copilot’s routing, no separate API key to manage.

Use Ollama if you need everything to stay local. Air-gapped environments, sensitive data, or regulated industries. Pick a smaller completion-tuned model for inline completion to keep latency manageable.

Use OpenAI-compatible if you have an existing LLM gateway (LiteLLM, vLLM, an internal proxy) or want to use a non-Anthropic frontier model directly. Particularly useful for managed JupyterHub deployments where a single gateway sees every request.

Mixing providers

NBI keeps separate settings for chat and inline completion so you can mix. Common combinations:

  • Claude Code for chat, Copilot for inline (lighter latency on the per-keystroke path).
  • OpenAI-compatible for chat (your team’s gateway), Ollama for inline (local, fast).
  • Claude Code for everything if you want one consistent agent throughout.

Locking the choice

For deployments where you don’t want users picking arbitrary providers, environment-variable policies pin the selection at the JupyterHub or container level. See Admin for the policy taxonomy.

Install NBI