[English](README.md) · [Español](README.es.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Português](README.pt.md) · [Italiano](README.it.md) · [Türkçe](README.tr.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · [简体中文](README.zh.md) · [Русский](README.ru.md) · [Polski](README.pl.md) · [हिन्दी](README.hi.md) · [Nederlands](README.nl.md) · [Українська](README.uk.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [ไทย](README.th.md) · [فارسی](README.fa.md) · [Ελληνικά](README.el.md) · [עברית](README.he.md) · [Čeština](README.cs.md) · [Română](README.ro.md) · **Svenska** · [Dansk](README.da.md) · [Suomi](README.fi.md) · [Magyar](README.hu.md) · [العربية](README.ar.md) · [Oʻzbekcha](README.uz.md) · [Azərbaycan](README.az.md) · [Български](README.bg.md) · [Hrvatski](README.hr.md) · [Қазақша](README.kk.md) · [ქართული](README.ka.md) · [नेपाली](README.ne.md) · [සිංහල](README.si.md) · [தமிழ்](README.ta.md) · [తెలుగు](README.te.md) · [मराठी](README.mr.md) · [বাংলা](README.bn.md) · [ខ្មែរ](README.km.md) · [Lietuvių](README.lt.md) · [Bahasa Melayu](README.ms.md) · [မြန်မာ](README.my.md) · [Norsk](README.no.md) · [Slovenčina](README.sk.md) · [Slovenščina](README.sl.md) · [Српски](README.sr.md) · [Kiswahili](README.sw.md) · [Filipino](README.tl.md) · [اردو](README.ur.md)

# Uncle Sam

**En leverantör för DeepSeek Harness som svarar genom din egen webbläsare, på det webbkonto du redan har, i stället för det debiterade API:t.**

**DeepSeek Harness-insticksprogrammet som styr chat.deepseek.com i en riktig webbläsare — det gratis alternativet till DeepSeek API. Chatta, DeepThink och webbsökning på ditt eget konto: ingen API-nyckel, ingen kostnad per token.**

**☕ [Bjud mig på en kaffe](https://revolut.me/operatingtag)** — skrivs av en person, på nätterna, utan finansiering. Det finns ingen annan intäktsmodell. En stjärna eller en användbar felrapport är värd lika mycket.

> **Den här produkten utvecklas aktivt. Räkna med buggar.**
>
> Den fungerar, den är snabb och den har använts dagligen i veckor — men den ändras hela tiden, och webbläsarvägen
> beror på en webbplats som ändras utan förvarning. Om något går sönder är en skärmbild och versionsnumret värt mer än
> en beskrivning. Lås en version om du är beroende av den.

```
leverantör  deepseek-web
modeller    deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
kostnad     inget per token — den använder prenumerationen som redan är öppen i din webbläsare
status      under utveckling — räkna med buggar
mätt        första token ~1,9 s · överhead ~0,6 s · en hel tur på ~2,5 s
```

Svar från webbvägen signeras **🔴 Uncle Sam**. Namnet är ett skämt, inte ett påstående: det markerar vilken väg som
svarade, och API-svar har ingen signatur alls. Du vet alltid vem som svarade dig.

---

## Vad det sparar åt dig

API:t debiterar per token. Webbprodukten gör det inte. Insticksprogrammet registrerar `deepseek-web` som
modellleverantör och svarar på varje anrop genom att styra `chat.deepseek.com` i en riktig webbläsare — sidan gör
jobbet, webbläsaren håller sessionen och ingenting mäts.

| | API-vägen | Webbvägen |
|---|---|---|
| Kostnad | per token, för alltid | inget utöver prenumerationen |
| Hastighet | snabb | ~2,5 s per tur, mätt |
| Verktygsanrop | inbyggt och pålitligt | emulerat, fungerar men svagare |
| Beror på | API:t | en webbplats som ändras utan förvarning |

**Båda vägarna finns kvar.** Modellväljaren är strömbrytaren: använd den billiga vägen som standard och ta API:t när
en uppgift behöver pålitliga verktyg.

---

## Installation

Uncle Sam är ett **insticksprogram för DeepSeek Harness**. Utanför harness gör det ingenting, eftersom det registrerar
en modellleverantör, en väg på värden och två platser i gränssnittet.

**Krav**

| | |
|---|---|
| DeepSeek Harness | vilken nyare version som helst med instickshanteraren |
| Webbläsare | Brave rekommenderas; Edge används automatiskt om Brave saknas |
| Node | 22 eller nyare |

**Från npm**

```bash
pnpm add @operatingtag/dsh-unclesam
```

**Från det här arkivet**

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

Lägg sedan till paketrader i din profil så att harness laddar det:

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

**Eller från en mapp:** Inställningar → Insticksprogram → installera från en lokal sökväg, peka på mappen med
`package.json`.

### Första körningen

Klicka på **Logga in / öppna chatten**. Webbläsaren öppnas och **förblir synlig** tills du har loggat in på
chat.deepseek.com. Därefter minimeras den själv och du ser den inte igen. Sessionen ligger i din webbläsarprofil, så
**insticksprogrammet sparar inget lösenord** — det finns inget att läcka.

Du bör då se:

1. **Inställningar → Uncle Sam** — en sida med statusrader och en inloggningsknapp.
2. **Under meddelanderutan** — `● DeepSeek Harness` eller `● Uncle Sam`, klicka för att växla.
3. **Modellistan** — fyra `(web)`-modeller bredvid API:ts modeller.

### Ta bort

Inställningar → Insticksprogram → Uncle Sam → Avinstallera. Ingenting skrivs utanför webbläsarprofilen du loggade in
med.

---

## Växeln API / webb

**Modellväljaren är växeln.** Det finns ingen andra kontroll, eftersom en andra kontroll som också valde modell skulle
vara två källor till sanning för ett beslut.

| Välj den här modellen | Väg | DeepThink | Sökning |
|---|---|---|---|
| `DeepSeek Chat (web)` | webbläsare | av | av |
| `DeepSeek Chat + Search (web)` | webbläsare | av | **på** |
| `DeepSeek Reasoner (web)` | webbläsare | **på** | av |
| `DeepSeek Reasoner + Search (web)` | webbläsare | **på** | **på** |
| vilken modell som helst utan `(web)` | API:t | — | — |

En bricka **WEB** eller **API** visas bredvid modellnamnet så att den aktiva vägen syns direkt. När namnet inte känns
igen visar brickan ingenting i stället för att gissa — en felaktig bricka är värre än ingen.

Ditt val består mellan omstarter. **DeepThink** är resonemangssteget; **Sökning** låter den läsa den levande webben.

### Sökningen syns i konversationen

Med en sökmodell ger en tur **två block** — frågan den sökte med, källorna den hittade och sedan svaret som använde
dem:

```
Webbsökning — "Vilken är en teknikrubrik i dag?"
Källor (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
Länkar: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
```

Sidan avslöjar inte frågan den skrev in internt, så den citerade frågan är meddelandet som utlöste sökningen. Källor och
länkar läses från sidan när svaret har lagt sig. Eftersom källor bara finns i slutet, **buffras sökturer i stället för
att strömmas**; vanliga turer strömmas fortfarande token för token.

---

## Varför en webbläsare och inte deras HTTP-API

Den uppenbara vägen — att anropa `chat.deepseek.com`s eget API — provades och övergavs. Sajten tvingar varje meddelande
genom två portar:

| Port | Vad det betyder |
|---|---|
| `/api/v0/chat/create_pow_challenge` | ett **arbetsbevis** per meddelande |
| `challenges.cloudflare.com/turnstile` | en botport vid ursprunget |

Att återimplementera någon av dem är ett förlorat spel: de är obfuskerade, de ändras, och när de ändras ser felet ut
precis som ett nätverksfel. **Sidan löser redan båda för sina egna förfrågningar.**

Så adaptern talar aldrig HTTP med sajten. Den styr sidan, och sidan gör resten. Autentisering, arbetsbevis och
Turnstile slutar vara vårt problem och kan inte gå sönder oberoende av sajten själv.

**Verifierat:** en vanlig `HEAD` mot sajten ger `403`; webbläsarvägen ger svar.

---

## Gränser, ärligt sagda

**Verktygsanrop är emulerat.** En webbchatt har ingen strukturerad verktygskanal: verktyg beskrivs i prompten och ett
anrop återskapas genom att extrahera ett JSON-objekt ur svaret. Det fungerar — verifierat — men är svagare än inbyggt
anrop: en modell som ignorerar instruktionen svarar i prosa och harness ser ingen verktygsanvändning den turen. **För
tungt agentarbete är API-vägen pålitligare.** Webbvägen passar bäst för samtal, långa svar, subagenter, komprimering
och varje tur där modellen måste vara webbmodellen.

**Den beror på en webbplats du inte kontrollerar.** När sidan byter form måste insticksprogrammet följa med. Det är
utvecklingsvarningen högst upp på sidan, inte en formalitet.

**Den är inte knuten till DeepSeek.** Den är inte godkänd eller stödd av dem och ger dig inga rättigheter i deras
tjänst. Din användning av den tjänsten styrs av deras villkor.

---

## Konfiguration

`cordis.patch.yml` anger:

| nyckel | standard | betydelse |
|---|---|---|
| `port` | `9222` | webbläsarens felsökningsport |
| `defaultModel` | `deepseek-chat-search` | används när ett anrop inte anger någon modell |
| `showBrowser` | `true` | om fönstret syns medan det arbetar |

Webbläsaren måste ha en inloggad session på `chat.deepseek.com`. Första anropet startar Brave med profilen **Default**
om porten inte redan är öppen. Om Brave redan körs *utan* felsökningsport kan adaptern inte ansluta och säger det
tydligt i stället för att misslyckas tyst.

---

## Uppbyggnad

```
index.js          adaptern: harness StreamChunk  ←→  motor
lib/engine.mjs    webbläsare + sida: skriva, skicka, strömma, låta lägga sig
lib/cdp.mjs       Chrome DevTools Protocol-klient, inga beroenden
lib/prompt.mjs    plattar ut meddelanden + verktyg till ett meddelande; hämtar anrop ur svaret
lib/savings.mjs   vad webbvägen sparade åt dig, prissatt mot API:t
lib/i18n.mjs      51 språk för panelen
```

**Inga beroenden.** Node 24 har globala `WebSocket` och `fetch`, vilket är allt CDP behöver, så tokenströmmen lämnar
aldrig värdprocessen och det finns inget IPC-hopp per delta.

---

## Stöd

Uncle Sam finns för att du ska sluta betala per token. Om det sparade pengar åt dig och du vill se nästa byggd på
hårdvara som inte tar slut på minne halvvägs:

**[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**

En stjärna på arkivet eller en användbar felrapport är värd lika mycket.

---

## Licens

**CC BY-NC-ND 4.0** — Creative Commons Erkännande-IckeKommersiell-IngaBearbetningar 4.0 Internationell.
Copyright (c) 2026 Darren T. Weldon, publicerat under namnet Operating Tag.

**Hela överenskommelsen på en rad: installera och använd personligen, gratis. Ändra inte, dela inte, sälj inte och
använd inte i ett företag.**

Det här är inte öppen källkod, och det låtsas inte vara det.

```
du får        installera och köra det · använda det personligen, icke-kommersiellt
              läsa källkoden för att förstå den

du får inte   ändra, anpassa eller skapa ett bearbetat verk
              kopiera, distribuera, publicera, spegla eller
              göra det tillgängligt för någon annan
              ladda upp det till någon kodvärd, register, webbplats, forum eller chatt
              sälja, återförsälja, hyra ut eller ta betalt för det eller för åtkomst till det
              inkludera det i något du lämnar till någon annan
              använda det för något kommersiellt syfte eller inom affärsverksamhet
```

**De enda två legitima källorna är det här arkivet och npm-paketet
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** En kopia från någon
annanstans är inte licensierad, vem som än gav den. Om du ser den här programvaran till salu är det inte författaren
som säljer den.

**Kommersiell användning, samt rätten att ändra och distribuera, finns under en separat skriftlig licens.** Fråga
Operating Tag — du får ett tydligt svar och ett tydligt pris.

Filen [LICENSE](LICENSE) är den som gäller, och den börjar med samma sammanfattning på enkel engelska.

---

Uncle Sam är ett fristående insticksprogram. Inte knutet till DeepSeek, inte godkänt eller stött av dem.

```
@operatingtag/dsh-unclesam   v1.3.5
Författare   Operating Tag
Licens       CC BY-NC-ND 4.0 — fritt att använda, inte att ändra, dela eller sälja
```
