<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>DeepSeek on KnightLi Blog</title>
        <link>https://knightli.com/en/tags/deepseek/</link>
        <description>Recent content in DeepSeek on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Sun, 24 May 2026 09:52:55 +0800</lastBuildDate><atom:link href="https://knightli.com/en/tags/deepseek/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Two Ways to Use DeepSeek Models with Codex: Local Gateway and OpenRouter BYOK</title>
        <link>https://knightli.com/en/2026/05/24/codex-deepseek-config-ccx-openrouter-byok/</link>
        <pubDate>Sun, 24 May 2026 09:52:55 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/24/codex-deepseek-config-ccx-openrouter-byok/</guid>
        <description>&lt;p&gt;If you want Codex to use DeepSeek, the first instinct is usually to edit &lt;code&gt;~/.codex/config.toml&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-chat&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;base_url&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://api.deepseek.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;That idea can work in some older versions or in regular OpenAI SDK scenarios. But with the current Codex CLI, it can easily run into a lower-level mismatch: custom model providers in Codex use the OpenAI Responses protocol, while DeepSeek&amp;rsquo;s official API is mainly exposed through an OpenAI-compatible Chat Completions interface.&lt;/p&gt;
&lt;p&gt;My local version is currently &lt;code&gt;codex-cli 0.111.0&lt;/code&gt;. &lt;code&gt;codex --help&lt;/code&gt; shows support for configuration entry points such as &lt;code&gt;--config&lt;/code&gt;, &lt;code&gt;--model&lt;/code&gt;, and &lt;code&gt;--profile&lt;/code&gt;. The official OpenAI Codex configuration reference is also explicit: &lt;code&gt;model_providers.&amp;lt;id&amp;gt;.wire_api&lt;/code&gt; currently supports only &lt;code&gt;responses&lt;/code&gt;, and defaults to &lt;code&gt;responses&lt;/code&gt; when omitted.&lt;/p&gt;
&lt;p&gt;DeepSeek&amp;rsquo;s official docs, meanwhile, show the call path as &lt;code&gt;https://api.deepseek.com/chat/completions&lt;/code&gt;, with examples such as &lt;code&gt;client.chat.completions.create(...)&lt;/code&gt;. So the issue is not that DeepSeek cannot be called through OpenAI-style tooling. The issue is that the request semantics Codex sends are not exactly the same as what DeepSeek&amp;rsquo;s native API understands.&lt;/p&gt;
&lt;p&gt;That is why changing &lt;code&gt;base_url&lt;/code&gt; directly to &lt;code&gt;https://api.deepseek.com&lt;/code&gt; may produce symptoms such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The request path does not match, resulting in a 404 or an unexpected response format.&lt;/li&gt;
&lt;li&gt;Multi-turn conversations, tool calls, or patch generation fail during parsing.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tool_calls&lt;/code&gt; order, message structure, or streaming event format does not line up.&lt;/li&gt;
&lt;li&gt;The model seems able to answer a plain prompt, but starts failing once Codex does real work.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The steadier approach is to put a translation layer between Codex and DeepSeek. There are two common routes.&lt;/p&gt;
&lt;h2 id=&#34;method-1-bridge-deepseek-through-a-local-gateway&#34;&gt;Method 1: Bridge DeepSeek Through a Local Gateway
&lt;/h2&gt;&lt;p&gt;A local gateway should do more than simple forwarding. Its job is to convert Responses-style requests from Codex into Chat Completions-style requests that DeepSeek can handle, then convert DeepSeek&amp;rsquo;s result back into a format Codex can consume.&lt;/p&gt;
&lt;p&gt;If you use a local gateway such as ccx, the configuration idea looks roughly like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;profiles&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;deepseek-ccx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-flash&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;model_provider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ccx-bridge&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;model_providers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ccx-bridge&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Local CCX Gateway&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;base_url&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;http://localhost:3000/v1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;env_key&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;DEEPSEEK_API_KEY&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Then set the DeepSeek key in your terminal and start Codex with that profile:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;DEEPSEEK_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;your-deepseek-key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex --profile deepseek-ccx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;In PowerShell:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$env:DEEPSEEK_API_KEY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;your-deepseek-key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;codex&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-profile&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;deepseek-ccx&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;There are two details to watch.&lt;/p&gt;
&lt;p&gt;First, &lt;code&gt;base_url&lt;/code&gt; should point to the gateway endpoint exposed to Codex, not the official DeepSeek address. The gateway calls DeepSeek behind the scenes.&lt;/p&gt;
&lt;p&gt;Second, the correct value for &lt;code&gt;env_key&lt;/code&gt; depends on how the gateway handles authentication. Some gateways read the official DeepSeek key directly. Others ask you to provide a local proxy key, while storing the DeepSeek key in the gateway backend. In that case, &lt;code&gt;env_key&lt;/code&gt; should be changed to whatever environment variable the gateway expects.&lt;/p&gt;
&lt;p&gt;This route is local and controllable, and it is easier to reason about latency and cost. The tradeoff is that you must confirm the gateway really supports the current Responses semantics used by Codex, rather than only acting as a basic Chat Completions proxy.&lt;/p&gt;
&lt;h2 id=&#34;method-2-use-openrouter-byok-as-an-online-bridge&#34;&gt;Method 2: Use OpenRouter BYOK as an Online Bridge
&lt;/h2&gt;&lt;p&gt;If you do not want to run a local gateway, OpenRouter BYOK is another option. BYOK means binding your own upstream provider key to OpenRouter, which then handles routing and forwarding.&lt;/p&gt;
&lt;p&gt;The most common mistake here is the environment variable. Codex is calling OpenRouter, so &lt;code&gt;env_key&lt;/code&gt; should usually be &lt;code&gt;OPENROUTER_API_KEY&lt;/code&gt;, not &lt;code&gt;DEEPSEEK_API_KEY&lt;/code&gt;. The DeepSeek key should be added in OpenRouter&amp;rsquo;s BYOK or provider key settings.&lt;/p&gt;
&lt;p&gt;Example configuration:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;profiles&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;deepseek-openrouter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek/deepseek-chat&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;model_provider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;openrouter&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;model_providers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;openrouter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;OpenRouter&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;base_url&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://openrouter.ai/api/v1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;env_key&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;OPENROUTER_API_KEY&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Start it like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OPENROUTER_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;your-openrouter-key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex --profile deepseek-openrouter
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;PowerShell:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$env:OPENROUTER_API_KEY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;your-openrouter-key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;codex&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-profile&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;deepseek-openrouter&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Then add your DeepSeek provider key in the OpenRouter dashboard. OpenRouter&amp;rsquo;s BYOK documentation says provider keys are stored encrypted and used for routing to the corresponding provider.&lt;/p&gt;
&lt;p&gt;This route saves you from maintaining a local gateway and feels more like using a regular third-party API proxy. The downside is that an online service sits in the middle, so troubleshooting may require checking Codex, OpenRouter, and DeepSeek error messages together.&lt;/p&gt;
&lt;h2 id=&#34;should-you-keep-using-the-deepseek-chat-model-name&#34;&gt;Should You Keep Using the deepseek-chat Model Name?
&lt;/h2&gt;&lt;p&gt;In DeepSeek&amp;rsquo;s documentation as of May 2026, the recommended model names include &lt;code&gt;deepseek-v4-flash&lt;/code&gt; and &lt;code&gt;deepseek-v4-pro&lt;/code&gt;, with a note that compatibility aliases such as &lt;code&gt;deepseek-chat&lt;/code&gt; and &lt;code&gt;deepseek-reasoner&lt;/code&gt; will be deprecated after 2026-07-24.&lt;/p&gt;
&lt;p&gt;For new configurations, it is better to test:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-flash&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If you are using OpenRouter, follow OpenRouter&amp;rsquo;s model naming format, for example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek/deepseek-chat&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The actual available names depend on your gateway or OpenRouter&amp;rsquo;s model page. When the model name is wrong, errors usually look like &lt;code&gt;model not found&lt;/code&gt;, 404, or the provider failing to find the matching endpoint.&lt;/p&gt;
&lt;h2 id=&#34;why-directly-setting-deepseeks-official-base_url-is-not-recommended&#34;&gt;Why Directly Setting DeepSeek&amp;rsquo;s Official base_url Is Not Recommended
&lt;/h2&gt;&lt;p&gt;You can certainly try this as an experiment:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;profiles&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;deepseek-direct&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-flash&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;model_provider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;model_providers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;deepseek&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;DeepSeek&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;base_url&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://api.deepseek.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;env_key&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;DEEPSEEK_API_KEY&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;But this is more of a debugging experiment than a stable setup. Codex talks to custom providers through the Responses protocol, while DeepSeek&amp;rsquo;s official examples use &lt;code&gt;/chat/completions&lt;/code&gt;. If DeepSeek or Codex adds a full compatibility layer later, direct connection may become simple. Until then, a bridge layer is more reliable.&lt;/p&gt;
&lt;h2 id=&#34;what-if-codex-still-uses-openai-after-editing-the-config&#34;&gt;What If Codex Still Uses OpenAI After Editing the Config?
&lt;/h2&gt;&lt;p&gt;First, confirm the config file location. The global config should be:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/config.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The project-level &lt;code&gt;.codex/config.toml&lt;/code&gt; is not the right place for machine-level provider settings such as &lt;code&gt;model_provider&lt;/code&gt; and &lt;code&gt;model_providers&lt;/code&gt;. The official OpenAI docs also note that project-level configuration does not override local provider and authentication fields.&lt;/p&gt;
&lt;p&gt;If Codex still asks you to log in through the web, or appears to use the default OpenAI model, log out first:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex &lt;span class=&#34;nb&#34;&gt;logout&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Some older tutorials write this as &lt;code&gt;/logout&lt;/code&gt; inside the interactive UI. With the current CLI, running &lt;code&gt;codex logout&lt;/code&gt; directly in the terminal is the more reliable option.&lt;/p&gt;
&lt;p&gt;You can also run a quick check with a temporary profile:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex --profile deepseek-ccx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Or:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex -c &lt;span class=&#34;nv&#34;&gt;model_provider&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;ccx-bridge -c &lt;span class=&#34;nv&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;deepseek-v4-flash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If that works, the config itself is readable. If it does not, check the profile name, TOML syntax, and whether the environment variable only exists in the current shell session.&lt;/p&gt;
&lt;h2 id=&#34;troubleshooting-checklist&#34;&gt;Troubleshooting Checklist
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;401&lt;/code&gt;: The key is wrong, or &lt;code&gt;env_key&lt;/code&gt; points to the wrong environment variable.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;404&lt;/code&gt;: &lt;code&gt;base_url&lt;/code&gt; or the model name is wrong, or a Responses request is being sent to an endpoint that only supports Chat Completions.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tool_calls&lt;/code&gt;, patch, or streaming parse errors: the protocol bridge is likely incomplete.&lt;/li&gt;
&lt;li&gt;Still prompted to log in to OpenAI: run &lt;code&gt;codex logout&lt;/code&gt;, then confirm you are using the correct profile.&lt;/li&gt;
&lt;li&gt;PowerShell environment variable disappears in a new window: &lt;code&gt;$env:...&lt;/code&gt; only applies to the current session. Use user environment variables if you need it to persist.&lt;/li&gt;
&lt;li&gt;OpenRouter BYOK is not using your own DeepSeek key: check whether the provider key is bound in OpenRouter, whether the current OpenRouter API key is allowed to use it, and whether fallback is enabled.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;Using DeepSeek with Codex is not impossible through &lt;code&gt;config.toml&lt;/code&gt;. The catch is that changing only &lt;code&gt;base_url&lt;/code&gt; is usually not enough.&lt;/p&gt;
&lt;p&gt;The two steadier routes today are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use a local gateway as a protocol bridge: Codex talks to the local gateway, and the gateway talks to DeepSeek.&lt;/li&gt;
&lt;li&gt;Use OpenRouter BYOK as an online proxy: Codex talks to OpenRouter, while the DeepSeek key is bound in the OpenRouter dashboard.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you only want a quick test, OpenRouter is easier. If you want tighter control over keys, cost, and logs, a local gateway is better for long-term tinkering.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://developers.openai.com/codex/config-reference/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Codex Configuration Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openrouter.ai/docs/use-cases/byok/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenRouter BYOK Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>DeepSeek-TUI: Turning DeepSeek V4 into a Terminal Coding Agent</title>
        <link>https://knightli.com/en/2026/05/16/deepseek-tui-terminal-coding-agent/</link>
        <pubDate>Sat, 16 May 2026 22:41:41 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/16/deepseek-tui-terminal-coding-agent/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Hmbown/DeepSeek-TUI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-TUI&lt;/a&gt; is an open source project that brings DeepSeek V4 into terminal-based development workflows. It is not just a chat wrapper. It is closer to a &amp;ldquo;command-line coding agent&amp;rdquo; like Claude Code or Codex CLI: it can read files, edit code, run commands, call tools, and keep working through tasks in a TUI.&lt;/p&gt;
&lt;p&gt;If you already switch between an editor and a terminal, the value of this kind of tool is straightforward: you do not need to copy code back and forth into a web chat window, and you do not need to manually describe the whole project structure. You give it a task, and it can read context from the current workspace, plan steps, make changes, then return the result for your review.&lt;/p&gt;
&lt;h2 id=&#34;it-solves-the-entry-point-problem-for-deepseek&#34;&gt;It Solves the Entry Point Problem for DeepSeek
&lt;/h2&gt;&lt;p&gt;DeepSeek models already provide strong reasoning and coding capabilities, but model capability needs an engineering layer before it can land in real development workflows.&lt;/p&gt;
&lt;p&gt;Web chat is suitable for asking questions, but not for long-running project edits. APIs are suitable for system integration, but individual developers still need to build tool calling, context management, file operations, and permission control themselves. DeepSeek-TUI tries to fill this layer: it wraps DeepSeek V4 into an Agent that can work inside the terminal.&lt;/p&gt;
&lt;p&gt;According to the project description, its main capabilities include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A terminal TUI;&lt;/li&gt;
&lt;li&gt;Conversation and task execution for DeepSeek V4;&lt;/li&gt;
&lt;li&gt;Tool calling and file operations;&lt;/li&gt;
&lt;li&gt;1M context support;&lt;/li&gt;
&lt;li&gt;Auto mode;&lt;/li&gt;
&lt;li&gt;Sub-agents;&lt;/li&gt;
&lt;li&gt;Sandboxed execution;&lt;/li&gt;
&lt;li&gt;A persistent task queue.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Together, these features are not aimed at making the model sound more human. They are aimed at making the model easier to bring into the development environment.&lt;/p&gt;
&lt;h2 id=&#34;a-tui-fits-long-tasks-better-than-plain-cli-text&#34;&gt;A TUI Fits Long Tasks Better Than Plain CLI Text
&lt;/h2&gt;&lt;p&gt;Many AI CLI tools start with plain text interaction: enter a prompt, wait for output, then copy commands or add more context. This is simple, but longer tasks quickly become messy.&lt;/p&gt;
&lt;p&gt;The advantage of a TUI is that it can place conversations, files, execution results, and task status in a more stable interface. For a coding Agent, that matters. A code task is rarely a single question and answer. It often includes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Understanding the project structure;&lt;/li&gt;
&lt;li&gt;Finding relevant files;&lt;/li&gt;
&lt;li&gt;Editing code;&lt;/li&gt;
&lt;li&gt;Running tests or commands;&lt;/li&gt;
&lt;li&gt;Fixing issues based on errors;&lt;/li&gt;
&lt;li&gt;Summarizing changes.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If the interface is only a stream of logs, it is hard for the user to see where the Agent is in the process. A TUI at least provides a better place to observe and take over.&lt;/p&gt;
&lt;h2 id=&#34;auto-mode-is-best-for-tasks-with-clear-boundaries&#34;&gt;Auto Mode Is Best for Tasks with Clear Boundaries
&lt;/h2&gt;&lt;p&gt;The Auto mode mentioned by DeepSeek-TUI is best for tasks with clear boundaries. For example: fixing a small bug, adding a script, changing a configuration, organizing a set of documents, or implementing a local feature.&lt;/p&gt;
&lt;p&gt;These tasks have something in common: the goal is clear, the verification method is clear, and the impact scope is controllable. The Agent can inspect files, edit files, run commands, and then hand the result back to the user for confirmation.&lt;/p&gt;
&lt;p&gt;But Auto mode should not mean unlimited permission. In real projects, file deletion, large-scale refactors, database migrations, and deployment commands should all require explicit confirmation. The efficiency of coding Agents comes from automation, but so does the risk. The more a tool can execute commands, the more it needs sandboxing, permission boundaries, and human review.&lt;/p&gt;
&lt;h2 id=&#34;sub-agents-matter-because-they-split-tasks&#34;&gt;Sub-Agents Matter Because They Split Tasks
&lt;/h2&gt;&lt;p&gt;Sub-agents are not a new concept, but they are useful in coding scenarios.&lt;/p&gt;
&lt;p&gt;A moderately complex task usually requires several kinds of work at the same time: someone reads the code, someone changes the implementation, someone checks tests, and someone organizes documentation. Traditional multi-agent systems often feel ornamental because they have no real tools or real workspace; they only discuss inside a conversation.&lt;/p&gt;
&lt;p&gt;If sub-agents can work with the file system, command execution, and task queues, they become more like a task decomposition mechanism. For example, one sub-agent can analyze dependencies, another can modify a specific module, and the main agent can integrate the result. This can reduce the problem of putting too much unrelated information into one context.&lt;/p&gt;
&lt;p&gt;Of course, sub-agents also add cost: more tokens, more complex state, and responsibility boundaries that are harder to track. They are better suited to medium-complexity tasks and above, not necessarily every small edit.&lt;/p&gt;
&lt;h2 id=&#34;1m-context-is-not-magic-but-it-helps-with-projects&#34;&gt;1M Context Is Not Magic, but It Helps with Projects
&lt;/h2&gt;&lt;p&gt;1M context sounds exaggerated, but in coding scenarios it is not just a marketing number.&lt;/p&gt;
&lt;p&gt;The context of a real codebase is fragmented: README files, configuration files, type definitions, tests, call chains, historical conventions, and error logs can all affect one change. Longer context can reduce the problem of editing after seeing only a local fragment, and it can help the model retain more project constraints.&lt;/p&gt;
&lt;p&gt;Still, longer context does not automatically mean better judgment. Code tasks still need retrieval, filtering, and verification. Putting an entire project into context is not necessarily better than reading the relevant files precisely. A good coding Agent should treat long context as a buffer, not as a shortcut that replaces engineering judgment.&lt;/p&gt;
&lt;h2 id=&#34;who-it-is-best-for&#34;&gt;Who It Is Best For
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUI is better suited to several groups:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Developers who want to use DeepSeek for coding tasks in the terminal;&lt;/li&gt;
&lt;li&gt;People who do not want to build tool calling and file operation frameworks themselves;&lt;/li&gt;
&lt;li&gt;Users familiar with Claude Code or Codex CLI who want to try a DeepSeek-based entry point;&lt;/li&gt;
&lt;li&gt;People who need local project context instead of only asking about code snippets in a web page;&lt;/li&gt;
&lt;li&gt;Developers who want to put AI coding workflows into a command-line environment.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only occasionally ask how to write a function, web chat is enough. If you want the model to participate directly in project edits, a terminal Agent becomes more meaningful.&lt;/p&gt;
&lt;h2 id=&#34;risks-to-watch&#34;&gt;Risks to Watch
&lt;/h2&gt;&lt;p&gt;There are three things to watch most closely with this kind of tool.&lt;/p&gt;
&lt;p&gt;The first is permissions. As long as a tool can read and write files or execute commands, you need to know what it can access by default, whether it can delete files, whether it can access the network, and whether dangerous commands require confirmation.&lt;/p&gt;
&lt;p&gt;The second is rollback. Before using it, it is best to keep the Git working tree clean, so every Agent change can be clearly seen through &lt;code&gt;git diff&lt;/code&gt;. Do not let an Agent automatically edit a project while many unrelated changes are already uncommitted.&lt;/p&gt;
&lt;p&gt;The third is verification. Code written by an Agent does not mean the task is complete. Tests, builds, linting, and human review still need to remain. AI coding tools can speed up progress, but they cannot replace final engineering confirmation.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;The significance of DeepSeek-TUI is not that it adds another chat client. It puts DeepSeek V4 into a terminal environment that is closer to real development work.&lt;/p&gt;
&lt;p&gt;For developers, model capability is only the first step. The real experience depends on whether it can read a project, safely edit files, run verification commands, maintain state in long tasks, and let the user take over at any time.&lt;/p&gt;
&lt;p&gt;If you want to use DeepSeek for daily code changes, project reading, and automated development tasks, DeepSeek-TUI is worth watching. The direction is also clear: AI coding tools are moving from &amp;ldquo;answering code questions&amp;rdquo; to &amp;ldquo;participating in project execution.&amp;rdquo;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Running DeepSeek 4 Locally: Antirez&#39;s ds4 Experiment on Apple Silicon Mac</title>
        <link>https://knightli.com/en/2026/05/11/deepseek-v4-flash-ds4-metal/</link>
        <pubDate>Mon, 11 May 2026 08:51:37 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/11/deepseek-v4-flash-ds4-metal/</guid>
        <description>&lt;p&gt;Antirez has open sourced a new project: &lt;code&gt;ds4&lt;/code&gt;. It is not a general-purpose LLM framework, but a local inference engine for DeepSeek V4 Flash, with a focus on Apple Silicon and the Metal backend.&lt;/p&gt;
&lt;p&gt;Project URL: &lt;a class=&#34;link&#34; href=&#34;https://github.com/antirez/ds4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/antirez/ds4&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;what-is-ds4&#34;&gt;What is ds4?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ds4&lt;/code&gt; has a clear goal: running DeepSeek V4 Flash locally on a Mac.&lt;/p&gt;
&lt;p&gt;It currently provides three ways to use it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interactive CLI.&lt;/li&gt;
&lt;li&gt;HTTP server.&lt;/li&gt;
&lt;li&gt;An experimental Agent mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Judging from its positioning, it is more like an inference project deeply optimized for one specific model than a replacement for general-purpose tools such as &lt;code&gt;llama.cpp&lt;/code&gt;, Ollama, or vLLM.&lt;/p&gt;
&lt;h2 id=&#34;why-it-is-worth-watching&#34;&gt;Why it is worth watching
&lt;/h2&gt;&lt;p&gt;There are three main reasons this kind of project is worth following.&lt;/p&gt;
&lt;p&gt;First, the author is Antirez, the creator of Redis. He has long focused on low-level systems, performance, and simple tools, and his projects are usually quite direct in style.&lt;/p&gt;
&lt;p&gt;Second, DeepSeek V4 Flash points toward efficient inference. If the local running experience is good enough, it could be very attractive for Mac users.&lt;/p&gt;
&lt;p&gt;Third, &lt;code&gt;ds4&lt;/code&gt; directly targets Apple Metal. Compared with the route of supporting every platform first and optimizing later, it feels more like a project trying to go deep on one well-defined scenario.&lt;/p&gt;
&lt;h2 id=&#34;who-should-try-it&#34;&gt;Who should try it
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ds4&lt;/code&gt; is better suited for users who:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use an Apple Silicon Mac.&lt;/li&gt;
&lt;li&gt;Want to run DeepSeek V4 Flash locally.&lt;/li&gt;
&lt;li&gt;Care about Metal inference performance.&lt;/li&gt;
&lt;li&gt;Are willing to try an alpha-stage project.&lt;/li&gt;
&lt;li&gt;Want to study lightweight inference engines and model runtime details.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your goal is stable deployment, cross-platform operation, or OpenAI API-compatible infrastructure, it may not be the first choice at this stage. It is better treated as an experimental tool and a technical project to watch.&lt;/p&gt;
&lt;h2 id=&#34;how-to-use-it&#34;&gt;How to use it
&lt;/h2&gt;&lt;p&gt;The basic workflow in the project README is to build it first, then run it.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/antirez/ds4.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ds4
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Run it interactively:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./ds4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Start the HTTP server:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./ds4 --server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Agent mode:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./ds4 --agent
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;For exact parameters and model file preparation, follow the repository README, because the project is still changing quickly.&lt;/p&gt;
&lt;h2 id=&#34;current-risks&#34;&gt;Current risks
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ds4&lt;/code&gt; is still at an early stage, so set expectations before using it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Features may be incomplete.&lt;/li&gt;
&lt;li&gt;Parameters, model formats, and command-line behavior may change.&lt;/li&gt;
&lt;li&gt;Compatibility mainly revolves around Apple Silicon and Metal.&lt;/li&gt;
&lt;li&gt;Agent mode is more experimental and is not suitable for direct production use.&lt;/li&gt;
&lt;li&gt;When something breaks, you may need to read the README, issues, or source code yourself.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In other words, it is currently more of an open source experiment worth trying than a one-click tool for ordinary users.&lt;/p&gt;
&lt;h2 id=&#34;how-it-differs-from-general-inference-tools&#34;&gt;How it differs from general inference tools
&lt;/h2&gt;&lt;p&gt;General-purpose inference tools usually aim for broad compatibility across model formats, platforms, backends, and APIs. &lt;code&gt;ds4&lt;/code&gt; takes a narrower path: local DeepSeek V4 Flash inference on Metal.&lt;/p&gt;
&lt;p&gt;That choice has both benefits and trade-offs.&lt;/p&gt;
&lt;p&gt;The benefit is that the implementation can stay focused, making performance and user experience easier to optimize around a single target. The trade-off is a limited scope: it is not meant to run every possible model, nor to replace a complete deployment platform.&lt;/p&gt;
&lt;p&gt;If you already use &lt;code&gt;llama.cpp&lt;/code&gt; or Ollama, &lt;code&gt;ds4&lt;/code&gt; is better treated as a supplementary testing tool, not an immediate replacement for your existing workflow.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;The interesting part of &lt;code&gt;ds4&lt;/code&gt; is not that it is yet another local LLM tool. It is that its scope is intentionally narrow: DeepSeek V4 Flash, Apple Silicon, Metal, and local inference.&lt;/p&gt;
&lt;p&gt;If you have a suitable Mac and are willing to tinker with an early-stage project, it is worth watching its performance, model support approach, and server/agent capabilities. For production environments, it is better to keep observing until the interfaces and usage patterns become more stable.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub project: &lt;a class=&#34;link&#34; href=&#34;https://github.com/antirez/ds4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/antirez/ds4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Why DeepSeek Became the Cost-Saving Key in This Round of AI Coding Tools</title>
        <link>https://knightli.com/en/2026/05/11/deepseek-ai-coding-cost-saving/</link>
        <pubDate>Mon, 11 May 2026 04:59:00 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/11/deepseek-ai-coding-cost-saving/</guid>
        <description>&lt;p&gt;In this round of AI coding tool competition, the surface battle is about model capability, plugin ecosystems, and agent automation. But once you actually use these tools, the first wall you hit is cost.&lt;/p&gt;
&lt;p&gt;Claude Code, Codex, OpenClaw, and Superpowers are all useful, but they share one trait: once a task becomes complex, they eat tokens aggressively. They need to read the project, build a plan, call tools, summarize context, repeatedly check results, and sometimes launch multiple subtasks. The smarter the model and the more automated the workflow, the easier it is for the bill to quietly grow.&lt;/p&gt;
&lt;p&gt;That is why DeepSeek has become important in this cycle. Not merely because it can write code, but because its long context and cache pricing happen to hit the most expensive part of AI coding tools.&lt;/p&gt;
&lt;h2 id=&#34;why-agent-tools-burn-so-many-tokens&#34;&gt;Why Agent Tools Burn So Many Tokens
&lt;/h2&gt;&lt;p&gt;Traditional chat-style coding assistants usually work in question-and-answer mode. You ask how to write a function, and the model returns a code snippet. This still costs tokens, but it is relatively controllable.&lt;/p&gt;
&lt;p&gt;Agent tools are different. They do not just answer questions. They enter the project like a temporary engineer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;scan directories and key files;&lt;/li&gt;
&lt;li&gt;understand the requirement and existing architecture;&lt;/li&gt;
&lt;li&gt;make a plan;&lt;/li&gt;
&lt;li&gt;modify files;&lt;/li&gt;
&lt;li&gt;run commands or tests;&lt;/li&gt;
&lt;li&gt;keep fixing based on errors;&lt;/li&gt;
&lt;li&gt;summarize what changed at the end.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;During this process, the model repeatedly reads the same context. Project descriptions, code snippets, tool outputs, conversation history, plans, and error logs all get placed back into the context. Once the task is a little complex, hundreds of thousands of tokens can disappear quickly.&lt;/p&gt;
&lt;p&gt;If you add more aggressive plugins, the cost becomes even more obvious. Some OpenCode or Claude Code enhancement tools may organize a whole agent team by default. You only wanted to change a small feature, but it may still start planning, review, execution, and retrospective steps. The task may look more &amp;ldquo;intelligent&amp;rdquo;, but the token count keeps climbing.&lt;/p&gt;
&lt;h2 id=&#34;the-advantage-of-superpowers-is-on-demand-activation&#34;&gt;The Advantage of Superpowers Is On-Demand Activation
&lt;/h2&gt;&lt;p&gt;One advantage of tools like Superpowers is that they do not force a full agent workflow onto every task.&lt;/p&gt;
&lt;p&gt;Most of the time, you can still let Claude Code, OpenCode, or Codex work in their normal mode. Only when you explicitly call a skill, such as brainstorming, planning, executing a plan, or doing a retrospective, does it enter a heavier automation flow.&lt;/p&gt;
&lt;p&gt;That matters for cost.&lt;/p&gt;
&lt;p&gt;AI coding should not use heavy artillery for every task. Changing one config line, checking one error, or writing a small script can be handled through ordinary conversation. Only complex refactors, cross-file changes, long-document processing, and multi-round validation deserve a full agent workflow.&lt;/p&gt;
&lt;p&gt;The stronger the tool, the more you need to control when it triggers. Otherwise, more automation simply means more waste.&lt;/p&gt;
&lt;h2 id=&#34;deepseeks-key-advantage-is-cheap-cache-hits&#34;&gt;DeepSeek&amp;rsquo;s Key Advantage Is Cheap Cache Hits
&lt;/h2&gt;&lt;p&gt;One important reason DeepSeek fits these agent tools is its low cache-hit cost.&lt;/p&gt;
&lt;p&gt;AI coding tasks contain a lot of repeated prefixes: project background, system prompts, tool instructions, file content, and earlier conversation turns often appear again in later requests. If the model service supports prompt caching, those repeated parts become much cheaper after a cache hit.&lt;/p&gt;
&lt;p&gt;For many models, a cache hit is only somewhat cheaper than a miss, perhaps around one third of the original price. DeepSeek&amp;rsquo;s advantage is that the gap after a cache hit can be much larger. For long-context, multi-round agent workflows that repeatedly read the same project, this gap shows up directly on the bill.&lt;/p&gt;
&lt;p&gt;In other words, DeepSeek is not necessarily the strongest answer on every single turn. But in scenarios with long tasks, many rounds, and repeated context reads, its cost structure is unusually suitable for AI coding.&lt;/p&gt;
&lt;h2 id=&#34;long-context-makes-claude-code-more-useful&#34;&gt;Long Context Makes Claude Code More Useful
&lt;/h2&gt;&lt;p&gt;When Claude Code or similar tools are connected to DeepSeek V4, another clear advantage is long context.&lt;/p&gt;
&lt;p&gt;AI coding tools fear insufficient context. Once context runs short, compression becomes frequent. Once compression becomes frequent, previously read details may be lost. The model may start forgetting the project structure, constraints, or why a certain file was changed, and quality declines afterward.&lt;/p&gt;
&lt;p&gt;DeepSeek V4&amp;rsquo;s long-context capability makes it better suited for code repositories, document batch processing, subtitle translation, and site article cleanup. Especially when connected to tools like Claude Code or OpenClaw, the right configuration can delay context compression and preserve more project detail.&lt;/p&gt;
&lt;p&gt;That is why some tasks feel &amp;ldquo;durable&amp;rdquo; when run on DeepSeek. It may not be dazzling at every step, but it can tolerate long-running, low-cost, repeated calls.&lt;/p&gt;
&lt;h2 id=&#34;how-to-split-work-between-v4-pro-and-v4-flash&#34;&gt;How to Split Work Between V4 Pro and V4 Flash
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 Pro and V4 Flash should not be mixed casually.&lt;/p&gt;
&lt;p&gt;For simple tasks, &lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; is usually a better fit. It is fast and cheap, and is often enough for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;subtitle translation;&lt;/li&gt;
&lt;li&gt;document cleanup;&lt;/li&gt;
&lt;li&gt;ordinary script generation;&lt;/li&gt;
&lt;li&gt;small code edits;&lt;/li&gt;
&lt;li&gt;lightweight OpenClaw tasks;&lt;/li&gt;
&lt;li&gt;simple site content processing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For complex tasks, consider &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;large-scale refactoring;&lt;/li&gt;
&lt;li&gt;multi-module code understanding;&lt;/li&gt;
&lt;li&gt;complex reasoning;&lt;/li&gt;
&lt;li&gt;long-chain agent tasks;&lt;/li&gt;
&lt;li&gt;high-risk code changes;&lt;/li&gt;
&lt;li&gt;engineering tasks that require stronger planning.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Many people want to attach the strongest model immediately, but that is often uneconomical. The practical way to use AI coding tools is to layer tasks: let the cheaper model handle a large amount of routine work, and reserve the expensive model for key decision points.&lt;/p&gt;
&lt;h2 id=&#34;minimax-doubao-and-deepseek-occupy-different-positions&#34;&gt;MiniMax, Doubao, and DeepSeek Occupy Different Positions
&lt;/h2&gt;&lt;p&gt;Among domestic models and plans, MiniMax, Doubao, Kimi, and DeepSeek each have their own place.&lt;/p&gt;
&lt;p&gt;MiniMax&amp;rsquo;s advantage is generous quota, low price, and broad functionality. It may not be the smartest coding model, but it is cost-effective for translation, lightweight cleanup, and batch processing. For example, batch subtitle processing, format conversion, and simple proofreading are good fits for MiniMax-style plans.&lt;/p&gt;
&lt;p&gt;Doubao&amp;rsquo;s advantage is a broader tool ecosystem: image, video, search, TTS, possible STT, and embedding can be connected together. It feels more like a comprehensive toolbox.&lt;/p&gt;
&lt;p&gt;DeepSeek&amp;rsquo;s position is clearer: text, code, long context, and low-cost caching. It lacks a complete image generation, voice, and video ecosystem, and its weaknesses are obvious. But in AI coding and long-text agent workflows, its strengths are long enough to matter.&lt;/p&gt;
&lt;p&gt;So this is not about one tool replacing another. It is about splitting the task and using each tool where it fits.&lt;/p&gt;
&lt;h2 id=&#34;saving-money-is-not-just-choosing-a-cheap-model&#34;&gt;Saving Money Is Not Just Choosing a Cheap Model
&lt;/h2&gt;&lt;p&gt;Saving money in AI coding does not mean simply switching every request to the cheapest model.&lt;/p&gt;
&lt;p&gt;The effective methods are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Do not start a heavy agent for simple tasks.&lt;/li&gt;
&lt;li&gt;Do not use Pro when Flash is enough.&lt;/li&gt;
&lt;li&gt;Use cache as much as possible for long tasks.&lt;/li&gt;
&lt;li&gt;Keep repeated context stable, so meaningless changes do not break cache hits.&lt;/li&gt;
&lt;li&gt;Let a cheaper model draft and batch-process first, then use a stronger model for key reviews.&lt;/li&gt;
&lt;li&gt;Tell the agent clearly not to repeat facts or summarize the same point again and again.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The last point matters more than it looks. AI tools are prone to verbosity, and verbosity is not only a reading problem; it is also a cost problem. Putting &amp;ldquo;describe each fact once and state each opinion once&amp;rdquo; into the prompt can improve both article quality and token consumption.&lt;/p&gt;
&lt;h2 id=&#34;what-ai-coding-workflows-deepseek-fits-best&#34;&gt;What AI Coding Workflows DeepSeek Fits Best
&lt;/h2&gt;&lt;p&gt;DeepSeek is best suited for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;reading long code repositories;&lt;/li&gt;
&lt;li&gt;lightweight multi-file edits;&lt;/li&gt;
&lt;li&gt;batch document cleanup;&lt;/li&gt;
&lt;li&gt;batch subtitle translation;&lt;/li&gt;
&lt;li&gt;Hugo article cleanup;&lt;/li&gt;
&lt;li&gt;agent plan execution;&lt;/li&gt;
&lt;li&gt;low-cost automation with lots of repeated context.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is not the best fit for every task. If you need especially strong frontend taste, complex product judgment, or cross-modal creation, you may still need Claude, GPT, Gemini, Doubao, or other tools.&lt;/p&gt;
&lt;p&gt;But whenever a task is long-text, long-context, repeated-call, and cost-sensitive, DeepSeek can easily become the first choice.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;In this round of AI coding tools, DeepSeek&amp;rsquo;s value is not just that a domestic model can write code. Its real value is that it addresses the most practical pain point of agent tools: long tasks are too expensive.&lt;/p&gt;
&lt;p&gt;Tools like Claude Code, OpenClaw, and Superpowers make the development process increasingly automated, but behind that automation are massive context reads and multi-round calls. Whoever can lower this part of the cost can make AI coding go from &amp;ldquo;fun once in a while&amp;rdquo; to &amp;ldquo;affordable every day&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;DeepSeek&amp;rsquo;s long context, low cache cost, and layered use of V4 Flash / V4 Pro put it in exactly that position.&lt;/p&gt;
&lt;p&gt;The real cost-saving key in this cycle is not avoiding good models. It is combining good models, cheap models, cache, and agent workflows properly. Once you understand that bill, AI coding tools can become real productivity rather than a beautiful but expensive toy.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>DeepSeek-TUI: Run a DeepSeek Coding Agent in Your Terminal</title>
        <link>https://knightli.com/en/2026/05/08/deepseek-tui-terminal-coding-agent/</link>
        <pubDate>Fri, 08 May 2026 13:41:15 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/08/deepseek-tui-terminal-coding-agent/</guid>
        <description>&lt;p&gt;DeepSeek-TUI is an AI coding agent that runs in the terminal. It is built around DeepSeek V4 models and starts from the &lt;code&gt;deepseek&lt;/code&gt; command. Inside a keyboard-driven TUI, it can read and edit files, run shell commands, search the web, manage git, connect to MCP servers, and coordinate sub-agents.&lt;/p&gt;
&lt;p&gt;It is closer to a terminal workbench than a simple chat CLI. The goal is not only to send a question to a model, but to combine code reading, file edits, commands, diagnostics, session recovery, and workspace rollback in one local workflow.&lt;/p&gt;
&lt;p&gt;The repository is mainly written in Rust and uses the MIT license. Its GitHub description is: “Coding agent for DeepSeek models that runs in your terminal.”&lt;/p&gt;
&lt;h2 id=&#34;who-it-is-for&#34;&gt;Who It Is For
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUI fits developers who prefer terminal workflows and want to use DeepSeek models for real local development tasks.&lt;/p&gt;
&lt;p&gt;It is useful when you want to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use DeepSeek models for code changes and project analysis.&lt;/li&gt;
&lt;li&gt;Work without opening a full IDE.&lt;/li&gt;
&lt;li&gt;Let an AI tool read and modify a local workspace.&lt;/li&gt;
&lt;li&gt;Switch between Plan, Agent, and YOLO modes.&lt;/li&gt;
&lt;li&gt;Save sessions and resume long tasks.&lt;/li&gt;
&lt;li&gt;Roll back workspace changes.&lt;/li&gt;
&lt;li&gt;Connect MCP, LSP diagnostics, HTTP/SSE runtime APIs, and skills.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only need simple Q&amp;amp;A, a web client or lightweight CLI is enough. DeepSeek-TUI is better when the model should become part of your local development loop.&lt;/p&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUI ships Rust binaries. The common entry command is &lt;code&gt;deepseek&lt;/code&gt;, and the companion TUI binary is &lt;code&gt;deepseek-tui&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Using npm:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g deepseek-tui
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model auto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The npm package is an installer and wrapper that downloads prebuilt Rust binaries. It requires Node.js &lt;code&gt;&amp;gt;=18&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Using Cargo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo install deepseek-tui-cli --locked
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo install deepseek-tui --locked
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Using Homebrew:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew tap Hmbown/deepseek-tui
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install deepseek-tui
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;You can also download prebuilt binaries from GitHub Releases. The README lists Linux x64/ARM64, macOS x64/ARM64, and Windows x64 builds.&lt;/p&gt;
&lt;p&gt;Docker:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm -it &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e DEEPSEEK_API_KEY &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$PWD&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;:/workspace&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ghcr.io/hmbown/deepseek-tui:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;In mainland China, use npm or Cargo mirrors, or download release binaries manually.&lt;/p&gt;
&lt;h2 id=&#34;configure-the-api-key&#34;&gt;Configure the API Key
&lt;/h2&gt;&lt;p&gt;On first launch, DeepSeek-TUI asks for your DeepSeek API key and saves it to:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.deepseek/config.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;You can also configure it explicitly:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; --provider deepseek
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Or use an environment variable:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;DEEPSEEK_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;YOUR_KEY&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Check the setup:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek doctor
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If the wrong key source is used, run &lt;code&gt;deepseek auth status&lt;/code&gt;. Saved config keys take precedence over the keyring and environment variables.&lt;/p&gt;
&lt;p&gt;Clear a saved key:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth clear --provider deepseek
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;auto-mode&#34;&gt;Auto Mode
&lt;/h2&gt;&lt;p&gt;Auto mode:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model auto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Inside the TUI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/model auto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Auto mode chooses both:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Model: &lt;code&gt;deepseek-v4-flash&lt;/code&gt; or &lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Thinking: &lt;code&gt;off&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt;, or &lt;code&gt;max&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Before the real request, DeepSeek-TUI makes a small routing call to analyze the latest request and recent context. Simple tasks can stay on Flash with thinking off; coding, debugging, architecture, release, security review, or ambiguous multi-step work can move to Pro or higher thinking.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;auto&lt;/code&gt; is local to DeepSeek-TUI. The upstream API receives the concrete model and thinking setting chosen for that turn. For benchmarks, strict cost control, or fixed behavior, use an explicit model.&lt;/p&gt;
&lt;h2 id=&#34;modes&#34;&gt;Modes
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Mode&lt;/th&gt;
          &lt;th&gt;Use&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Plan&lt;/td&gt;
          &lt;td&gt;Read-only exploration and planning&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Agent&lt;/td&gt;
          &lt;td&gt;Default interactive mode with approval gates&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;YOLO&lt;/td&gt;
          &lt;td&gt;Auto-approve tools in a trusted workspace&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Plan is for investigation. Agent is safer for everyday coding. YOLO is fast but risky and should only be used in trusted workspaces and low-risk branches.&lt;/p&gt;
&lt;h2 id=&#34;tooling&#34;&gt;Tooling
&lt;/h2&gt;&lt;p&gt;The README lists a broad tool set:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;File reads/writes and apply patch.&lt;/li&gt;
&lt;li&gt;Shell execution.&lt;/li&gt;
&lt;li&gt;Git operations.&lt;/li&gt;
&lt;li&gt;Web search and browse.&lt;/li&gt;
&lt;li&gt;Sub-agents.&lt;/li&gt;
&lt;li&gt;MCP servers.&lt;/li&gt;
&lt;li&gt;LSP diagnostics.&lt;/li&gt;
&lt;li&gt;Session save/resume.&lt;/li&gt;
&lt;li&gt;Workspace rollback.&lt;/li&gt;
&lt;li&gt;Durable task queue.&lt;/li&gt;
&lt;li&gt;HTTP/SSE runtime API.&lt;/li&gt;
&lt;li&gt;Skills system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;LSP diagnostics are especially useful because errors from rust-analyzer, pyright, typescript-language-server, gopls, clangd, and similar tools can be fed back after edits.&lt;/p&gt;
&lt;p&gt;Workspace rollback uses side-git snapshots and provides &lt;code&gt;/restore&lt;/code&gt; and &lt;code&gt;revert_turn&lt;/code&gt;. It does not touch the repository’s own &lt;code&gt;.git&lt;/code&gt;, but normal git commits are still the safest baseline.&lt;/p&gt;
&lt;h2 id=&#34;common-commands&#34;&gt;Common Commands
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek &lt;span class=&#34;s2&#34;&gt;&amp;#34;explain this function&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model deepseek-v4-flash &lt;span class=&#34;s2&#34;&gt;&amp;#34;summarize&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model auto &lt;span class=&#34;s2&#34;&gt;&amp;#34;fix this bug&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --yolo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; --provider deepseek
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek doctor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek doctor --json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek models
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek sessions
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek resume --last
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek resume &amp;lt;SESSION_ID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek fork &amp;lt;SESSION_ID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek serve --http
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek serve --acp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek pr &amp;lt;N&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek mcp list
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek mcp validate
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;zed-and-acp&#34;&gt;Zed and ACP
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUI can run as an Agent Client Protocol server:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;agent_servers&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;DeepSeek&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;custom&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;serve&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;--acp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The README notes that the first ACP slice supports new sessions and prompt responses, while tool-backed editing and checkpoint replay are not exposed through ACP yet.&lt;/p&gt;
&lt;h2 id=&#34;configuration-and-providers&#34;&gt;Configuration and Providers
&lt;/h2&gt;&lt;p&gt;User config:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.deepseek/config.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Workspace overlay:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;workspace&amp;gt;/.deepseek/config.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Some sensitive fields, such as &lt;code&gt;api_key&lt;/code&gt;, &lt;code&gt;base_url&lt;/code&gt;, &lt;code&gt;provider&lt;/code&gt;, and &lt;code&gt;mcp_config_path&lt;/code&gt;, are denied in workspace overlays.&lt;/p&gt;
&lt;p&gt;DeepSeek-TUI supports the default &lt;code&gt;deepseek&lt;/code&gt; provider plus NVIDIA NIM, Fireworks, OpenAI-compatible endpoints, SGLang, vLLM, Ollama, and others.&lt;/p&gt;
&lt;p&gt;OpenAI-compatible example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; --provider openai --api-key &lt;span class=&#34;s2&#34;&gt;&amp;#34;YOUR_OPENAI_COMPATIBLE_API_KEY&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENAI_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://openai-compatible.example/v4&amp;#34;&lt;/span&gt; deepseek --provider openai --model glm-5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ollama example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama pull deepseek-coder:1.3b
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --provider ollama --model deepseek-coder:1.3b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;cost-and-context&#34;&gt;Cost and Context
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUI is designed around DeepSeek V4. The README mentions &lt;code&gt;deepseek-v4-pro&lt;/code&gt; and &lt;code&gt;deepseek-v4-flash&lt;/code&gt;, 1M-token context windows, token usage, cost estimates, and prefix-cache telemetry.&lt;/p&gt;
&lt;p&gt;For light tasks, &lt;code&gt;deepseek-v4-flash&lt;/code&gt; or auto mode may be enough. For complex refactors, long-context debugging, and architecture work, use higher thinking or Pro.&lt;/p&gt;
&lt;p&gt;Pricing and discounts change, so check DeepSeek’s official pricing page and the current TUI cost estimates before relying on numbers.&lt;/p&gt;
&lt;h2 id=&#34;suggested-workflow&#34;&gt;Suggested Workflow
&lt;/h2&gt;&lt;p&gt;Start safely:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Try it in a small test repository.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;deepseek doctor&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use Plan mode for read-only exploration.&lt;/li&gt;
&lt;li&gt;Use Agent mode for small edits.&lt;/li&gt;
&lt;li&gt;Review changes with git diff and tests.&lt;/li&gt;
&lt;li&gt;Learn &lt;code&gt;/restore&lt;/code&gt; and session recovery.&lt;/li&gt;
&lt;li&gt;Use YOLO only in trusted temporary branches.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Do not store API keys in project files. For company code, confirm provider, logging, web search, and compliance rules first.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUI is a full terminal AI coding agent. It brings DeepSeek V4, TUI interaction, tool calls, LSP diagnostics, session recovery, rollback, MCP, and skills into one Rust-based workflow.&lt;/p&gt;
&lt;p&gt;It is not the lightest DeepSeek client, but its strength is moving from chat to executable local development.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Hmbown/DeepSeek-TUI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-TUI GitHub repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://deepseek-tui.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-TUI website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.npmjs.com/package/deepseek-tui&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-TUI npm package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.deepseek.com/api_keys&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Keys&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>DeepSeek V4 Local Private Deployment: Choosing Domestic Chips or Consumer GPU Clusters</title>
        <link>https://knightli.com/en/2026/05/08/deepseek-v4-local-private-deployment/</link>
        <pubDate>Fri, 08 May 2026 09:39:35 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/08/deepseek-v4-local-private-deployment/</guid>
        <description>&lt;p&gt;After DeepSeek V4 was released, many enterprises started asking one question: can we avoid external APIs and deploy the model in our own data center, private cloud, or dedicated cluster?&lt;/p&gt;
&lt;p&gt;This is a very practical need. Finance, healthcare, government, manufacturing, legal, and R&amp;amp;D teams often cannot send internal documents, code, contracts, tickets, or customer data directly to public cloud models. For these scenarios, DeepSeek V4 is attractive not only because of model capability, but because it gives enterprises an option closer to controllable LLM infrastructure.&lt;/p&gt;
&lt;p&gt;However, local deployment of DeepSeek V4 is not as simple as downloading a model and finding a few GPUs. Especially for very large MoE models such as Pro, total parameter size, active parameters, context length, KV cache, concurrency, and inference framework all directly affect hardware cost. What enterprises really need is not blindly chasing the full version, but first deciding what deployment shape the business actually needs.&lt;/p&gt;
&lt;h2 id=&#34;clarify-the-deployment-goal-first&#34;&gt;Clarify the Deployment Goal First
&lt;/h2&gt;&lt;p&gt;Enterprise local private deployment usually has three goals:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Keep data inside the domain: internal documents, code, customer materials, logs, and knowledge bases do not leave the enterprise environment.&lt;/li&gt;
&lt;li&gt;Make operations stable and controllable: model services, permissions, audit, logs, and upgrade cadence are controlled by the enterprise.&lt;/li&gt;
&lt;li&gt;Reduce long-term cost: for high-frequency calls, local inference may be more controllable than long-term external API purchases.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If only a few employees ask occasional questions, local deployment may not be cost-effective. Private deployment is truly suitable for high-frequency, stable, data-sensitive, and workflow-defined scenarios, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internal knowledge-base Q&amp;amp;A.&lt;/li&gt;
&lt;li&gt;Code review and development assistants.&lt;/li&gt;
&lt;li&gt;Customer-service ticket summarization.&lt;/li&gt;
&lt;li&gt;Contract, medical-record, and report analysis.&lt;/li&gt;
&lt;li&gt;Database query assistants.&lt;/li&gt;
&lt;li&gt;Agent workflow automation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These scenarios share the same traits: sensitive data, stable call patterns, and the ability to fit into enterprise governance through permissions and logs.&lt;/p&gt;
&lt;h2 id=&#34;do-not-chase-full-pro-from-day-one&#34;&gt;Do Not Chase Full Pro From Day One
&lt;/h2&gt;&lt;p&gt;Common DeepSeek V4 versions include Pro and Flash. In public materials, Pro targets stronger reasoning and complex Agent tasks, while Flash emphasizes cost and response speed. Enterprises should not assume every workload needs Pro.&lt;/p&gt;
&lt;p&gt;You can split tasks by complexity:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Simple Q&amp;amp;A, summarization, classification, and tag generation: prioritize Flash or smaller models.&lt;/li&gt;
&lt;li&gt;Internal knowledge-base retrieval augmentation: Flash is enough for many cases; RAG, permissions, and retrieval quality matter more.&lt;/li&gt;
&lt;li&gt;Code Agents, complex reasoning, and long-context analysis: then evaluate Pro.&lt;/li&gt;
&lt;li&gt;High-value, low-frequency tasks: Pro can be used, but high concurrency may not be necessary.&lt;/li&gt;
&lt;li&gt;Regular office assistants: there is no need to occupy the most expensive inference resources for long periods.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The advantage of MoE models is that each inference only activates part of the parameters, but this does not mean the hardware pressure is small. Weight storage, expert parallelism, network communication, context cache, and concurrent scheduling are still heavy. With 1M-token-level long context in particular, the real resource consumer is often not a single answer, but long context, multi-user concurrency, and persistent sessions.&lt;/p&gt;
&lt;h2 id=&#34;domestic-chip-route-better-for-enterprise-private-cloud&#34;&gt;Domestic Chip Route: Better for Enterprise Private Cloud
&lt;/h2&gt;&lt;p&gt;If an enterprise already has a domestic compute pool, or has requirements around Xinchuang, compliance, or supply-chain control, it can first evaluate domestic chips such as Ascend and Cambricon.&lt;/p&gt;
&lt;p&gt;The advantages of this route are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Better alignment with localization and supply-chain control requirements.&lt;/li&gt;
&lt;li&gt;Suitable for enterprise data centers, dedicated clouds, and government/enterprise projects.&lt;/li&gt;
&lt;li&gt;Easier to unify permissions, audit, resource isolation, and operations.&lt;/li&gt;
&lt;li&gt;Friendlier to long-term stable services.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But the domestic chip route also has three practical issues.&lt;/p&gt;
&lt;p&gt;First, framework adaptation. Whether the model can run depends not only on chip compute power, but also on the maturity of the inference framework, operators, communication libraries, quantization formats, MoE expert parallelism, and long-context optimization.&lt;/p&gt;
&lt;p&gt;Second, engineering experience. Enterprises need more than &amp;ldquo;it starts successfully&amp;rdquo;; they need stable services: multi-tenancy, rate limiting, monitoring, failure recovery, gray releases, log audit, and permission isolation all need to be built.&lt;/p&gt;
&lt;p&gt;Third, ecosystem differences. The same model will not have identical performance, accuracy, quantization support, or deployment tools on NVIDIA, Ascend, Cambricon, and other platforms. Before launch, real stress testing is required instead of relying only on nominal compute.&lt;/p&gt;
&lt;p&gt;Therefore, domestic chips are more suitable for enterprises with clear budgets, high compliance requirements, and willingness to invest in platform engineering. It is not the easiest route, but it may be the route that best fits long-term governance.&lt;/p&gt;
&lt;h2 id=&#34;consumer-gpu-clusters-better-for-pilots-and-small-teams&#34;&gt;Consumer GPU Clusters: Better for Pilots and Small Teams
&lt;/h2&gt;&lt;p&gt;If the goal is to validate business value first, a consumer GPU cluster is easier to start with. GPUs such as RTX 4090, RTX 5090, RTX 3090, and RTX 3060 12GB have more community tools, quantized models, and local inference references, so trial-and-error cost is lower.&lt;/p&gt;
&lt;p&gt;The consumer GPU route fits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internal pilots by R&amp;amp;D teams.&lt;/li&gt;
&lt;li&gt;Knowledge-base Q&amp;amp;A for small and medium businesses.&lt;/li&gt;
&lt;li&gt;Low-concurrency code assistants.&lt;/li&gt;
&lt;li&gt;Offline document processing.&lt;/li&gt;
&lt;li&gt;Internal tools without strict SLA requirements.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But it also has obvious limits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VRAM is small, making it hard to host a full large model directly.&lt;/li&gt;
&lt;li&gt;Multi-GPU communication is weak, and cross-machine communication is more troublesome.&lt;/li&gt;
&lt;li&gt;Long-term full-load stability is weaker than server-grade solutions.&lt;/li&gt;
&lt;li&gt;Chassis, power, cooling, drivers, and operations become hidden costs.&lt;/li&gt;
&lt;li&gt;It is not suitable for promising enterprise-grade high availability from the start.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A more realistic approach is to first run Flash, distilled versions, quantized versions, or smaller models on consumer GPUs, get the business workflow working, and then decide whether to migrate to server GPUs or a domestic compute platform after call volume, quality, and data governance have been validated.&lt;/p&gt;
&lt;h2 id=&#34;a-possible-deployment-architecture&#34;&gt;A Possible Deployment Architecture
&lt;/h2&gt;&lt;p&gt;A relatively stable enterprise private architecture can be divided into six layers:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Model layer: DeepSeek V4 Pro, V4 Flash, or smaller distilled models selected by task.&lt;/li&gt;
&lt;li&gt;Inference layer: SGLang, vLLM, llama.cpp, vendor NPU inference stacks, or enterprise self-developed services.&lt;/li&gt;
&lt;li&gt;Gateway layer: unified authentication, rate limiting, audit, model routing, and call logs.&lt;/li&gt;
&lt;li&gt;Knowledge layer: vector database, full-text search, document parsing, permission filtering, and RAG.&lt;/li&gt;
&lt;li&gt;Application layer: customer service, code assistants, document analysis, report Q&amp;amp;A, and Agent workflows.&lt;/li&gt;
&lt;li&gt;Operations layer: monitoring, alerts, cost statistics, gray releases, rollback, and security audit.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The gateway layer and knowledge layer are the easiest to underestimate. Many projects fail not because the model is completely unusable, but because permissions, retrieval, logs, context management, prompt templates, and business workflows were not done well.&lt;/p&gt;
&lt;p&gt;When deploying LLMs internally, enterprises should treat the model as infrastructure, not as an isolated chat page. The real value appears only when the model enters workflows and can stably process the enterprise&amp;rsquo;s own data and tasks.&lt;/p&gt;
&lt;h2 id=&#34;hardware-selection&#34;&gt;Hardware Selection
&lt;/h2&gt;&lt;p&gt;Hardware selection should not only ask &amp;ldquo;can it run&amp;rdquo;; it should also ask &amp;ldquo;can it serve stably&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;You can choose by stage:&lt;/p&gt;
&lt;h3 id=&#34;validation-stage&#34;&gt;Validation Stage
&lt;/h3&gt;&lt;p&gt;The goal is to prove whether the business is worth doing.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use 1-4 consumer GPUs.&lt;/li&gt;
&lt;li&gt;Prioritize Flash, smaller models, distilled models, or quantized models.&lt;/li&gt;
&lt;li&gt;Keep concurrency low and focus on task completion rate.&lt;/li&gt;
&lt;li&gt;Do not promise high availability.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Do not buy large-scale hardware too early at this stage. First confirm whether employees actually use it, whether the business really saves time, and whether answers can enter real workflows.&lt;/p&gt;
&lt;h3 id=&#34;pilot-stage&#34;&gt;Pilot Stage
&lt;/h3&gt;&lt;p&gt;The goal is to let one department or one business line use it steadily.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use 4-16 GPUs or a set of domestic NPU nodes.&lt;/li&gt;
&lt;li&gt;Add a unified gateway, logs, and permission controls.&lt;/li&gt;
&lt;li&gt;Build RAG, document parsing, model routing, and caching.&lt;/li&gt;
&lt;li&gt;Start tracking tokens, concurrency, latency, and failure rate.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At this stage, operations begin to matter. Model quality is only one part; stability, cost, and data governance are equally important.&lt;/p&gt;
&lt;h3 id=&#34;production-stage&#34;&gt;Production Stage
&lt;/h3&gt;&lt;p&gt;The goal is to enter enterprise-grade service.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use server GPUs, domestic compute clusters, or private-cloud resource pools.&lt;/li&gt;
&lt;li&gt;Build multi-replica deployment, rate limiting, failover, and capacity planning.&lt;/li&gt;
&lt;li&gt;Route models by task: simple tasks use lightweight models, complex tasks use Pro.&lt;/li&gt;
&lt;li&gt;Connect to enterprise identity systems, audit systems, and security policies.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In production, it is not recommended to send every request to the strongest model. Proper model routing usually saves more money than simply adding hardware.&lt;/p&gt;
&lt;h2 id=&#34;choosing-an-inference-framework&#34;&gt;Choosing an Inference Framework
&lt;/h2&gt;&lt;p&gt;Models such as DeepSeek V4 have high requirements for inference frameworks. When MoE, long context, sparse attention, quantization, and multi-GPU parallelism are involved, framework maturity directly affects speed and stability.&lt;/p&gt;
&lt;p&gt;Common choices can be understood this way:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;SGLang&lt;/code&gt;: suitable for teams focused on high-performance inference, Agents, multi-turn tool calls, and complex service orchestration.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vLLM&lt;/code&gt;: mature ecosystem, suitable for general LLM services, but actual support depends on version and model adaptation progress.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;llama.cpp&lt;/code&gt;: better for small models, quantized models, and edge deployment; not suitable for directly hosting a full very large MoE model.&lt;/li&gt;
&lt;li&gt;Domestic NPU inference stacks: suitable for Xinchuang and domestic compute environments, but operator, quantization, and long-context support must be carefully verified.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Do not choose a framework only by benchmark. Enterprises should test their own real inputs: internal document length, concurrency, average output length, RAG hit rate, number of Agent tool calls, and retry count after failures.&lt;/p&gt;
&lt;h2 id=&#34;data-security-must-be-built-outside-the-model&#34;&gt;Data Security Must Be Built Outside the Model
&lt;/h2&gt;&lt;p&gt;Private deployment does not automatically mean security. Running the model locally only solves part of the question of whether data leaves the enterprise.&lt;/p&gt;
&lt;p&gt;You still need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Accounts and permissions: different departments can only access their own knowledge bases.&lt;/li&gt;
&lt;li&gt;Log audit: who asked what, which model was called, and which documents were accessed.&lt;/li&gt;
&lt;li&gt;Data masking: customer information, ID numbers, phone numbers, contract amounts, and other sensitive fields must be handled.&lt;/li&gt;
&lt;li&gt;Prompt security: prevent users from bypassing permissions or leaking system prompts through prompts.&lt;/li&gt;
&lt;li&gt;Output review: important scenarios need human review or rule-based review.&lt;/li&gt;
&lt;li&gt;Data lifecycle: uploaded documents, vector indexes, caches, and session records must be deletable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Enterprise local LLM deployment cannot involve only the algorithm team. Security, legal, operations, and business owners should all participate; otherwise, risks will be exposed after launch.&lt;/p&gt;
&lt;h2 id=&#34;cost-is-more-than-gpus&#34;&gt;Cost Is More Than GPUs
&lt;/h2&gt;&lt;p&gt;The cost of local deployment is often underestimated. Beyond GPUs or NPUs, you also need to count:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Servers, racks, power, cooling, and networking.&lt;/li&gt;
&lt;li&gt;Storage and backup.&lt;/li&gt;
&lt;li&gt;Inference framework adaptation and engineering development.&lt;/li&gt;
&lt;li&gt;Operations monitoring and incident handling.&lt;/li&gt;
&lt;li&gt;Model upgrades, rollback, and compatibility tests.&lt;/li&gt;
&lt;li&gt;Security audit and permission systems.&lt;/li&gt;
&lt;li&gt;Business-side prompts, RAG, and workflow construction.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If call volume is very low, external APIs may be cheaper. If call volume is high, data is sensitive, and workflows are stable, local deployment is more likely to amortize cost.&lt;/p&gt;
&lt;p&gt;A more reasonable strategy is hybrid deployment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Highly sensitive data goes to local models.&lt;/li&gt;
&lt;li&gt;Low-sensitivity general tasks can use external APIs.&lt;/li&gt;
&lt;li&gt;Simple tasks use small models.&lt;/li&gt;
&lt;li&gt;Complex tasks use DeepSeek V4 Pro.&lt;/li&gt;
&lt;li&gt;High-frequency tasks prioritize caching, retrieval, and model routing optimization.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;recommended-rollout-path&#34;&gt;Recommended Rollout Path
&lt;/h2&gt;&lt;p&gt;Enterprises can proceed in this order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Choose 2-3 high-value scenarios first; do not roll out company-wide.&lt;/li&gt;
&lt;li&gt;Use consumer GPUs or small-scale compute for a PoC.&lt;/li&gt;
&lt;li&gt;Run Flash, distilled models, or quantized models first, and connect RAG and permissions.&lt;/li&gt;
&lt;li&gt;Introduce Pro for comparison tests on complex tasks.&lt;/li&gt;
&lt;li&gt;Record real call volume, latency, failure rate, and time saved by humans.&lt;/li&gt;
&lt;li&gt;Then decide whether to purchase domestic chip clusters or server GPUs.&lt;/li&gt;
&lt;li&gt;Before production, complete gateway, audit, monitoring, rate limiting, and rollback.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This path is more stable than buying a large cluster from the start. The biggest enterprise risk is not that the model is not strong enough, but that a lot of money is spent before the business workflow is ready to absorb the model capability.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 gives enterprises more room to imagine local private deployment, but it is not simply a &amp;ldquo;local ChatGPT&amp;rdquo;. The real difficulty is engineering: hardware, frameworks, model routing, permissions, RAG, audit, monitoring, and cost control all need to be considered together.&lt;/p&gt;
&lt;p&gt;The domestic chip route better fits enterprises with high compliance requirements and long-term private cloud plans. Consumer GPU clusters are better for pilots and quick validation by small and medium teams. Pro fits complex reasoning and Agent tasks; Flash or smaller models fit many ordinary tasks.&lt;/p&gt;
&lt;p&gt;If you only remember one sentence: DeepSeek V4 private deployment should not start with hardware procurement, but with business scenarios, data boundaries, and call volume. First get the scenario working, then decide whether to use a large model, how large it should be, and what compute platform to use.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://apnews.com/article/deepseek-ai-china-gpt-v4-d2ed33f2521917193616e061674d5f92&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;AP News: DeepSeek launches an update of its AI model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/blog/deepseekv4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Hugging Face Blog: DeepSeek-V4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.lmsys.org/blog/2026-04-25-deepseek-v4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;LMSYS Blog: DeepSeek-V4 on Day 0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>How to Use DeepSeek V4 Pro in Cline</title>
        <link>https://knightli.com/en/2026/05/01/use-deepseek-v4-pro-in-cline/</link>
        <pubDate>Fri, 01 May 2026 20:59:06 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/01/use-deepseek-v4-pro-in-cline/</guid>
        <description>&lt;p&gt;Cline already supports the OpenAI Compatible Provider.
DeepSeek API is also compatible with OpenAI SDK-style calls, so connecting &lt;code&gt;deepseek-v4-pro&lt;/code&gt; to Cline is not complicated: choose OpenAI Compatible, then fill in DeepSeek&amp;rsquo;s Base URL, API Key, and model name.&lt;/p&gt;
&lt;p&gt;The steps below cover both the VS Code extension UI and Cline CLI.&lt;/p&gt;
&lt;h2 id=&#34;prepare-a-deepseek-api-key&#34;&gt;Prepare a DeepSeek API Key
&lt;/h2&gt;&lt;p&gt;First, create an API Key on the DeepSeek platform.&lt;/p&gt;
&lt;p&gt;You need three values:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Item&lt;/th&gt;
          &lt;th&gt;Value&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Provider&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;OpenAI Compatible&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Base URL&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;https://api.deepseek.com&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Model ID&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;DeepSeek&amp;rsquo;s official documentation states that the V4 series uses the existing OpenAI-compatible interface. Keep &lt;code&gt;base_url&lt;/code&gt; as &lt;code&gt;https://api.deepseek.com&lt;/code&gt;, and set &lt;code&gt;model&lt;/code&gt; to &lt;code&gt;deepseek-v4-pro&lt;/code&gt; or &lt;code&gt;deepseek-v4-flash&lt;/code&gt; when calling it.&lt;/p&gt;
&lt;h2 id=&#34;configure-it-in-the-cline-extension&#34;&gt;Configure It in the Cline Extension
&lt;/h2&gt;&lt;p&gt;If you use the Cline extension in VS Code, configure it this way:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open Cline from the VS Code sidebar.&lt;/li&gt;
&lt;li&gt;Go to Cline settings or model configuration.&lt;/li&gt;
&lt;li&gt;Select &lt;code&gt;OpenAI Compatible&lt;/code&gt; as the provider.&lt;/li&gt;
&lt;li&gt;Enter your DeepSeek API Key.&lt;/li&gt;
&lt;li&gt;Set Base URL to:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ol start=&#34;6&#34;&gt;
&lt;li&gt;Set Model ID to:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek-v4-pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ol start=&#34;7&#34;&gt;
&lt;li&gt;Save the configuration and run a simple test in Cline.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Start with a low-risk read-only task:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Please read the current project directory structure and summarize what type of project this is. Do not modify any files.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If Cline can read and answer normally, the model connection is working.&lt;/p&gt;
&lt;h2 id=&#34;configure-it-in-cline-cli&#34;&gt;Configure It in Cline CLI
&lt;/h2&gt;&lt;p&gt;If you use Cline CLI, run &lt;code&gt;cline provider configure openai-compatible&lt;/code&gt; to enter interactive configuration.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cline provider configure openai-compatible
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Fill in:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: sk-...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model ID: deepseek-v4-pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After configuration, test it with a read-only task:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cline &lt;span class=&#34;s2&#34;&gt;&amp;#34;Summarize this repository structure without changing files.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If you want to lower cost first, you can temporarily change Model ID to:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek-v4-flash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Then switch back to &lt;code&gt;deepseek-v4-pro&lt;/code&gt; for complex planning, fact checking, multi-tool collaboration, or high-risk code changes.&lt;/p&gt;
&lt;h2 id=&#34;recommended-model-split&#34;&gt;Recommended Model Split
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 Pro and Flash are better used with a clear split.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th&gt;Best for&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Routine code reading, small batch fixes, script generation, context summarization, low-risk frontend changes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Architecture planning, complex bugs, cross-file refactors, fact checking, multi-tool calls, high-risk changes&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;For Agent tools like Cline, cost mainly comes from long context, repeated file reads, plan generation, and multi-round tool calls.
If the task is light, use Flash for volume; if the task needs stronger judgment, switch to Pro.&lt;/p&gt;
&lt;h2 id=&#34;how-to-set-context-length&#34;&gt;How to Set Context Length
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 Pro and Flash both support long context.
If Cline requires a manual context window value, you can understand it according to the 1M context listed on DeepSeek&amp;rsquo;s official model page.&lt;/p&gt;
&lt;p&gt;In practice, do not put every file into context at the beginning.
Cline reads files according to the task, and a better workflow is usually:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;first ask it to inspect the directory structure;&lt;/li&gt;
&lt;li&gt;then ask it to locate relevant files;&lt;/li&gt;
&lt;li&gt;finally let it modify only the target files.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This saves tokens and keeps the task boundary clearer.&lt;/p&gt;
&lt;h2 id=&#34;common-issues&#34;&gt;Common Issues
&lt;/h2&gt;&lt;h3 id=&#34;1-model-not-found&#34;&gt;1. Model Not Found
&lt;/h3&gt;&lt;p&gt;First check that Model ID is exactly:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek-v4-pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Do not write &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt;, &lt;code&gt;deepseek-v4&lt;/code&gt;, or another display name.&lt;/p&gt;
&lt;h3 id=&#34;2-401-or-authentication-failed&#34;&gt;2. 401 or Authentication Failed
&lt;/h3&gt;&lt;p&gt;Check the API Key:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;whether it was copied completely;&lt;/li&gt;
&lt;li&gt;whether it contains extra spaces;&lt;/li&gt;
&lt;li&gt;whether it was entered into the provider configuration Cline is currently using;&lt;/li&gt;
&lt;li&gt;whether the DeepSeek account has available balance.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-connection-failed&#34;&gt;3. Connection Failed
&lt;/h3&gt;&lt;p&gt;Check the Base URL:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Do not append &lt;code&gt;/v1/chat/completions&lt;/code&gt; at the end.
Cline&amp;rsquo;s OpenAI Compatible Provider will construct compatible interface requests itself.&lt;/p&gt;
&lt;h3 id=&#34;4-cline-calls-are-too-expensive&#34;&gt;4. Cline Calls Are Too Expensive
&lt;/h3&gt;&lt;p&gt;You can switch routine tasks to &lt;code&gt;deepseek-v4-flash&lt;/code&gt; and use &lt;code&gt;deepseek-v4-pro&lt;/code&gt; only for complex tasks.&lt;/p&gt;
&lt;p&gt;Also, make the task description as clear as possible:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Only modify files related to the login page. Do not refactor unrelated modules. First provide a plan, and modify code only after confirmation.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Agent tasks are most expensive when boundaries are unclear.
The clearer the boundary, the fewer files it reads, the fewer tool calls it makes, and the more controllable the cost becomes.&lt;/p&gt;
&lt;h3 id=&#34;5-error-reasoning_content-must-be-passed-back&#34;&gt;5. Error: reasoning_content must be passed back
&lt;/h3&gt;&lt;p&gt;If you see an error like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;400 The `reasoning_content` in the thinking mode must be passed back to the API.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;invalid_request_error&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;modelId&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-pro&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This is usually not a Key, quota, or Base URL problem. It means DeepSeek V4 Pro&amp;rsquo;s thinking mode and the current client&amp;rsquo;s multi-round tool-call history are not aligned.&lt;/p&gt;
&lt;p&gt;DeepSeek&amp;rsquo;s official documentation states:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;thinking mode is &lt;code&gt;enabled&lt;/code&gt; by default;&lt;/li&gt;
&lt;li&gt;thinking mode returns &lt;code&gt;reasoning_content&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;if a tool call happens in one round, subsequent requests must pass back the &lt;code&gt;reasoning_content&lt;/code&gt; from that assistant message;&lt;/li&gt;
&lt;li&gt;if the client does not pass it back correctly, the API returns 400.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When Cline connects through the OpenAI Compatible Provider, this error may appear in the second round or after tool calls if the current version does not fully preserve and return DeepSeek&amp;rsquo;s &lt;code&gt;reasoning_content&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Try this order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upgrade Cline to the latest version;&lt;/li&gt;
&lt;li&gt;confirm you are using &lt;code&gt;OpenAI Compatible&lt;/code&gt;, not the normal &lt;code&gt;OpenAI&lt;/code&gt; provider;&lt;/li&gt;
&lt;li&gt;if Cline supports a custom request body, try disabling thinking mode:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;thinking&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;disabled&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;if Cline does not support extra body parameters, temporarily use another model or a compatible proxy service;&lt;/li&gt;
&lt;li&gt;switch back to &lt;code&gt;deepseek-v4-pro&lt;/code&gt; after Cline supports passing back DeepSeek V4 &lt;code&gt;reasoning_content&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Note that disabling thinking mode may reduce complex reasoning ability, but it can work around client compatibility issues where &lt;code&gt;reasoning_content&lt;/code&gt; is not passed back.&lt;/p&gt;
&lt;h2 id=&#34;copyable-configuration&#34;&gt;Copyable Configuration
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Provider: OpenAI Compatible
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: sk-your DeepSeek API Key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model ID: deepseek-v4-pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;For low-cost mode:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Provider: OpenAI Compatible
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: sk-your DeepSeek API Key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model ID: deepseek-v4-flash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;There are only three key steps to calling DeepSeek V4 Pro in Cline:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;choose &lt;code&gt;OpenAI Compatible&lt;/code&gt; as the provider;&lt;/li&gt;
&lt;li&gt;set Base URL to &lt;code&gt;https://api.deepseek.com&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;set Model ID to &lt;code&gt;deepseek-v4-pro&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After configuration, test with a read-only task before giving it real code changes.
If you often run Agent tasks, split Flash and Pro: Flash handles high-frequency lightweight work, while Pro handles complex judgment and fallback tasks.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.cline.bot/provider-config/openai-compatible&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cline Docs: OpenAI Compatible Provider&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.cline.bot/provider-config/overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cline Docs: Provider Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/news/news202605&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Docs: News&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/quick_start/pricing/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Docs: Models &amp;amp; Pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>How DeepSeek V4 Price Cuts Rewrite the Cost Model for AI Agents</title>
        <link>https://knightli.com/en/2026/05/01/deepseek-v4-price-cuts-ai-agent-economics/</link>
        <pubDate>Fri, 01 May 2026 19:47:47 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/01/deepseek-v4-price-cuts-ai-agent-economics/</guid>
        <description>&lt;p&gt;DeepSeek V4 did not arrive with an especially loud launch.
There was no major event, nor a benchmark story that instantly crushed every competitor.
But a few days later, the part that truly affects the industry became visible: repeated price cuts.&lt;/p&gt;
&lt;p&gt;The point of this change is not that &amp;ldquo;the model got a little stronger&amp;rdquo;, but that &amp;ldquo;usage cost has been pushed into another tier&amp;rdquo;.
When token prices become low enough that an ordinary Agent task can finish for a few cents or a couple of yuan, the business logic behind many Coding Plans and Token Plans needs to be reconsidered.&lt;/p&gt;
&lt;h2 id=&#34;launch-day-was-not-explosive&#34;&gt;Launch Day Was Not Explosive
&lt;/h2&gt;&lt;p&gt;The first wave of feedback to DeepSeek V4 was not especially heated.
Many people expected it to deliver the kind of shock R1 did: across-the-board benchmark leadership, validation of domestic compute, and simultaneous breakthroughs in multimodal and Agent capabilities.
After the actual release, however, it looked more like a steady upgrade.&lt;/p&gt;
&lt;p&gt;V4 Pro is indeed a strong model, especially in coding, math, long context, and agentic coding.
But it is not the kind of product that instantly makes every peer model look outdated.
So on launch day, the discussion felt a little awkward: people wanted to praise it, but it was hard to find a sufficiently explosive angle.&lt;/p&gt;
&lt;p&gt;The real turning point was not launch day, but the price adjustments that followed.&lt;/p&gt;
&lt;h2 id=&#34;successive-price-cuts-are-the-key&#34;&gt;Successive Price Cuts Are the Key
&lt;/h2&gt;&lt;p&gt;After DeepSeek V4 was released, prices started to move downward.
According to DeepSeek&amp;rsquo;s official pricing page and the information summarized in the source article, the rough prices at that time were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DeepSeek V4 Flash: about 1 yuan per 1 million input tokens; about 0.02 yuan per 1 million tokens after a cache hit;&lt;/li&gt;
&lt;li&gt;DeepSeek V4 Pro: about 3 yuan per 1 million input tokens; about 0.025 yuan per 1 million tokens after a cache hit;&lt;/li&gt;
&lt;li&gt;the cache-hit input price across the model family dropped to one tenth of the launch price;&lt;/li&gt;
&lt;li&gt;V4 Pro was once in a 75% discount period, extended until May 31, 2026 at 23:59.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The API prices in US dollars make the difference easier to see:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Cached input&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Non-cached input&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Output&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Context&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0028 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.14 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.28 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1M&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; promotional price&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.003625 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.435 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.87 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1M&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; regular price&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0145 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$1.74 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$3.48 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1M&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Two details matter here.&lt;/p&gt;
&lt;p&gt;First, V4 Pro&amp;rsquo;s $0.435 / $0.87 is a promotional price, not the long-term regular price.
In DeepSeek&amp;rsquo;s official notes, this 75% discount was extended until May 31, 2026 at 15:59 UTC.&lt;/p&gt;
&lt;p&gt;Second, cache-hit pricing is the key variable in the Agent cost model.
Flash&amp;rsquo;s cached input price is as low as $0.0028 / 1M tokens, while Pro&amp;rsquo;s promotional cached input price is $0.003625 / 1M tokens.
That means repeated project context, tool definitions, system prompts, and historical summaries no longer need to be charged at the full input price.&lt;/p&gt;
&lt;p&gt;The most important thing about this pricing is that it makes the token cost of many tasks &amp;ldquo;insensitive&amp;rdquo;.
In the past, developers worried that one Agent task would consume a large amount of context, repeatedly read and write code, and call tools frequently.
Now, as long as the cache hit rate is high enough, the cost can be pushed very low.&lt;/p&gt;
&lt;h2 id=&#34;price-comparison-with-gpt-and-claude&#34;&gt;Price Comparison With GPT and Claude
&lt;/h2&gt;&lt;p&gt;DeepSeek&amp;rsquo;s own prices alone do not fully convey the gap.
The contrast becomes much clearer when placed next to common closed-source models from the same period.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Input&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Cached input&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Output&lt;/th&gt;
          &lt;th&gt;Best fit&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.14 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0028 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.28 / M&lt;/td&gt;
          &lt;td&gt;High-frequency Agents, routine coding, batch tasks&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; promotional price&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.435 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.003625 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.87 / M&lt;/td&gt;
          &lt;td&gt;Complex coding, planning, fact checking&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; regular price&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$1.74 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0145 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$3.48 / M&lt;/td&gt;
          &lt;td&gt;Pro cost baseline after the promotion&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$5 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.50 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$30 / M&lt;/td&gt;
          &lt;td&gt;High-quality complex tasks, general reasoning&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$2.50 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.25 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$15 / M&lt;/td&gt;
          &lt;td&gt;Mid-range choice for programming and professional tasks&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4 mini&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.75 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.075 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$4.50 / M&lt;/td&gt;
          &lt;td&gt;Lower-cost general and subtask model&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Opus 4.7&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$5 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.50 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$25 / M&lt;/td&gt;
          &lt;td&gt;High-quality writing, complex reasoning, long tasks&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Sonnet 4.6&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$3 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.30 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$15 / M&lt;/td&gt;
          &lt;td&gt;Programming, Agents, general work&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Haiku 4.5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$1 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.10 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$5 / M&lt;/td&gt;
          &lt;td&gt;Lightweight tasks, summarization, classification&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The most striking number in this table is output price.
Agents do not only read context; they also keep generating plans, patches, explanations, logs, and next actions.
If there is a lot of output, DeepSeek V4 Pro&amp;rsquo;s promotional $0.87 / M becomes dramatically cheaper than GPT-5.5&amp;rsquo;s $30 / M or Claude Sonnet 4.6&amp;rsquo;s $15 / M.&lt;/p&gt;
&lt;p&gt;Even at V4 Pro&amp;rsquo;s regular output price of $3.48 / M, it is still clearly below GPT-5.4, GPT-5.5, and Claude Sonnet / Opus.
If the task can be handled by Flash, the output price drops further to $0.28 / M.&lt;/p&gt;
&lt;p&gt;The cached input gap is even more extreme.
DeepSeek V4 Flash&amp;rsquo;s cached input price is $0.0028 / M, while GPT-5.5 and Claude Opus 4.7 are both $0.50 / M.
These are not in the same order of magnitude.
For Agents that repeatedly read the same code repository, this gap matters more than it does in ordinary chat.&lt;/p&gt;
&lt;h2 id=&#34;why-agent-tasks-are-especially-affected&#34;&gt;Why Agent Tasks Are Especially Affected
&lt;/h2&gt;&lt;p&gt;AI Agents are different from ordinary chat.
Ordinary chat is usually a question-and-answer flow with relatively limited input context.
Agent tasks repeatedly read project files, generate plans, call tools, inspect results, and then modify code again.&lt;/p&gt;
&lt;p&gt;These tasks have two traits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;large token consumption;&lt;/li&gt;
&lt;li&gt;lots of repeated context.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The second point is crucial.
In a code project, the model repeatedly reads the same files, directory structure, error logs, and modification results.
If the platform supports cache hits, the cost of repeated input drops sharply.&lt;/p&gt;
&lt;p&gt;The source article mentioned a real experience: connecting DeepSeek V4 Pro and Flash to a Claude Code-like tool, asking it to pull a prompt repository and turn it into a local search site.
The task was completed, with a total cost of roughly a little over 0.8 yuan, and Pro reached a cache hit rate of 98.7%.&lt;/p&gt;
&lt;p&gt;This example illustrates a practical issue: the more an Agent task resembles &amp;ldquo;repeated work around the same project&amp;rdquo;, the more valuable cache hits become.
If generating a website, fixing a bug, or changing a frontend costs only a few cents to a few yuan, subscription plans become less attractive.&lt;/p&gt;
&lt;p&gt;We can estimate the gap with a simplified task.
Assume one coding agent task includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;500,000 input tokens, of which 80% can hit cache;&lt;/li&gt;
&lt;li&gt;50,000 output tokens;&lt;/li&gt;
&lt;li&gt;no tool calls, search costs, or platform markup included, only model token cost.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The rough costs are:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Estimated cost&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek V4 Flash&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $0.03&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek V4 Pro promotional price&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $0.09&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek V4 Pro regular price&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $0.36&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4 mini&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $0.30&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $1.01&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $1.75&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Sonnet 4.6&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $1.11&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Opus 4.7&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $1.65&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;This estimate does not mean DeepSeek is better for every task.
Model quality, tool-call stability, long-context retrieval ability, coding style, and factual reliability all need separate evaluation.
But from a cost perspective, DeepSeek V4 pushes the marginal cost of &amp;ldquo;letting the Agent run a few more rounds&amp;rdquo; very low.
That will encourage developers to design longer workflows, more frequent self-checks, and more candidate solutions instead of worrying about the token bill every time.&lt;/p&gt;
&lt;h2 id=&#34;the-difference-between-coding-plans-and-token-plans&#34;&gt;The Difference Between Coding Plans and Token Plans
&lt;/h2&gt;&lt;p&gt;Many AI products now offer two types of plans: Coding Plans and Token Plans.&lt;/p&gt;
&lt;p&gt;The rough difference is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Coding Plans are usually mainly for programming;&lt;/li&gt;
&lt;li&gt;Token Plans usually cover more capabilities, such as STT, TTS, image generation, search, embedding, and RAG;&lt;/li&gt;
&lt;li&gt;STT means speech to text;&lt;/li&gt;
&lt;li&gt;TTS means text to speech;&lt;/li&gt;
&lt;li&gt;Coding Plans often restrict users to programming scenarios, while other capabilities still require separate purchases.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From a business perspective, a Coding Plan is more like a buffet.
Users pay a fixed fee in advance, while the vendor bets that most people will not use up the quota.
Some users consume more, others consume less, and the platform can still make money on average.&lt;/p&gt;
&lt;p&gt;But if pay-as-you-go token prices are low enough, users start calculating: why do I have to buy a plan?
If the real monthly usage cost is only a few yuan or a dozen yuan, a 40-yuan or 200-yuan plan may no longer be worthwhile.&lt;/p&gt;
&lt;h2 id=&#34;why-price-cuts-challenge-the-subscription-model&#34;&gt;Why Price Cuts Challenge the Subscription Model
&lt;/h2&gt;&lt;p&gt;Subscription plans rely on one premise: users feel that each individual use is expensive, or they do not want to calculate the cost of every call.
When token prices are high, a plan feels reassuring.
When token prices are almost negligible, pay-as-you-go becomes more natural.&lt;/p&gt;
&lt;p&gt;DeepSeek V4&amp;rsquo;s price cut effectively reveals the underlying cost:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agent tasks can be very cheap;&lt;/li&gt;
&lt;li&gt;long context is not necessarily too expensive to use;&lt;/li&gt;
&lt;li&gt;cache hits can reduce cost significantly;&lt;/li&gt;
&lt;li&gt;ordinary developers do not necessarily need a fixed subscription;&lt;/li&gt;
&lt;li&gt;the model entry point can shift from a &amp;ldquo;plan platform&amp;rdquo; to a &amp;ldquo;low-cost API&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This will make platforms built around Coding Plans uncomfortable.
If users find pay-as-you-go calls cheaper and freer, they have less reason to be locked into one platform&amp;rsquo;s subscription.&lt;/p&gt;
&lt;h2 id=&#34;how-to-choose-between-flash-and-pro&#34;&gt;How to Choose Between Flash and Pro
&lt;/h2&gt;&lt;p&gt;A practical way to use DeepSeek V4 is to split work between Flash and Pro.&lt;/p&gt;
&lt;p&gt;Flash is suitable for high-frequency, lightweight, repeatable tasks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fixing bugs;&lt;/li&gt;
&lt;li&gt;writing frontend code;&lt;/li&gt;
&lt;li&gt;writing scripts;&lt;/li&gt;
&lt;li&gt;routine code understanding;&lt;/li&gt;
&lt;li&gt;processing ordinary information in long context;&lt;/li&gt;
&lt;li&gt;running large numbers of subtasks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Flash is cheap, fast, and also supports very long context.
For everyday coding agents, many tasks do not need Pro from the start.&lt;/p&gt;
&lt;p&gt;Pro is better for complex judgment and fallback work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;multi-round planning;&lt;/li&gt;
&lt;li&gt;complex Agent workflows;&lt;/li&gt;
&lt;li&gt;multiple function calls;&lt;/li&gt;
&lt;li&gt;fact checking;&lt;/li&gt;
&lt;li&gt;financial research;&lt;/li&gt;
&lt;li&gt;content production that requires stronger knowledge and judgment;&lt;/li&gt;
&lt;li&gt;high-risk code changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A reasonable setup is: Flash handles volume, Pro handles fallback.
Start ordinary tasks with Flash, then switch to Pro for long-horizon planning, complex judgment, fact checking, or multi-tool collaboration.
This keeps cost under control while preserving model quality.&lt;/p&gt;
&lt;h2 id=&#34;why-deepseek-can-price-this-way&#34;&gt;Why DeepSeek Can Price This Way
&lt;/h2&gt;&lt;p&gt;DeepSeek has a different business structure from many large platforms.
It does not have e-commerce, social networking, short video, cloud computing, phones, cars, office suites, operating systems, browsers, or a large enterprise SaaS ecosystem.&lt;/p&gt;
&lt;p&gt;That means it does not need to lock users into a complete platform.
It can simply sell text model capability: use cheap text models here, and call any other capability elsewhere.&lt;/p&gt;
&lt;p&gt;Large platforms usually think differently.
If you buy their Coding Plan or Token Plan, you are pulled into their cloud, search, image generation, voice, database, and developer-tool ecosystem.
The plan is not merely selling the model; it is competing for the user entry point.&lt;/p&gt;
&lt;p&gt;DeepSeek&amp;rsquo;s approach is more direct: push text model prices down and try to become the default model entry point for Agents.
Once the default entry point is occupied, many developers and toolchains will naturally adapt around it.&lt;/p&gt;
&lt;h2 id=&#34;open-models-and-the-default-entry-point&#34;&gt;Open Models and the Default Entry Point
&lt;/h2&gt;&lt;p&gt;If DeepSeek V4 keeps an open model route, third-party cloud vendors and platforms may deploy it themselves and provide services.
For DeepSeek, that is both distribution and potential diversion.&lt;/p&gt;
&lt;p&gt;This is where a low-price official API matters.
If the official price is already low enough, other platforms will struggle to offer an obvious price advantage even if they can deploy the model.
Users will tend to use the default, cheap, stable entry point directly.&lt;/p&gt;
&lt;p&gt;This is especially true for Agent tools.
Agent tasks depend on long context, caching, tool calls, and stable throughput.
Once a model is cheap enough in these scenarios, it has a chance to become the default option.&lt;/p&gt;
&lt;h2 id=&#34;coding-plans-are-still-not-useless&#34;&gt;Coding Plans Are Still Not Useless
&lt;/h2&gt;&lt;p&gt;This does not mean Coding Plans will disappear immediately.
They still fit some users.&lt;/p&gt;
&lt;p&gt;If some users are truly heavy users who max out their quota every day, a fixed subscription may still be economical.
Just like a buffet, if nobody could ever eat enough to get their money&amp;rsquo;s worth, users would not buy it.&lt;/p&gt;
&lt;p&gt;The problem is that most users are not that kind of extremely high-frequency user.
Low-frequency users, lightweight developers, and people who occasionally write scripts or modify projects are better suited to pay-as-you-go.
After DeepSeek lowers pay-as-you-go costs, the appeal of plans weakens.&lt;/p&gt;
&lt;p&gt;The future is more likely to become a layered choice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;heavy high-frequency users keep buying Coding Plans;&lt;/li&gt;
&lt;li&gt;ordinary users move to low-cost APIs;&lt;/li&gt;
&lt;li&gt;Agent tools automatically choose Flash / Pro according to the task;&lt;/li&gt;
&lt;li&gt;platform plans need to provide more non-model value, such as workflows, IDE integration, deployment, team management, and security auditing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 did not create its biggest impact through benchmarks.
What truly changed industry expectations was the price reduction that followed.&lt;/p&gt;
&lt;p&gt;When input tokens and cache-hit pricing are pushed very low, the cost of using AI Agents changes.
Long context, code-project analysis, and multi-round tool calls that used to look expensive may now become everyday costs of a few cents to a few yuan.&lt;/p&gt;
&lt;p&gt;This directly challenges the business logic of Coding Plans and Token Plans.
If users can pay by usage, freely combine models and tools, and keep costs low enough, they may not want to be tied to a specific platform plan.&lt;/p&gt;
&lt;p&gt;What DeepSeek V4 truly touches this time is not only the ranking of model capability, but the cost structure of AI Agents and the battle for the default entry point.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/quick_start/pricing/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Docs: Models &amp;amp; Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/api/pricing/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI API Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.claude.com/docs/en/about-claude/pricing&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic Claude API Pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>free-claude-code: Connecting Claude Code to OpenRouter, DeepSeek, and Local Models Through a Proxy</title>
        <link>https://knightli.com/en/2026/05/01/free-claude-code-anthropic-compatible-proxy/</link>
        <pubDate>Fri, 01 May 2026 03:41:49 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/01/free-claude-code-anthropic-compatible-proxy/</guid>
        <description>&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; is an Anthropic-compatible proxy for &lt;code&gt;Claude Code&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Its idea is not to crack Claude Code, nor to provide an official free Claude service. Instead, it starts a local proxy service that looks like an Anthropic API, then forwards requests from Claude Code to other model backends. The README mentions backends such as NVIDIA NIM, OpenRouter, DeepSeek, LM Studio, llama.cpp, and Ollama.&lt;/p&gt;
&lt;p&gt;In simple terms, it solves this problem: you like the terminal experience of Claude Code, but want to send model requests to another provider or a local model.&lt;/p&gt;
&lt;h2 id=&#34;what-problem-it-solves&#34;&gt;What Problem It Solves
&lt;/h2&gt;&lt;p&gt;Claude Code has an interaction model that works well for development tasks.&lt;/p&gt;
&lt;p&gt;It can read code, edit files, run commands, and move tasks forward based on project context inside the terminal. But many users may not always want to use the same model backend:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;They want to try different models on OpenRouter&lt;/li&gt;
&lt;li&gt;They want to use models such as DeepSeek to reduce cost&lt;/li&gt;
&lt;li&gt;They want to route requests to local Ollama&lt;/li&gt;
&lt;li&gt;They want to run local models through LM Studio or llama.cpp&lt;/li&gt;
&lt;li&gt;They want one proxy entry point in the development environment&lt;/li&gt;
&lt;li&gt;They want to compare different models inside the Claude Code workflow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; is positioned as a compatibility layer between Claude Code and these model services.&lt;/p&gt;
&lt;p&gt;Claude Code still sends requests in an Anthropic-like style, while the proxy adapts those requests to different backends.&lt;/p&gt;
&lt;h2 id=&#34;how-it-works&#34;&gt;How It Works
&lt;/h2&gt;&lt;p&gt;You can think of it as three layers:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The frontend is Claude Code&lt;/li&gt;
&lt;li&gt;The middle layer is the &lt;code&gt;free-claude-code&lt;/code&gt; proxy&lt;/li&gt;
&lt;li&gt;The backend is OpenRouter, DeepSeek, a local model, or another model service&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Claude Code believes it is accessing an Anthropic-compatible API.&lt;/p&gt;
&lt;p&gt;After the proxy receives a request, it selects a target provider according to configuration, transforms the necessary fields, and returns the response to Claude Code.&lt;/p&gt;
&lt;p&gt;The benefit of this structure is that you do not need to modify Claude Code itself, and you do not need every model service to natively support Claude Code. As long as the proxy can align the interfaces, more models can be connected to the same workflow.&lt;/p&gt;
&lt;h2 id=&#34;supported-backends&#34;&gt;Supported Backends
&lt;/h2&gt;&lt;p&gt;The README lists these directions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NVIDIA NIM&lt;/li&gt;
&lt;li&gt;OpenRouter&lt;/li&gt;
&lt;li&gt;DeepSeek&lt;/li&gt;
&lt;li&gt;LM Studio&lt;/li&gt;
&lt;li&gt;llama.cpp&lt;/li&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These backends represent different usage styles.&lt;/p&gt;
&lt;p&gt;OpenRouter is more like a model aggregation entry point, useful for testing different commercial and open-source models.&lt;/p&gt;
&lt;p&gt;DeepSeek is suitable for people who care about Chinese ability, coding ability, and cost.&lt;/p&gt;
&lt;p&gt;LM Studio, llama.cpp, and Ollama are more local-model oriented. They are suitable for running models on your own machine or inside an intranet, reducing dependence on external APIs and making offline experiments easier.&lt;/p&gt;
&lt;p&gt;NVIDIA NIM is more oriented toward enterprise and GPU inference deployment scenarios.&lt;/p&gt;
&lt;h2 id=&#34;why-an-anthropic-compatible-proxy&#34;&gt;Why an Anthropic-Compatible Proxy
&lt;/h2&gt;&lt;p&gt;Claude Code was originally designed around Anthropic interfaces and model conventions.&lt;/p&gt;
&lt;p&gt;If you want to connect it to other models, the most direct problem is interface mismatch:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Request fields differ&lt;/li&gt;
&lt;li&gt;Model names differ&lt;/li&gt;
&lt;li&gt;Streaming formats differ&lt;/li&gt;
&lt;li&gt;Tool use is represented differently&lt;/li&gt;
&lt;li&gt;Error response formats differ&lt;/li&gt;
&lt;li&gt;Token and context limits differ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is where the proxy layer is useful.&lt;/p&gt;
&lt;p&gt;It keeps the interface seen by Claude Code close to the Anthropic shape, then adapts to the backend. For users, after configuring the proxy once, they can test different models inside the same Claude Code workflow.&lt;/p&gt;
&lt;h2 id=&#34;suitable-scenarios&#34;&gt;Suitable Scenarios
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; is suitable for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Using the Claude Code terminal workflow&lt;/li&gt;
&lt;li&gt;Testing non-Anthropic models in Claude Code&lt;/li&gt;
&lt;li&gt;Reducing model calling costs&lt;/li&gt;
&lt;li&gt;Connecting Claude Code to OpenRouter&lt;/li&gt;
&lt;li&gt;Connecting to compatible model services such as DeepSeek&lt;/li&gt;
&lt;li&gt;Running local models through Ollama, LM Studio, or llama.cpp&lt;/li&gt;
&lt;li&gt;Giving a team one unified model proxy entry point&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only use official Claude Code normally and have no special needs around providers, cost, or local deployment, you may not need this type of proxy.&lt;/p&gt;
&lt;p&gt;But if you often compare models, or want Claude Code to connect to local and third-party models, this type of tool is useful.&lt;/p&gt;
&lt;h2 id=&#34;difference-from-directly-using-openrouter-or-ollama&#34;&gt;Difference from Directly Using OpenRouter or Ollama
&lt;/h2&gt;&lt;p&gt;Using OpenRouter, Ollama, or LM Studio directly usually means chatting with a model or calling it through an API.&lt;/p&gt;
&lt;p&gt;The point of &lt;code&gt;free-claude-code&lt;/code&gt; is not to replace those services, but to connect them to the Claude Code development workflow.&lt;/p&gt;
&lt;p&gt;The difference is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You still use the Claude Code terminal experience&lt;/li&gt;
&lt;li&gt;AI can execute tasks around a code repository&lt;/li&gt;
&lt;li&gt;The model backend can be changed to another provider&lt;/li&gt;
&lt;li&gt;Local models can enter the Claude Code workflow&lt;/li&gt;
&lt;li&gt;Configuration is centralized in the proxy layer instead of changed in each tool&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So it is more like a bridge than a new chat client.&lt;/p&gt;
&lt;h2 id=&#34;notes-about-local-models&#34;&gt;Notes About Local Models
&lt;/h2&gt;&lt;p&gt;Connecting Claude Code to local models is attractive, but there are real limitations.&lt;/p&gt;
&lt;p&gt;First, model capability differs.&lt;/p&gt;
&lt;p&gt;Claude Code tasks are usually not just chat. They include understanding code, planning modifications, editing files, and handling command output. Smaller local models may not complete these tasks reliably.&lt;/p&gt;
&lt;p&gt;Second, context window matters.&lt;/p&gt;
&lt;p&gt;Code tasks need a lot of context. If the model context is too small, it may fail to read full files, miss constraints, or lose background across multi-turn tasks.&lt;/p&gt;
&lt;p&gt;Third, tool use compatibility matters.&lt;/p&gt;
&lt;p&gt;Claude Code workflows depend on tool calls and structured behavior. Even if a backend model can chat, it may not follow tool-use protocols well.&lt;/p&gt;
&lt;p&gt;Fourth, speed and hardware matter.&lt;/p&gt;
&lt;p&gt;Local model speed depends on machine configuration, quantization, and model size. If code tasks respond too slowly, the experience drops noticeably.&lt;/p&gt;
&lt;p&gt;So local models are better for experiments, low-risk tasks, and specific scenarios. For truly complex coding tasks, choose carefully according to model capability.&lt;/p&gt;
&lt;h2 id=&#34;usage-boundaries&#34;&gt;Usage Boundaries
&lt;/h2&gt;&lt;p&gt;Projects like this are easy to misunderstand from the title, so the boundaries should be clear.&lt;/p&gt;
&lt;p&gt;First, it is not an official free Claude Code quota.&lt;/p&gt;
&lt;p&gt;It only forwards Claude Code requests to other model backends. When using OpenRouter, DeepSeek, NVIDIA NIM, or other APIs, you still need to follow the pricing, quotas, and terms of the corresponding services.&lt;/p&gt;
&lt;p&gt;Second, it is not a tool for bypassing authorization.&lt;/p&gt;
&lt;p&gt;When using any proxy tool, you should follow the licenses and terms of Claude Code, model providers, and the project itself. Do not interpret it as a way to avoid official restrictions.&lt;/p&gt;
&lt;p&gt;Third, the proxy handles your request content.&lt;/p&gt;
&lt;p&gt;Code, command output, and project context may pass through the proxy and backend services. When deploying, consider logs, keys, network boundaries, and privacy. For company code or sensitive projects, use a controlled environment.&lt;/p&gt;
&lt;p&gt;Fourth, model performance varies greatly.&lt;/p&gt;
&lt;p&gt;The same Claude Code operation may behave very differently after switching models. Do not assume every model can replace Claude.&lt;/p&gt;
&lt;h2 id=&#34;relationship-with-proxies-such-as-litellm&#34;&gt;Relationship with Proxies Such as LiteLLM
&lt;/h2&gt;&lt;p&gt;Conceptually, &lt;code&gt;free-claude-code&lt;/code&gt; belongs to the category of compatible interface proxies.&lt;/p&gt;
&lt;p&gt;The shared goal of such tools is to reduce coupling between upper-level applications and lower-level model services. The upper-level application faces a relatively unified interface, while backend providers can be switched by configuration.&lt;/p&gt;
&lt;p&gt;Different projects focus on different areas. Some are general model gateways, some focus on OpenAI-compatible APIs, and some specifically adapt tools such as Claude Code.&lt;/p&gt;
&lt;p&gt;What makes &lt;code&gt;free-claude-code&lt;/code&gt; worth noting is that it puts Claude Code directly at the center, rather than building a generic chat proxy.&lt;/p&gt;
&lt;h2 id=&#34;suitable-users&#34;&gt;Suitable Users
&lt;/h2&gt;&lt;p&gt;It is better suited to users who are comfortable tinkering:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Familiar with Claude Code&lt;/li&gt;
&lt;li&gt;Know how to configure API keys and model providers&lt;/li&gt;
&lt;li&gt;Understand proxy service startup and environment variables&lt;/li&gt;
&lt;li&gt;Can troubleshoot network, port, model name, and streaming issues&lt;/li&gt;
&lt;li&gt;Want to compare different models on coding tasks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only want something that works out of the box, the official configuration is usually simpler.&lt;/p&gt;
&lt;p&gt;If you are willing to set up a proxy, switch models, tune parameters, and let Claude Code enter more model environments, this project is worth studying.&lt;/p&gt;
&lt;h2 id=&#34;reference&#34;&gt;Reference
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Alishahryar1/free-claude-code&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Alishahryar1/free-claude-code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;final-thought&#34;&gt;Final Thought
&lt;/h2&gt;&lt;p&gt;The value of &lt;code&gt;free-claude-code&lt;/code&gt; is not in the word “free,” but in the bridge it builds between Claude Code and more model backends.&lt;/p&gt;
&lt;p&gt;When you want to keep the Claude Code development experience while testing OpenRouter, DeepSeek, local models, or enterprise inference services, an Anthropic-compatible proxy like this becomes useful.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>DeepSeek V4 Pro vs GPT-5.5: After Testing Frontend, Writing, and Coding, the Gap Feels Bigger Than Expected</title>
        <link>https://knightli.com/en/2026/04/25/deepseek-v4-pro-vs-gpt-5-5-frontend-writing-code/</link>
        <pubDate>Sat, 25 Apr 2026 11:12:00 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/25/deepseek-v4-pro-vs-gpt-5-5-frontend-writing-code/</guid>
        <description>&lt;p&gt;Comparisons between &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; and &lt;code&gt;GPT-5.5&lt;/code&gt; are getting more attention lately. The reason is no longer whether either model is usable. The real question is: &lt;strong&gt;when the work lands in frontend development, writing, and coding, which one is better suited to be your main tool?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When people compare models like this, they often start by asking which one is stronger.&lt;br&gt;
But the more useful question is usually different: &lt;strong&gt;in a real task, which one is steadier, cheaper to communicate with, and more likely to produce something you can keep building on immediately?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If we simplify the conclusion first, it roughly looks like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When you want more balanced output and a more complete productized experience, many people still look at &lt;code&gt;GPT-5.5&lt;/code&gt; first&lt;/li&gt;
&lt;li&gt;When you need high-frequency iteration in Chinese, care more about cost, and want fast response cycles, &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; becomes a serious candidate&lt;/li&gt;
&lt;li&gt;What really determines the experience is often not the model name itself, but the task type, the prompting approach, and whether you need to keep revising afterward&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let’s break this down through the three most common comparison scenarios.&lt;/p&gt;
&lt;h2 id=&#34;1-frontend-tasks-the-real-question-is-not-whether-it-can-build-a-page-but-whether-it-can-keep-improving-it&#34;&gt;1. Frontend tasks: the real question is not whether it can build a page, but whether it can keep improving it
&lt;/h2&gt;&lt;p&gt;Frontend work looks ideal for model comparisons because the result is easy to see.&lt;br&gt;
Can the page run? Does it look good? Is the structure clean? You can judge all of that quickly.&lt;/p&gt;
&lt;p&gt;But the real difference usually does not appear in whether the first draft works. It shows up in questions like these:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is the structure clear enough?&lt;/li&gt;
&lt;li&gt;Is the component split natural?&lt;/li&gt;
&lt;li&gt;Does changing one part accidentally break another?&lt;/li&gt;
&lt;li&gt;Can it keep following the same implementation logic across multiple rounds of instructions?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is also why many frontend demos that look impressive in the first round do not necessarily stay ahead in real workflows.&lt;/p&gt;
&lt;p&gt;If your task is something like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quickly generate a runnable page prototype&lt;/li&gt;
&lt;li&gt;Draft a landing page idea&lt;/li&gt;
&lt;li&gt;Fill in required styles, buttons, cards, forms, and other basic elements&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;then both models will often get you fairly close, and the difference is more about output style.&lt;/p&gt;
&lt;p&gt;But if the task becomes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Repeatedly revising the UI over multiple rounds&lt;/li&gt;
&lt;li&gt;Reading existing code and continuing from there&lt;/li&gt;
&lt;li&gt;Balancing component structure, style consistency, and maintainability&lt;/li&gt;
&lt;li&gt;Gradually turning a static page into real project code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;then what you should watch is no longer “who looks better in round one,” but “who is less likely to drift off by round five.”&lt;/p&gt;
&lt;p&gt;So in frontend work, the key comparison is not whether the model can generate a page. It is whether, after you keep adding constraints, it can still maintain stable structure, consistent naming, and manageable modification costs.&lt;/p&gt;
&lt;h2 id=&#34;2-writing-tasks-the-real-difference-is-not-how-much-it-writes-but-how-stable-the-style-stays-and-how-well-rewrites-go&#34;&gt;2. Writing tasks: the real difference is not how much it writes, but how stable the style stays and how well rewrites go
&lt;/h2&gt;&lt;p&gt;Writing is another area where people can misjudge models very easily.&lt;/p&gt;
&lt;p&gt;A big reason is that first drafts often look fine from both sides.&lt;br&gt;
The structure is complete, the paragraphs are there, and the tone is smooth enough that it is easy to think they are basically similar.&lt;/p&gt;
&lt;p&gt;But as soon as you push the task one step further, the differences show up:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Can it accurately understand your intended audience?&lt;/li&gt;
&lt;li&gt;Can it switch tone while staying on the same topic?&lt;/li&gt;
&lt;li&gt;Does it lose key points when rewriting?&lt;/li&gt;
&lt;li&gt;Does it stay stable when compressing, expanding, retitling, or restructuring?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The biggest problem in writing is usually not “it cannot write,” but “it wrote something that still needs a lot of fixing.”&lt;/p&gt;
&lt;p&gt;So when comparing &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; and &lt;code&gt;GPT-5.5&lt;/code&gt;, the more useful method is not to ask each to write one article. It is to run several rounds like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Write the first draft&lt;/li&gt;
&lt;li&gt;Rewrite it in a different tone&lt;/li&gt;
&lt;li&gt;Compress it into a shorter version&lt;/li&gt;
&lt;li&gt;Rework it into something better suited for click-driven headlines or search distribution&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If a model can keep the key points intact, the wording stable, and the structure clean through those rounds, then it has much more value in a real writing workflow.&lt;/p&gt;
&lt;p&gt;In other words, what writing tasks really measure is not “literary flair,” but &lt;strong&gt;revision ability, instruction following, and the feeling of continuous collaboration&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;3-coding-tasks-the-real-gap-shows-up-in-long-chain-stability&#34;&gt;3. Coding tasks: the real gap shows up in long-chain stability
&lt;/h2&gt;&lt;p&gt;Coding tasks expose a model’s real level more easily than frontend work, because they are not just about generating output. They have to connect with reality.&lt;/p&gt;
&lt;p&gt;Very quickly, you run into questions like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Can it understand an existing project structure?&lt;/li&gt;
&lt;li&gt;Can it modify multiple files at once?&lt;/li&gt;
&lt;li&gt;Does it introduce new problems after making changes?&lt;/li&gt;
&lt;li&gt;Can it keep debugging by following logs and errors?&lt;/li&gt;
&lt;li&gt;After several rounds, does it still remember what it already changed?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In this kind of work, what users care about most is usually not whether a single code snippet looks elegant. It is: &lt;strong&gt;can this model keep moving the task forward, instead of leaving me to clean up the mess?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So when comparing &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; and &lt;code&gt;GPT-5.5&lt;/code&gt;, the most meaningful thing to look at is usually not isolated coding prompts, but a process closer to real work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Read an existing repository&lt;/li&gt;
&lt;li&gt;Find a bug&lt;/li&gt;
&lt;li&gt;Modify several related files&lt;/li&gt;
&lt;li&gt;Continue fixing based on error messages&lt;/li&gt;
&lt;li&gt;Summarize the result clearly at the end&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once the task enters that kind of continuous workflow, context retention, execution habits, explanation quality, and rework rate all matter more than single-turn answer quality.&lt;/p&gt;
&lt;p&gt;That is also why many users eventually do not settle on “using only one model forever” for coding. Instead, they switch their main tool depending on the stage of the task.&lt;/p&gt;
&lt;h2 id=&#34;4-what-is-really-worth-comparing-is-not-who-wins-but-which-tasks-are-more-cost-effective-to-assign-to-whom&#34;&gt;4. What is really worth comparing is not who wins, but which tasks are more cost-effective to assign to whom
&lt;/h2&gt;&lt;p&gt;If you put &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; and &lt;code&gt;GPT-5.5&lt;/code&gt; side by side and only try to pick one overall champion, the result is usually an empty conclusion.&lt;/p&gt;
&lt;p&gt;That is because real tasks are not one standard exam:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Some are one-off generation&lt;/li&gt;
&lt;li&gt;Some are multi-round collaboration&lt;/li&gt;
&lt;li&gt;Some are Chinese writing&lt;/li&gt;
&lt;li&gt;Some are engineering changes&lt;/li&gt;
&lt;li&gt;Some prioritize speed&lt;/li&gt;
&lt;li&gt;Some prioritize stability&lt;/li&gt;
&lt;li&gt;Some prioritize cost&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So the approach that is closer to real usage is usually to divide by task goal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you want a more complete overall experience, more mature interaction, and steadier general output, try &lt;code&gt;GPT-5.5&lt;/code&gt; first&lt;/li&gt;
&lt;li&gt;If you want high-frequency experimentation in Chinese, fast iteration, and better efficiency for the money, &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; deserves a serious place in your workflow&lt;/li&gt;
&lt;li&gt;If the task itself is long-chain, multi-round, and collaborative, do not stop at the first result—look at who stays steadier after five rounds&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In other words, the real question is not “who is absolutely stronger,” but this:&lt;br&gt;
&lt;strong&gt;for frontend work, writing, and coding, which model feels more like the most practical tool for your current stage?&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;5-how-to-run-a-comparison-that-actually-means-something&#34;&gt;5. How to run a comparison that actually means something
&lt;/h2&gt;&lt;p&gt;If you want to test &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; and &lt;code&gt;GPT-5.5&lt;/code&gt; yourself, a more reliable method is usually not to run a single round, but to do something like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Give both models the same initial requirement&lt;/li&gt;
&lt;li&gt;Keep the same constraints on both sides&lt;/li&gt;
&lt;li&gt;Continue asking follow-up questions for three to five rounds&lt;/li&gt;
&lt;li&gt;Record output quality, drift frequency, and rework amount&lt;/li&gt;
&lt;li&gt;Only then compare speed, cost, and final usability&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That kind of test will get you much closer to real work than simply asking who looks more impressive in the first round.&lt;/p&gt;
&lt;p&gt;Especially in frontend, writing, and coding, what often determines the actual experience is not the starting line, but &lt;strong&gt;who can stay with you and help finish the work&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;6-a-simple-way-to-remember-it&#34;&gt;6. A simple way to remember it
&lt;/h2&gt;&lt;p&gt;If you just want a practical summary, you can remember it like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: more like a broad, productized, mainstream default workspace&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek V4 Pro&lt;/code&gt;: more like a strong competitor worth bringing into daily workflows in Chinese and in high-frequency trial-and-error work&lt;/li&gt;
&lt;li&gt;The real comparison point: not flashy first-round output, but who stays steadier and saves more effort after multiple rounds of revision&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So in this kind of comparison, what really matters is never just “who won.” It is this:&lt;br&gt;
&lt;strong&gt;for your frontend, writing, and coding tasks, which model makes continuous progress easier, reduces rework, and gives you more stable output?&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>DeepSeek-V4 Preview Released: 1M Context, Two Models, and API Migration Notes</title>
        <link>https://knightli.com/en/2026/04/24/deepseek-v4-preview-release/</link>
        <pubDate>Fri, 24 Apr 2026 22:39:46 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/24/deepseek-v4-preview-release/</guid>
        <description>&lt;p&gt;DeepSeek released &lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/news/news260424&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek V4 Preview Release&lt;/a&gt; on &lt;code&gt;2026-04-24&lt;/code&gt;. Based on the official announcement page, the update is centered on a few very clear themes: &lt;code&gt;1M context&lt;/code&gt;, a two-model lineup with &lt;code&gt;V4-Pro&lt;/code&gt; and &lt;code&gt;V4-Flash&lt;/code&gt;, dedicated optimization for agent scenarios, and API-side model migration.&lt;/p&gt;
&lt;p&gt;If we reduce the release to one sentence, the main signal is this: DeepSeek is not just trying to make a stronger model. It is pushing ultra-long context and agent capabilities toward something that is ready for practical deployment.&lt;/p&gt;
&lt;h2 id=&#34;1-what-was-released-this-time&#34;&gt;1. What was released this time
&lt;/h2&gt;&lt;p&gt;According to the official page, &lt;code&gt;DeepSeek-V4 Preview&lt;/code&gt; mainly includes two product lines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Pro&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Flash&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The official descriptions are also very direct:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Pro&lt;/code&gt;: &lt;code&gt;1.6T total / 49B active params&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Flash&lt;/code&gt;: &lt;code&gt;284B total / 13B active params&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The naming already makes the strategy clear. This is not a single-model upgrade. DeepSeek is launching a higher-end model and a more cost-efficient model at the same time.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;V4-Pro&lt;/code&gt; is positioned around performance ceiling, with DeepSeek saying it can compete with the world&amp;rsquo;s top closed-source models. &lt;code&gt;V4-Flash&lt;/code&gt;, by contrast, is positioned around speed, efficiency, and lower cost, making it more suitable for workloads that care more about latency and API pricing.&lt;/p&gt;
&lt;h2 id=&#34;2-1m-context-is-the-most-visible-headline&#34;&gt;2. &lt;code&gt;1M context&lt;/code&gt; is the most visible headline
&lt;/h2&gt;&lt;p&gt;One of the most prominent lines on the official page is: &lt;strong&gt;&amp;ldquo;Welcome to the era of cost-effective 1M context length.&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;DeepSeek is not merely saying the model supports long context. It is presenting &lt;code&gt;1M context&lt;/code&gt; as a default capability of this generation. The page is explicit that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;1M context&lt;/code&gt; is now the default standard across official DeepSeek services&lt;/li&gt;
&lt;li&gt;Both &lt;code&gt;V4-Pro&lt;/code&gt; and &lt;code&gt;V4-Flash&lt;/code&gt; support &lt;code&gt;1M context&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The importance of this is not just that you can fit more tokens. It directly affects tasks like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Understanding large codebases&lt;/li&gt;
&lt;li&gt;Long-document Q&amp;amp;A and information synthesis&lt;/li&gt;
&lt;li&gt;Multi-turn agent workflows&lt;/li&gt;
&lt;li&gt;Complex tasks spanning multiple files, tools, and stages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When the context window is large enough, the model is less likely to lose context midway and re-read material repeatedly. That matters a lot for agentic coding and complex knowledge work.&lt;/p&gt;
&lt;h2 id=&#34;3-what-v4-pro-is-mainly-emphasizing&#34;&gt;3. What &lt;code&gt;V4-Pro&lt;/code&gt; is mainly emphasizing
&lt;/h2&gt;&lt;p&gt;From the wording on the official page, &lt;code&gt;DeepSeek-V4-Pro&lt;/code&gt; focuses on three things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agentic coding capability&lt;/li&gt;
&lt;li&gt;World knowledge&lt;/li&gt;
&lt;li&gt;Reasoning ability&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The page says &lt;code&gt;V4-Pro&lt;/code&gt; reaches open-source SOTA on agentic coding benchmarks. It also claims leadership among current open models in world knowledge, trailing only &lt;code&gt;Gemini-3.1-Pro&lt;/code&gt;, and states that its math, &lt;code&gt;STEM&lt;/code&gt;, and coding performance surpasses current open models while rivaling top closed-source models.&lt;/p&gt;
&lt;p&gt;In other words, &lt;code&gt;V4-Pro&lt;/code&gt; is not positioned as a simple question-answering model. It is aimed much more at high-difficulty reasoning, complex coding, and long-horizon task execution.&lt;/p&gt;
&lt;h2 id=&#34;4-v4-flash-is-not-just-a-cut-down-version&#34;&gt;4. &lt;code&gt;V4-Flash&lt;/code&gt; is not just a cut-down version
&lt;/h2&gt;&lt;p&gt;Another notable point is that DeepSeek does not present &lt;code&gt;V4-Flash&lt;/code&gt; as a low-end model. Instead, it stresses that the model is already strong enough for many practical tasks.&lt;/p&gt;
&lt;p&gt;According to the announcement, &lt;code&gt;V4-Flash&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Has reasoning ability that comes close to &lt;code&gt;V4-Pro&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Performs on par with &lt;code&gt;V4-Pro&lt;/code&gt; on simple agent tasks&lt;/li&gt;
&lt;li&gt;Uses fewer parameters, responds faster, and is more economical for API usage&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That means the lineup is not a very split &amp;ldquo;one flagship, one entry-level&amp;rdquo; structure. It is closer to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;V4-Pro&lt;/code&gt;: optimize for higher performance and a stronger ceiling&lt;/li&gt;
&lt;li&gt;&lt;code&gt;V4-Flash&lt;/code&gt;: optimize for lower latency and better cost efficiency&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For developers, that is often a more practical combination, because many production tasks do not need the absolute strongest model in theory. They need something strong enough, fast enough, and affordable enough.&lt;/p&gt;
&lt;h2 id=&#34;5-the-release-puts-clear-emphasis-on-agent-optimization&#34;&gt;5. The release puts clear emphasis on agent optimization
&lt;/h2&gt;&lt;p&gt;Another strong signal from the announcement page is that DeepSeek is actively pushing &lt;code&gt;V4&lt;/code&gt; toward agent use cases.&lt;/p&gt;
&lt;p&gt;The page says &lt;code&gt;DeepSeek-V4&lt;/code&gt; has been seamlessly integrated with several leading AI agents, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Claude Code&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OpenClaw&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OpenCode&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;DeepSeek also says that &lt;code&gt;V4&lt;/code&gt; is already being used in its in-house agentic coding workflows.&lt;/p&gt;
&lt;p&gt;That means the target is no longer limited to chat or ordinary completion. The model is being positioned for longer workflows: reading code, understanding structure, calling tools, generating outputs, and connecting the whole process together.&lt;/p&gt;
&lt;p&gt;If you have been paying attention to coding agents recently, this is worth noticing. Model providers are no longer only competing on benchmarks. They are also competing on whether the model can actually plug into real workflows.&lt;/p&gt;
&lt;h2 id=&#34;6-structural-innovation-is-serving-long-context-efficiency&#34;&gt;6. Structural innovation is serving long context efficiency
&lt;/h2&gt;&lt;p&gt;On the technical side, the page summarizes this release&amp;rsquo;s structural work as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;token-wise compression&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DSA (DeepSeek Sparse Attention)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The direction is clear: make long context cheaper and more efficient while reducing compute and memory cost as much as possible.&lt;/p&gt;
&lt;p&gt;The announcement page does not go into full technical detail, but it at least suggests that DeepSeek is not relying only on brute-force scaling to support longer windows. It is also making architecture-level optimizations specifically for long-context efficiency.&lt;/p&gt;
&lt;p&gt;For actual users, that often matters more than just seeing a bigger context number, because real usability depends on more than whether &lt;code&gt;1M&lt;/code&gt; is technically available. It also depends on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Whether speed stays acceptable&lt;/li&gt;
&lt;li&gt;Whether cost stays acceptable&lt;/li&gt;
&lt;li&gt;Whether long-context tasks remain stable in practice&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;7-the-api-is-already-available-but-model-migration-matters&#34;&gt;7. The API is already available, but model migration matters
&lt;/h2&gt;&lt;p&gt;The official page clearly states that the API is available today.&lt;/p&gt;
&lt;p&gt;The migration path is also relatively simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keep the same &lt;code&gt;base_url&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Switch the model name to &lt;code&gt;deepseek-v4-pro&lt;/code&gt; or &lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The page also says both models support:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;1M context&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Dual &lt;code&gt;Thinking / Non-Thinking&lt;/code&gt; modes&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OpenAI ChatCompletions&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Anthropic APIs&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That means if you already use the DeepSeek API, the upgrade path is not especially difficult. The main work is updating model names and validating behavior.&lt;/p&gt;
&lt;h2 id=&#34;8-the-retirement-schedule-for-old-models-is-explicit&#34;&gt;8. The retirement schedule for old models is explicit
&lt;/h2&gt;&lt;p&gt;For developers, one of the most important details on the page is actually the retirement notice for older models.&lt;/p&gt;
&lt;p&gt;DeepSeek explicitly says:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;deepseek-chat&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;deepseek-reasoner&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;will be fully retired and inaccessible after &lt;strong&gt;July 24, 2026, 15:59 UTC&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The page also notes that these two models are currently being routed to the non-thinking and thinking modes of &lt;code&gt;deepseek-v4-flash&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;That means if your project still directly references &lt;code&gt;deepseek-chat&lt;/code&gt; or &lt;code&gt;deepseek-reasoner&lt;/code&gt;, now is the time to plan the migration instead of waiting until the formal shutdown date gets close.&lt;/p&gt;
&lt;h2 id=&#34;9-how-this-release-is-worth-reading&#34;&gt;9. How this release is worth reading
&lt;/h2&gt;&lt;p&gt;If we compress the update into a few main takeaways, they look like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DeepSeek is turning &lt;code&gt;1M context&lt;/code&gt; from a premium feature into a default standard&lt;/li&gt;
&lt;li&gt;The two-model strategy is clearer: one targets performance ceiling, one targets speed and cost efficiency&lt;/li&gt;
&lt;li&gt;Agent capability has been moved into a very central role&lt;/li&gt;
&lt;li&gt;The API upgrade path is relatively direct, but the old-model retirement timeline needs attention soon&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For general users, the most visible change may be that long documents, long code contexts, and long workflows become easier to fit into one session.&lt;br&gt;
For developers, the more important point is that if you are already building agents, coding assistants, knowledge workflows, or complex automation pipelines, this generation is very clearly designed for those scenarios.&lt;/p&gt;
&lt;p&gt;This is not just a routine model update from DeepSeek. It reads more like a clearer statement of its next product direction: &lt;strong&gt;ultra-long context, agent optimization, and more practical API readiness.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;related-links&#34;&gt;Related links
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;DeepSeek official news page: &lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/news/news260424&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://api-docs.deepseek.com/news/news260424&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tech Report: &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro/blob/main/DeepSeek_V4.pdf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro/blob/main/DeepSeek_V4.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Open Weights: &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/collections/deepseek-ai/deepseek-v4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://huggingface.co/collections/deepseek-ai/deepseek-v4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
