DeepSeek in Whittl¶
DeepSeek is the cheapest tier-S option by a wide margin. Typical Whittl operations cost $0.005–$0.02 — about 1/10th of Claude Sonnet pricing for comparable code quality on Python-heavy work.
Whittl talks to DeepSeek's V4 line. You pick a tier in the dropdown next to the backend selector rather than typing a model name, because DeepSeek retired the old deepseek-chat and deepseek-reasoner aliases in July 2026.
Getting a key¶
- Go to platform.deepseek.com.
- Sign up.
- Add credit — $5 minimum, lasts a long time on DeepSeek's pricing.
- API Keys > create a key (starts with
sk-).
Add it in Whittl from the key button next to the backend dropdown in the chat panel, in the DeepSeek API Key field.
Picking a model¶
The dropdown offers three tiers.
Flash (cheap)¶
The default and the one to leave selected. Fast, economical, and still a hybrid thinker, so the Think checkbox works on it. Handles the great majority of Whittl work.
Pro (smart)¶
Meant for the hardest problems. Since 2026-09-14 DeepSeek has answered requests for Pro with V4.1 Flash, billed at the Flash price. Whittl prices each request by the model that answered, and the chat labels the reply with that model, so you can see when this happens. If Pro is unavailable, Whittl falls back to Flash rather than failing the request, and says so in the chat.
Vision (images)¶
DeepSeek's first vision model, added to their API in August 2026 and still flagged experimental by DeepSeek, so the model id may change under you. Flash-class quality, 384 tokens per image, up to 600 images per request, JPEG / PNG / GIF / WebP.
This tier deliberately does not fall back to a text-only tier. A silent downgrade would drop your image and answer from the prompt alone, which reads like a working reply and is the worst kind of failure.
Check api-docs.deepseek.com for current pricing; DeepSeek moves it more often than most.
Prefix caching¶
DeepSeek automatically caches identical prompt prefixes. A cached token costs about 2% of a fresh one (V4.1 rates, September 2026), and Whittl's agent loop resends the same prefix on every round, so most of a long turn is billed at the cached rate. Similar to Gemini Flash's automatic caching but with different rules:
- DeepSeek caches by prefix hash. Identical 4KB+ blocks at the start of prompts get cached.
- Cache duration: short-lived (~5 minutes without use). Rapid iterations benefit most.
- Visible savings: the cost readout at the bottom right of the window shows the cached part, for example
48,210 tokens (41,000 cached).
In practice: rapid iteration on one project gets cheap very fast.
Vision¶
Flash and Pro cannot read images. When you attach one on those tiers, Whittl has a vision model describe it first (DeepSeek's own vision tier, then any other vision route you have set up) and gives the description to the code model with your message. To have the code model look at the picture itself, pick the Vision (images) tier.
Because the tier is experimental, keep a second vision route configured for anything important. Preferences > Vision (Image Input) can send images through OpenRouter on your existing key while DeepSeek keeps writing the code.
Rate limits¶
DeepSeek's rate limits are generous but can fluctuate during peak hours:
- No-credit account: severely restricted
- Funded account ($5+): typical 30-60 requests/min
- Peak hours (US evening, China business hours): occasional 429 rate-limit errors
Whittl retries automatically with backoff. If peak-hour latency bothers you, keep a fallback backend configured (OpenRouter + Claude Haiku is a common pair).
Tool use¶
V4 handles Whittl's tool-use path cleanly. edit_code, syntax_check, create_file and run_code all fire correctly, and surgical edits work the same as on Claude, faster and cheaper per round.
Changed in v2.6.0: the direct backend is scored like every other model. Flash and Pro rate tier S and the vision tier A, so DeepSeek direct gets the full agent loop, keeps the conversation between turns, and with Agent Mode on gets the longer round budget and the shell tool. Before v2.6.0 it was treated as tier B and Agent Mode unlocked nothing. See The Agent Loop and Agent Mode.
DeepSeek pricing¶
Peak and off-peak hours¶
Since 2026-09-10 DeepSeek charges by the clock. Peak hours are 01:00 to 04:00 and 06:00 to 10:00 UTC, Monday to Friday; every other hour is off-peak, at half the peak price. Whittl prices each request at the rate in force when it was made, so the cost readout and the Usage tab follow DeepSeek's bill, and older history keeps the rates it was billed at.
If your heavy sessions can move, off-peak is the same model at half the price.
Lean on prefix caching¶
Work in short bursts on one project. Rapid-fire prompts within a 5-minute window benefit most from the cache. If you come back 15 minutes later, you've lost it.
Flash vs Pro¶
Flash is the cheaper tier and is good enough for most edits. While DeepSeek answers Pro requests with Flash (see above), picking Pro gets the same model at the same price. Switching tiers mid-session is a dropdown change; your project and chat history carry over.
Combine with free OpenRouter models for mixed work¶
Some users: DeepSeek for hard code tasks, an OpenRouter free model for throwaway experiments. Two backends, both budget-tier, covering different needs.
When NOT to use DeepSeek¶
- You need dependable vision. The vision tier is experimental. Claude and Gemini are steadier.
- You need the absolute highest code quality. Claude remains a step ahead on complex architectural tasks.
- You're concerned about hosting region. DeepSeek runs in China; if that's a compliance issue for you, pick another backend.
Troubleshooting¶
Unexpected response format from DeepSeek
Rare but real — sometimes DeepSeek's API returns a malformed response during heavy load. Whittl surfaces this as "DeepSeek: Unexpected response format." Retry the request; usually works on the second try.
Attached image was rejected
The vision tier itself rejected it: check the format (JPEG, PNG, GIF or WebP) and size. On Flash and Pro, Whittl describes the image with a vision model instead of sending it; if no vision route works, the chat says so. Preferences > Vision (Image Input) can route images through OpenRouter.
Rate-limited despite having credit
Heavy load on DeepSeek's side. Wait a minute or switch backends temporarily.
Chinese-language output when I wrote English
Extremely rare, usually a transient API routing issue. Retry; if persistent, restart the Whittl session.
What's next¶
- Choosing a Backend — where DeepSeek fits in the comparison
- Screenshot to App — the vision tier, and when to route around it
- OpenRouter — alternative path to DeepSeek + vision support