[English](README.md) · [Español](README.es.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Português](README.pt.md) · **Italiano** · [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](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

**Un provider per DeepSeek Harness che risponde attraverso il tuo browser, sull'account web che hai già, invece dell'API a pagamento.**

**Il plugin di DeepSeek Harness che guida chat.deepseek.com in un browser vero: l'alternativa gratuita all'API di DeepSeek. Chat, DeepThink e ricerca web sul tuo account, senza chiave API e senza pagare per token.**

**☕ [Offrimi un caffè](https://revolut.me/operatingtag)** — scritto da una persona, di notte, senza finanziamenti. Non c'è nessun altro modello di ricavo. Una stella o una segnalazione di bug valgono lo stesso.

> **Questo prodotto è in sviluppo attivo. Aspettati dei bug.**
>
> Funziona, è veloce ed è usato ogni giorno da settimane — ma cambia di continuo, e la strada del browser dipende
> da un sito che cambia senza avvisare. Se qualcosa si rompe, uno screenshot e il numero di versione valgono più
> di una descrizione. Fissa una versione se ci fai affidamento.

```
provider   deepseek-web
modelli    deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
costo      niente per token — usa l'abbonamento già aperto nel tuo browser
stato      in sviluppo — aspettati dei bug
misurato   primo token ~1,9 s · sovraccarico ~0,6 s · un turno completo in ~2,5 s
```

Le risposte della strada web sono firmate **🔴 Uncle Sam**. Il nome è uno scherzo, non una dichiarazione: indica
quale strada ha risposto, e le risposte dell'API non portano alcuna firma. Sai sempre chi ti ha risposto.

---

## Quanto ti fa risparmiare

L'API fattura per token. Il prodotto web no. Questo plugin registra `deepseek-web` come provider di modelli e
risponde a ogni chiamata guidando `chat.deepseek.com` in un browser vero — il lavoro lo fa la pagina, la sessione
la tiene il browser, e niente viene misurato.

| | Strada API | Strada web |
|---|---|---|
| Costo | per token, per sempre | niente oltre l'abbonamento |
| Velocità | veloce | ~2,5 s per turno, misurato |
| Chiamata strumenti | nativa e affidabile | emulata, funziona ma è più debole |
| Dipende da | l'API | un sito che cambia senza avvisare |

**Restano installate entrambe le strade.** Il selettore di modello è l'interruttore: usa quella economica come
predefinita e passa all'API quando un compito richiede strumenti affidabili.

---

## Installazione

Uncle Sam è un **plugin di DeepSeek Harness**. Fuori dall'harness non fa nulla, perché registra un provider di
modelli, una rotta sull'host e due spazi dell'interfaccia.

**Requisiti**

| | |
|---|---|
| DeepSeek Harness | qualsiasi versione recente con il gestore di plugin |
| Browser | Brave consigliato, Edge usato automaticamente se manca Brave |
| Node | 22 o superiore |

**Da npm**

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

**Da questo repository**

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

Poi aggiungi la riga del pacchetto al tuo profilo perché l'harness lo carichi:

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

**Oppure da una cartella:** Impostazioni → Plugin → installa da un percorso locale, indicando la cartella con il
`package.json`.

### Primo avvio

Premi **Accedi / apri la chat**. Il browser si apre e **resta visibile** finché non hai fatto l'accesso su
chat.deepseek.com. Dopo si riduce da solo e non lo vedrai più. La sessione vive nel profilo del browser, quindi
**il plugin non memorizza nessuna password** — non c'è niente da far trapelare.

Dovresti poi vedere:

1. **Impostazioni → Uncle Sam** — una pagina con righe di stato e un pulsante di accesso.
2. **Sotto la casella di testo** — `● DeepSeek Harness` o `● Uncle Sam`, clicca per cambiare.
3. **L'elenco dei modelli** — quattro modelli `(web)` accanto a quelli dell'API.

### Rimuoverlo

Impostazioni → Plugin → Uncle Sam → Disinstalla. Non viene scritto nulla fuori dal profilo del browser con cui
hai fatto l'accesso.

---

## L'interruttore API / web

**Il selettore di modello è l'interruttore.** Non c'è un secondo comando, perché un secondo comando che scegliesse
anche il modello sarebbe due fonti di verità per una sola decisione.

| Scegli questo modello | Strada | DeepThink | Ricerca |
|---|---|---|---|
| `DeepSeek Chat (web)` | browser | off | off |
| `DeepSeek Chat + Search (web)` | browser | off | **on** |
| `DeepSeek Reasoner (web)` | browser | **on** | off |
| `DeepSeek Reasoner + Search (web)` | browser | **on** | **on** |
| qualsiasi modello senza `(web)` | l'API | — | — |

Accanto al nome del modello compare un badge **WEB** o **API**, così la strada attiva si vede a colpo d'occhio.
Quando il nome non viene riconosciuto il badge non mostra nulla invece di indovinare — un badge sbagliato sarebbe
peggio di nessun badge.

La scelta resta anche dopo il riavvio. **DeepThink** è la passata di ragionamento; **Ricerca** gli permette di
leggere il web dal vivo.

### La ricerca si vede nella conversazione

Con un modello di ricerca un turno produce **due blocchi** — la query usata, le fonti trovate e poi la risposta
che se n'è servita:

```
Ricerca web — «Qual è una notizia tecnologica di oggi?»
Fonti (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
Link: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
```

La pagina non espone la query digitata internamente, quindi la query citata è il messaggio che ha fatto partire la
ricerca. Fonti e link vengono letti dalla pagina quando la risposta si è assestata. Poiché le fonti esistono solo
alla fine, **i turni con ricerca si accumulano invece di andare in streaming**; i turni normali continuano a
streaming token per token.

---

## Perché un browser e non la loro API HTTP

La strada ovvia — chiamare l'API di `chat.deepseek.com` — è stata tentata e abbandonata. Il sito fa passare ogni
messaggio attraverso due cancelli:

| Cancello | Cosa significa |
|---|---|
| `/api/v0/chat/create_pow_challenge` | una **prova di lavoro** per messaggio |
| `challenges.cloudflare.com/turnstile` | una barriera anti-bot sull'origine |

Reimplementare l'uno o l'altro è una partita persa: sono offuscati, cambiano, e quando cambiano il guasto sembra
esattamente un guasto di rete. **La pagina risolve già entrambi per le proprie richieste.**

Quindi l'adattatore non parla mai HTTP con il sito. Guida la pagina, e la pagina fa il resto. Autenticazione,
prova di lavoro e Turnstile smettono di essere un nostro problema e non possono rompersi indipendentemente dal
sito stesso.

**Verificato:** un semplice `HEAD` al sito restituisce `403`; la strada del browser restituisce risposte.

---

## Limiti, detti con onestà

**La chiamata di strumenti è emulata.** Una chat web non ha un canale strutturato per gli strumenti: vengono
descritti nel prompt e una chiamata viene recuperata estraendo un oggetto JSON dalla risposta. Funziona —
verificato — ma è più debole della chiamata nativa: un modello che ignora l'istruzione risponde in prosa e
l'harness non vede alcuno strumento in quel turno. **Per lavoro agentico pesante la strada API è più affidabile.**
La strada web è migliore per conversazione, risposte lunghe, subagenti, compattazione e ogni turno in cui il
modello deve essere quello web.

**Dipende da un sito che non controlli.** Quando la pagina cambia forma, il plugin deve cambiare con lei. È
l'avviso di sviluppo attivo in cima a questa pagina, non una formalità.

**Non è affiliato a DeepSeek.** Non è approvato né supportato da loro, e non ti dà alcun diritto sul loro
servizio. Il tuo uso di quel servizio è regolato dai loro termini.

---

## Configurazione

`cordis.patch.yml` imposta:

| chiave | predefinito | significato |
|---|---|---|
| `port` | `9222` | la porta di debug del browser |
| `defaultModel` | `deepseek-chat-search` | usato quando una chiamata non indica un modello |
| `showBrowser` | `true` | se la finestra è visibile mentre lavora |

Il browser deve avere una sessione aperta su `chat.deepseek.com`. La prima chiamata avvia Brave con il profilo
**Default** se la porta non è già aperta. Se Brave è già in esecuzione *senza* porta di debug, l'adattatore non
riesce a collegarsi e lo dice chiaramente invece di fallire in silenzio.

---

## Struttura

```
index.js          l'adattatore: StreamChunk dell'harness  ←→  motore
lib/engine.mjs    browser + pagina: scrivere, inviare, trasmettere, assestare
lib/cdp.mjs       client Chrome DevTools Protocol, zero dipendenze
lib/prompt.mjs    appiattisce messaggi + strumenti in un messaggio; recupera le chiamate dalla risposta
lib/savings.mjs   quanto ti ha fatto risparmiare la strada web, prezzato contro l'API
lib/i18n.mjs      51 lingue per il pannello
```

**Nessuna dipendenza.** Node 24 include `WebSocket` e `fetch` globali, che è tutto ciò di cui il CDP ha bisogno:
il flusso dei token non lascia mai il processo host e non c'è un salto IPC per ogni delta.

---

## Sostegno

Uncle Sam esiste perché tu smetta di pagare per token. Se ti ha fatto risparmiare e vorresti vedere il prossimo
costruito su hardware che non finisce la memoria a metà strada:

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

Una stella sul repository o una segnalazione di bug utile valgono lo stesso.

---

## Licenza

**CC BY-NC-ND 4.0** — Creative Commons Attribuzione-NonCommerciale-NonOpereDerivate 4.0 Internazionale.
Copyright (c) 2026 Darren T. Weldon, pubblicato con il nome Operating Tag.

**Tutto l'accordo in una riga: installalo e usalo, personalmente, gratis. Non modificarlo, non condividerlo, non
venderlo e non usarlo in un'azienda.**

Questo non è open source, e non finge di esserlo.

```
puoi        installarlo ed eseguirlo · usarlo personalmente, senza fini commerciali
            leggere il codice per capirlo

non puoi    modificarlo, adattarlo o crearne un'opera derivata
            copiarlo, distribuirlo, pubblicarlo, rispecchiarlo o renderlo
            disponibile a chiunque altro
            caricarlo su qualsiasi hosting di codice, registro, sito, forum o chat
            venderlo, rivenderlo, affittarlo o farsi pagare per esso o per accedervi
            includerlo in qualsiasi cosa consegni a un'altra persona
            usarlo per qualsiasi fine commerciale o nell'esercizio di un'attività d'impresa
```

**Le uniche due fonti legittime sono questo repository e il pacchetto npm
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** Una copia arrivata
da qualunque altro posto non è sotto licenza, chiunque te l'abbia fornita. Se vedi questo software in vendita, non
lo sta vendendo l'autore.

**L'uso commerciale, e il diritto di modificare e distribuire, sono disponibili con una licenza scritta
separata.** Chiedi a Operating Tag e avrai una risposta chiara e un prezzo chiaro.

Il file [LICENSE](LICENSE) è quello che fa fede, e si apre con lo stesso riassunto in inglese semplice.

---

Uncle Sam è un plugin indipendente. Non affiliato a DeepSeek, né approvato né supportato da loro.

```
@operatingtag/dsh-unclesam   v1.3.5
Autore    Operating Tag
Licenza   CC BY-NC-ND 4.0 — libero da usare, non da modificare, condividere o vendere
```
