Models and providers
DeepCode is model-agnostic: connections are yours, defined once, switchable mid-conversation without losing history.
Connections
Section titled “Connections”A connection is one route to a provider — a template plus your credentials:
deepcode provider set my-openrouter --template openrouter --api-keydeepcode provider set office-vllm --template vllm --api-base http://gpu-box:8000/v1deepcode provider listdeepcode provider test my-openrouter --model deepseek/deepseek-v4-pro--api-keyprompts without echo;--api-key-env NAMEreads an environment variable instead — the config file never holds a literal secret.deepcode provider models <id> --refreshfetches the connection’s live model directory.- Removing is
deepcode provider remove <id>.
Connections live under providers in ~/.deepcode/deepcode_config.json
(named entries under providers.profiles; the classic per-vendor blocks still
work). Project-level config deliberately cannot add connections — credentials
stay user-scoped.
Declared models
Section titled “Declared models”When a gateway serves a model the catalog doesn’t know — or knows wrongly — declare it yourself:
"profiles": { "my-openrouter": { "template": "openrouter", "modelCatalog": "manual", "manualModels": [ { "id": "deepseek/deepseek-v4-pro", "contextWindow": 1048576, "maxOutputTokens": 384000, "reasoningEfforts": ["off", "low", "medium", "high"] } ] }}A declaration is authoritative everywhere the model appears: the /model
picker shows your numbers, and the runtime budgets context with them. Declare
only what you need to correct — absent fields fall through to the built-in
catalog.
Switching in the TUI
Section titled “Switching in the TUI”› /modelopens a picker over every configured connection’s full directory — type to
filter, Tab switches connection scope, Shift+Tab cycles the highlighted
model’s reasoning effort, Enter commits. Or be explicit:
› /model my-openrouter deepseek/deepseek-v4-proSwitching affects future turns only — history is never rewritten, and an active turn finishes on the model it started with.
Reasoning effort
Section titled “Reasoning effort”› /effort high # or: auto · off · low · medium · highEffort is a property of the model: the picker only offers levels the selected
model actually supports (declared or catalog-known). auto lets the provider
decide; off disables extended thinking where the model allows it.
While the model thinks, the status line shows the effort and the newest
thought; Ctrl+O’s verbose mode prints full reasoning summaries when the
provider exposes them.
What the turn footer tells you about cost
Section titled “What the turn footer tells you about cost”· 41s · 38.2k in · 512 outThose are the provider’s own reported token counts, not estimates — the same numbers that drive automatic compaction. If a conversation compacts earlier or later than you expect, this footer is the ground truth to reason from.