[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](README.sv.md) · **Dansk** · [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 udbyder til DeepSeek Harness, der svarer gennem din egen browser på den webkonto, du allerede har, i stedet for det fakturerede API.**

**DeepSeek Harness-plugin'et, der styrer chat.deepseek.com i en rigtig browser — det gratis alternativ til DeepSeek API. Chat, DeepThink og websøgning på din egen konto: ingen API-nøgle, ingen betaling pr. token.**

**☕ [Køb en kaffe til mig](https://revolut.me/operatingtag)** — skrevet af én person, om natten, uden finansiering. Der er ingen anden indtægtsmodel. En stjerne eller en brugbar fejlrapport er lige så meget værd.

> **Dette produkt er i aktiv udvikling. Forvent fejl.**
>
> Det virker, det er hurtigt, og det har kørt dagligt i uger — men det ændrer sig hele tiden, og browservejen afhænger
> af et websted, der ændrer sig uden varsel. Hvis noget går i stykker, er et skærmbillede og versionsnummeret mere værd
> end en beskrivelse. Lås en version, hvis du er afhængig af det.

```
udbyder    deepseek-web
modeller   deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
pris       intet pr. token — bruger det abonnement, der allerede er åbent i din browser
status     under udvikling — forvent fejl
målt       første token ~1,9 s · overhead ~0,6 s · en hel tur på ~2,5 s
```

Svar fra webvejen er signeret **🔴 Uncle Sam**. Navnet er en joke, ikke en påstand: det markerer, hvilken vej der
svarede, og API-svar har slet ingen signatur. Du ved altid, hvem der svarede dig.

---

## Hvad det sparer dig

API'et fakturerer pr. token. Webproduktet gør ikke. Dette plugin registrerer `deepseek-web` som modeludbyder og svarer
på hvert kald ved at styre `chat.deepseek.com` i en rigtig browser — siden gør arbejdet, browseren holder sessionen, og
intet måles.

| | API-vejen | Webvejen |
|---|---|---|
| Pris | pr. token, for altid | intet ud over abonnementet |
| Hastighed | hurtig | ~2,5 s pr. tur, målt |
| Værktøjskald | indbygget og pålideligt | emuleret, virker men svagere |
| Afhænger af | API'et | et websted, der ændrer sig uden varsel |

**Begge veje forbliver installeret.** Modelvælgeren er kontakten: brug den billige vej som standard, og grib til API'et
når en opgave kræver pålidelige værktøjer.

---

## Installation

Uncle Sam er et **plugin til DeepSeek Harness**. Uden for harness gør det ingenting, fordi det registrerer en
modeludbyder, en rute på værten og to steder i brugerfladen.

**Krav**

| | |
|---|---|
| DeepSeek Harness | enhver nyere version med plugin-administrator |
| Browser | Brave anbefales; Edge bruges automatisk, hvis Brave mangler |
| Node | 22 eller nyere |

**Fra npm**

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

**Fra dette lager**

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

Tilføj derefter pakkelinjen til din profil, så harness indlæser det:

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

**Eller fra en mappe:** Indstillinger → Plugins → installér fra en lokal sti, peg på mappen med `package.json`.

### Første kørsel

Klik på **Log ind / åbn chatten**. Browseren åbner og **forbliver synlig**, indtil du er logget ind på
chat.deepseek.com. Derefter minimerer den sig selv, og du ser den ikke igen. Sessionen ligger i din browserprofil, så
**plugin'et gemmer ingen adgangskode** — der er intet at lække.

Du bør derefter se:

1. **Indstillinger → Uncle Sam** — en side med statuslinjer og en login-knap.
2. **Under skrivefeltet** — `● DeepSeek Harness` eller `● Uncle Sam`, klik for at skifte.
3. **Modellisten** — fire `(web)`-modeller ved siden af API'ets modeller.

### Fjernelse

Indstillinger → Plugins → Uncle Sam → Afinstallér. Intet skrives uden for den browserprofil, du loggede ind med.

---

## Kontakten API / web

**Modelvælgeren er kontakten.** Der er ingen anden kontrol, fordi en anden kontrol, der også valgte modellen, ville
være to sandhedskilder til én beslutning.

| Vælg denne model | Vej | DeepThink | Søgning |
|---|---|---|---|
| `DeepSeek Chat (web)` | browser | fra | fra |
| `DeepSeek Chat + Search (web)` | browser | fra | **til** |
| `DeepSeek Reasoner (web)` | browser | **til** | fra |
| `DeepSeek Reasoner + Search (web)` | browser | **til** | **til** |
| enhver model uden `(web)` | API'et | — | — |

Et mærke **WEB** eller **API** vises ved siden af modelnavnet, så den aktive vej ses med ét blik. Når navnet ikke
genkendes, viser mærket intet i stedet for at gætte — et forkert mærke er værre end intet.

Dit valg bevares mellem genstart. **DeepThink** er ræsonnementspasset; **Søgning** lader den læse den levende web.

### Søgningen ses i samtalen

Med en søgemodel giver en tur **to blokke** — forespørgslen den søgte med, kilderne den fandt og derefter svaret, der
brugte dem:

```
Websøgning — "Hvad er en teknologoverskrift i dag?"
Kilder (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
Links: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
```

Siden afslører ikke den forespørgsel, den skrev internt, så den citerede forespørgsel er den besked, der udløste
søgningen. Kilder og links læses fra siden, når svaret har lagt sig. Fordi kilder kun findes til sidst, **buffes
ture med søgning i stedet for at streames**; almindelige ture streames stadig token for token.

---

## Hvorfor en browser og ikke deres HTTP-API

Den oplagte vej — at kalde `chat.deepseek.com`s eget API — blev prøvet og opgivet. Webstedet tvinger hver besked
gennem to porte:

| Port | Hvad det betyder |
|---|---|
| `/api/v0/chat/create_pow_challenge` | et **arbejdsbevis** pr. besked |
| `challenges.cloudflare.com/turnstile` | en botport ved oprindelsen |

At genimplementere en af dem er et tabt spil: de er obfuskerede, de ændrer sig, og når de ændrer sig, ligner fejlen
præcis en netværksfejl. **Siden løser allerede begge for sine egne anmodninger.**

Så adapteren taler aldrig HTTP med webstedet. Den styrer siden, og siden gør resten. Godkendelse, arbejdsbevis og
Turnstile holder op med at være vores problem og kan ikke gå i stykker uafhængigt af webstedet selv.

**Verificeret:** en almindelig `HEAD` mod webstedet giver `403`; browservejen giver svar.

---

## Grænser, sagt ærligt

**Værktøjskald er emuleret.** En webchat har ingen struktureret værktøjskanal: værktøjer beskrives i prompten, og et
kald genskabes ved at trække et JSON-objekt ud af svaret. Det virker — verificeret — men er svagere end indbygget
kald: en model, der ignorerer instruktionen, svarer i prosa, og harness ser ingen værktøjsbrug den tur. **Til tungt
agentarbejde er API-vejen mere pålidelig.** Webvejen er bedst til samtale, lange svar, subagenter, komprimering og
enhver tur, hvor modellen skal være webmodellen.

**Den afhænger af et websted, du ikke kontrollerer.** Når siden skifter form, skal plugin'et følge med. Det er
udviklingsadvarslen øverst på siden, ikke en formalitet.

**Den er ikke knyttet til DeepSeek.** Den er ikke godkendt eller støttet af dem og giver dig ingen rettigheder i deres
tjeneste. Din brug af den tjeneste styres af deres vilkår.

---

## Konfiguration

`cordis.patch.yml` angiver:

| nøgle | standard | betydning |
|---|---|---|
| `port` | `9222` | browserens fejlretningsport |
| `defaultModel` | `deepseek-chat-search` | bruges når et kald ikke angiver en model |
| `showBrowser` | `true` | om vinduet er synligt, mens det arbejder |

Browseren skal have en indlogget session på `chat.deepseek.com`. Første kald starter Brave med profilen **Default**,
hvis porten ikke allerede er åben. Hvis Brave allerede kører *uden* fejlretningsport, kan adapteren ikke forbinde og
siger det klart i stedet for at fejle lydløst.

---

## Opbygning

```
index.js          adapteren: harness StreamChunk  ←→  motor
lib/engine.mjs    browser + side: skrive, sende, streame, lade lægge sig
lib/cdp.mjs       Chrome DevTools Protocol-klient, ingen afhængigheder
lib/prompt.mjs    flader beskeder + værktøjer ud til én besked; henter kald ud af svaret
lib/savings.mjs   hvad webvejen sparede dig, prissat mod API'et
lib/i18n.mjs      51 sprog til panelet
```

**Ingen afhængigheder.** Node 24 har globale `WebSocket` og `fetch`, hvilket er alt CDP behøver, så tokenstrømmen
forlader aldrig værtsprocessen, og der er intet IPC-hop pr. delta.

---

## Støtte

Uncle Sam findes, for at du kan holde op med at betale pr. token. Hvis det sparede dig penge, og du gerne vil se den
næste bygget på hardware, der ikke løber tør for hukommelse halvvejs:

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

En stjerne på lageret eller en brugbar fejlrapport er lige så meget værd.

---

## Licens

**CC BY-NC-ND 4.0** — Creative Commons Kreditering-IkkeKommerciel-IngenBearbejdelser 4.0 International.
Copyright (c) 2026 Darren T. Weldon, offentliggjort under navnet Operating Tag.

**Hele aftalen på én linje: installér og brug personligt, gratis. Ændr ikke, del ikke, sælg ikke, og brug ikke i en
virksomhed.**

Dette er ikke open source, og det foregiver ikke at være det.

```
du må        installere og køre det · bruge det personligt, ikke-kommercielt
             læse kildekoden for at forstå den

du må ikke   ændre, tilpasse eller skabe et bearbejdet værk
             kopiere, distribuere, offentliggøre, spejle eller
             gøre det tilgængeligt for andre
             uploade det til enhver kodehosting, registret, websted, forum eller chat
             sælge, videresælge, udleje eller tage betaling for det eller for adgang til det
             inkludere det i noget, du giver videre til andre
             bruge det til noget kommercielt formål eller i forbindelse med virksomhedsdrift
```

**De eneste to legitime kilder er dette lager og npm-pakken
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** En kopi fra et andet
sted er ikke licenseret, uanset hvem der gav den. Hvis du ser denne software til salg, er det ikke forfatteren, der
sælger den.

**Kommerciel brug samt retten til at ændre og distribuere findes under en separat skriftlig licens.** Spørg Operating
Tag — du får et klart svar og en klar pris.

Filen [LICENSE](LICENSE) er den gældende, og den begynder med samme resumé på enkelt engelsk.

---

Uncle Sam er et uafhængigt plugin. Ikke knyttet til DeepSeek, ikke godkendt eller støttet af dem.

```
@operatingtag/dsh-unclesam   v1.3.5
Forfatter   Operating Tag
Licens      CC BY-NC-ND 4.0 — frit at bruge, ikke at ændre, dele eller sælge
```
