Skip to main content
O

dsh-unclesam

operatingtag/dsh-unclesam

Uncle Sam — answers through chat.deepseek.com in a real browser tab instead of the metered API. Switch between the API and the web account from the composer; web replies are signed so you always know which route answered.

Install

dsh plugin --profile web add github:operatingtag/dsh-unclesam

README

English · Español · Français · Deutsch · Português · Italiano · Türkçe · 한국어 · 日本語 · 简体中文 · Русский · Polski · हिन्दी · Nederlands · Українська · Tiếng Việt · Bahasa Indonesia · ไทย · فارسی · Ελληνικά · עברית · Čeština · Română · Svenska · Dansk · Suomi · Magyar · العربية · Oʻzbekcha · Azərbaycan · Български · Hrvatski · Қазақша · ქართული · नेपाली · සිංහල · தமிழ் · తెలుగు · मराठी · বাংলা · ខ្មែរ · Lietuvių · Bahasa Melayu · မြန်မာ · Norsk · Slovenčina · Slovenščina · Српски · Kiswahili · Filipino · اردو

Uncle Sam

A DeepSeek Harness provider that answers through your own browser, on your existing web account, instead of the billed API.

The DeepSeek Harness plugin that drives chat.deepseek.com in a real browser — a free DeepSeek API alternative. Chat, DeepThink and web search on your own account: no API key, no cost per token, no billing.

☕ Buy me a coffee — written by one person, at night, funded by nothing. There is no other revenue model. A star or a bug report is worth just as much.

This product is ongoing and under active development. Expect bugs.

It works, it is fast, and it has been driven daily for weeks — but it keeps changing, and the browser route depends on a website that changes without telling anyone. If something breaks, a screenshot and the version number is worth more than a description. Pin a version if you depend on it.

provider   deepseek-web
models     deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
cost       nothing per token — it uses the subscription already open in your browser
status     ongoing development — expect bugs
measured   first token ~1.9 s · overhead ~0.6 s · a full turn in ~2.5 s

Replies from the web route are signed 🔴 Uncle Sam. That name is a joke, not a claim: it marks which route answered, and API replies carry no signature at all. You always know which of the two answered you.


What it saves you

The API bills per token. The web product does not. This plugin registers deepseek-web as a model provider and answers every call by driving chat.deepseek.com in a real browser — the page does the work, the browser holds the session, and nothing is metered.

API routeWeb route
Costper token, forevernothing beyond the subscription
Speedfast~2.5 s a turn, measured
Tool callingnative and reliableemulated, works but weaker
Depends onthe APIa website that changes without notice

Both routes stay installed. The model picker is the switch, so you can use the cheap one by default and reach for the API when a task needs reliable tool use.


Installing

Uncle Sam is a DeepSeek Harness plugin. It does nothing outside the harness, because it registers a model provider, a host route and two client UI slots.

Requirements

DeepSeek Harnessany recent build with the plugin manager
BrowserBrave recommended, Edge used automatically when Brave is absent
Node22 or newer

From npm

pnpm add @operatingtag/dsh-unclesam

From this repository

git clone https://github.com/operatingtag/dsh-unclesam
cd dsh-unclesam
pnpm install

Then add the bundle row to your profile so the harness loads it:

# cordis.patch.yml
- insert:
    - id: dsh-unclesam
      name: '@operatingtag/dsh-unclesam'
      config:
        port: 9222
        defaultModel: deepseek-chat-search
        autoMinimise: true

Or from a folder: Settings → Plugins → install from a local path, pointed at the folder holding package.json.

First run

Click Sign in / open chat. The browser opens and stays visible until you have signed in at chat.deepseek.com. After that it minimises itself and you will not see it again. The session lives in your browser profile, so no password is stored by the plugin — there is nothing to leak.

You should then see:

  1. Settings → Uncle Sam — a page with status rows and a sign-in button.
  2. Under the chat box — ● DeepSeek Harness or ● Uncle Sam, click to switch.
  3. The model list — four (web) models beside the API models.

Removing it

Settings → Plugins → Uncle Sam → Uninstall. Nothing is written outside the browser profile you signed in to.


The API / web switch

The model picker is the switch. There is no second control, because a second control that also chose the model would be two sources of truth for one decision.

Pick this modelRouteDeepThinkSearch
DeepSeek Chat (web)browseroffoff
DeepSeek Chat + Search (web)browseroffon
DeepSeek Reasoner (web)browseronoff
DeepSeek Reasoner + Search (web)browseronon
any model without (web)the API——

A WEB or API badge renders beside the model label so the active route is visible at a glance. When the label is not recognised the badge renders nothing rather than guessing — a wrong badge is worse than none.

Your choice persists across restarts. DeepThink is the reasoning pass; Search lets it read the live web.

Search is visible in the transcript

With a search model, a turn produces two blocks — the query it searched with, the sources it found, then the answer that used them:

Web search — "What is one technology news headline from today?"
Sources (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
Links: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...

The page does not expose the query it typed internally, so the quoted query is the prompt that triggered the search. Sources and links are read from the page once the answer settles. Because sources only exist at the end, search turns buffer instead of streaming; ordinary turns still stream token by token.


Why a browser, and not their HTTP API

The obvious route — calling chat.deepseek.com's own API — was attempted and abandoned. The site makes every message clear two gates:

GateWhat it means
/api/v0/chat/create_pow_challengea proof-of-work challenge per message
challenges.cloudflare.com/turnstilea bot gate on the origin

Re-implementing either is a losing game: they are obfuscated, they change, and when they change the failure looks exactly like a network fault. The page already solves both for its own requests.

So the adapter never speaks HTTP to the site. It drives the page, and the page does the rest. Auth, proof-of-work and Turnstile stop being our problem and cannot break independently of the site itself.

Verified: a plain HEAD to the site returns 403; the browser path returns answers.


Limits, stated honestly

Tool use is emulated. A web chat has no structured tool channel, so tools are described in the prompt and a call is recovered by parsing a JSON object out of the reply. It works — verified — but it is weaker than native tool calling: a model that ignores the instruction answers in prose, and the harness sees no tool use that turn. For heavy agentic work the API route is more reliable. The web route is best for chat, long answers, subagents, compaction, and any turn where the model must be the web model.

It depends on a website you do not control. When the page changes shape, the plugin has to change with it. That is the ongoing-development warning at the top of this page, not a formality.

It is not affiliated with DeepSeek. It is not endorsed by them, and it gives you no rights in their service. Your use of that service is governed by their terms.


Configuration

cordis.patch.yml sets:

keydefaultmeaning
port9222the browser's debugging port
defaultModeldeepseek-chat-searchused when a call names no model
showBrowsertruewhether the window is visible while it works

The browser must hold a signed-in chat.deepseek.com session. The first call launches Brave on the Default profile if the port is not already open. If Brave is already running without a debugging port, the adapter cannot attach, and says so clearly rather than failing silently.


Architecture

index.js          the adapter: harness StreamChunk  ←→  engine
lib/engine.mjs    browser + page: type, send, stream, settle
lib/cdp.mjs       Chrome DevTools Protocol client, zero dependencies
lib/prompt.mjs    flatten messages + tools into one message; recover tool calls from the reply
lib/savings.mjs   what the web route saved you, priced against the API
lib/i18n.mjs      51 languages for the panel

No dependencies. Node 24 ships a global WebSocket and fetch, which is all CDP needs, so the token stream never leaves the host process and there is no IPC hop per delta.


Support

Uncle Sam exists so you stop paying per token. If it saved you money, and you would like to see the next one built on hardware that does not run out of memory halfway through:

☕ revolut.me/operatingtag

A star on the repo or a useful bug report is worth just as much.


Licence

CC BY-NC-ND 4.0 — Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International. Copyright (c) 2026 Darren T. Weldon, published under the Operating Tag name.

The whole deal, in one line: install it and use it, personally, for free. Do not change it, do not share it, do not sell it, and do not use it in a business.

That is not open source, and it does not pretend to be.

you may      install it and run it · use it personally, non-commercially
             read the source to understand it

you may not  modify, adapt or create a derivative of it
             copy, distribute, publish, mirror or make it available to anyone
             upload it to any code host, registry, website, forum or chat
             sell, resell, rent, or charge for it or for access to it
             bundle it into anything you supply to another person
             use it for any commercial purpose, or in the course of a business

The only two legitimate sources are this repository and the npm package @operatingtag/dsh-unclesam. A copy from anywhere else is not licensed, whoever supplied it. If you see this software for sale, it is not being sold by its author.

Commercial use, and the right to modify and distribute, are available under a separate written licence. Ask Operating Tag and you will get a straight answer and a clear price.

The LICENSE file governs, and it opens with the same summary in plain English.


Uncle Sam is an independent plugin. Not affiliated with, endorsed by, or supported by DeepSeek.

@operatingtag/dsh-unclesam   v1.3.5
Author   Operating Tag
Licence  CC BY-NC-ND 4.0 — free to use, not to change, share or sell

Related plugins