[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) · **Українська** · [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

**Провайдер для DeepSeek Harness, який відповідає через ваш власний браузер — на тому веб-акаунті, який у вас уже є, — замість платного API.**

**Плагін DeepSeek Harness, який керує chat.deepseek.com у справжньому браузері — безкоштовна альтернатива API DeepSeek. Чат, DeepThink і вебпошук на власному акаунті: без ключа API і без оплати за токени.**

**☕ [Пригостіть мене кавою](https://revolut.me/operatingtag)** — пише одна людина, вночі, без фінансування. Іншої моделі доходу немає. Зірка на репозиторії або корисний звіт про помилку важать стільки ж.

> **Продукт в активній розробці. Очікуйте помилок.**
>
> Він працює, він швидкий, і ним користуються щодня вже кілька тижнів — але він постійно змінюється, а
> браузерний шлях залежить від сайту, який змінюється без попередження. Якщо щось зламалося, скріншот і номер
> версії корисніші за опис. Закріпіть версію, якщо ви від нього залежите.

```
провайдер   deepseek-web
моделі      deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
ціна        нуль за токен — використовується підписка, вже відкрита у вашому браузері
стан        у розробці — очікуйте помилок
виміряно    перший токен ~1,9 с · накладні ~0,6 с · повний хід ~2,5 с
```

Відповіді веб-шляху підписані **🔴 Uncle Sam**. Це ім'я — жарт, а не заява: воно позначає, який шлях
відповів, а відповіді API взагалі без підпису. Ви завжди знаєте, хто вам відповів.

---

## Що це заощаджує

API бере гроші за токени. Веб-продукт — ні. Плагін реєструє `deepseek-web` як провайдера моделей і відповідає на
кожен виклик, керуючи `chat.deepseek.com` у справжньому браузері: роботу виконує сторінка, сеанс тримає браузер, і
нічого не тарифікується.

| | Шлях API | Веб-шлях |
|---|---|---|
| Ціна | за токен, завжди | нічого понад підписку |
| Швидкість | швидко | ~2,5 с на хід, виміряно |
| Виклик інструментів | нативний і надійний | емуляція: працює, але слабше |
| Залежить від | API | сайту, що змінюється без попередження |

**Обидва шляхи залишаються встановленими.** Перемикач — це вибір моделі: типово дешевий шлях, а до API
звертаєтеся, коли завданню потрібні надійні інструменти.

---

## Встановлення

Uncle Sam — **плагін DeepSeek Harness**. Поза Harness він нічого не робить, бо реєструє провайдера моделей,
маршрут на хості та два місця в інтерфейсі.

**Вимоги**

| | |
|---|---|
| DeepSeek Harness | будь-яка свіжа збірка з менеджером плагінів |
| Браузер | рекомендовано Brave; Edge використовується автоматично, якщо Brave немає |
| Node | 22 або новіше |

**З npm**

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

**З цього репозиторію**

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

Далі додайте рядок пакета до свого профілю, щоб Harness його завантажив:

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

**Або з теки:** Налаштування → Плагіни → установити з локального шляху, вказуючи теку з `package.json`.

### Перший запуск

Натисніть **Увійти / відкрити чат**. Браузер відкриється і **залишиться видимим**, доки ви не увійдете на
chat.deepseek.com. Після цього він сам згорнеться, і ви його більше не побачите. Сеанс живе у профілі
браузера, тому **плагін не зберігає жодного пароля** — нема чому витікати.

Далі ви маєте побачити:

1. **Налаштування → Uncle Sam** — сторінку з рядками стану й кнопкою входу.
2. **Під полем введення** — `● DeepSeek Harness` або `● Uncle Sam`, натисніть, щоб перемкнути.
3. **Список моделей** — чотири моделі `(web)` поруч із моделями API.

### Видалення

Налаштування → Плагіни → Uncle Sam → Видалити. Поза профілем браузера, у якому ви увійшли, нічого не
записується.

---

## Перемикач API / веб

**Перемикач — це вибір моделі.** Другого елемента керування немає, бо другий елемент, який ще й вибирав би
модель, був би двома джерелами правди для одного рішення.

| Виберіть цю модель | Шлях | DeepThink | Пошук |
|---|---|---|---|
| `DeepSeek Chat (web)` | браузер | вимк | вимк |
| `DeepSeek Chat + Search (web)` | браузер | вимк | **увімк** |
| `DeepSeek Reasoner (web)` | браузер | **увімк** | вимк |
| `DeepSeek Reasoner + Search (web)` | браузер | **увімк** | **увімк** |
| будь-яка модель без `(web)` | API | — | — |

Поруч із назвою моделі з'являється значок **WEB** або **API**, щоб активний шлях було видно з одного погляду.
Якщо назву не розпізнано, значок не показує нічого замість того, щоб вгадувати — неправильний значок гірший за
відсутній.

Вибір зберігається між перезапусками. **DeepThink** — це прохід міркування; **Пошук** дозволяє читати живий веб.

### Пошук видно в розмові

З моделлю пошуку один хід дає **два блоки** — запит, з яким він шукав, знайдені джерела, і потім відповідь, що
ними скористалася:

```
Веб-пошук — «Який сьогодні технологічний заголовок?»
Джерела (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
Посилання: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
```

Сторінка не розкриває запит, який ввела всередині, тому цитований запит — це повідомлення, що запустило пошук.
Джерела й посилання зчитуються зі сторінки, коли відповідь устоялася. Оскільки джерела існують лише в кінці,
**ходи з пошуком буферизуються, а не транслюються**; звичайні ходи й далі йдуть токен за токеном.

---

## Чому браузер, а не їхній HTTP API

Очевидний шлях — викликати власний API `chat.deepseek.com` — спробували й відкинули. Сайт змушує кожне
повідомлення пройти двоє воріт:

| Ворота | Що це означає |
|---|---|
| `/api/v0/chat/create_pow_challenge` | **доказ роботи** на кожне повідомлення |
| `challenges.cloudflare.com/turnstile` | захист від ботів на origin |

Повторно реалізувати будь-що з цього — заздалегідь програшна справа: воно обфусковане, воно змінюється, і коли
воно змінюється, збій виглядає точно як мережева аварія. **Сторінка вже вирішує обидва для власних запитів.**

Тож адаптер ніколи не говорить із сайтом по HTTP. Він керує сторінкою, а сторінка робить решту. Автентифікація,
доказ роботи й Turnstile перестають бути нашою проблемою і не можуть зламатися окремо від самого сайту.

**Перевірено:** простий `HEAD` до сайту повертає `403`; браузерний шлях повертає відповіді.

---

## Обмеження, названі чесно

**Виклик інструментів емулюється.** У веб-чаті немає структурованого каналу для інструментів: їх описують у
запиті, а виклик відновлюють, розбираючи JSON-об'єкт із відповіді. Це працює — перевірено — але слабше за
нативний виклик: модель, що проігнорувала інструкцію, відповідає текстом, і Harness у цьому ході взагалі не
бачить використання інструментів. **Для важкої агентної роботи шлях через API надійніший.** Веб-шлях найкраще
підходить для розмови, довгих відповідей, субагентів, стискання контексту й будь-якого ходу, де модель мусить
бути веб-моделлю.

**Він залежить від сайту, який ви не контролюєте.** Коли сторінка змінює форму, плагін має змінюватися разом із
нею. Це і є попередження про розробку вгорі сторінки, а не формальність.

**Він не пов'язаний із DeepSeek.** Вони його не схвалюють і не підтримують, і він не дає вам жодних прав на їхній
сервіс. Ваше використання цього сервісу регулюється їхніми умовами.

---

## Налаштування

`cordis.patch.yml` задає:

| ключ | типово | значення |
|---|---|---|
| `port` | `9222` | порт налагодження браузера |
| `defaultModel` | `deepseek-chat-search` | використовується, коли виклик не називає модель |
| `showBrowser` | `true` | чи видно вікно під час роботи |

У браузері має бути відкритий сеанс `chat.deepseek.com`. Перший виклик запускає Brave з профілем **Default**,
якщо порт ще не відкритий. Якщо Brave уже працює *без* порту налагодження, адаптер не може підключитися і прямо
про це повідомляє, а не падає мовчки.

---

## Будова

```
index.js          адаптер: StreamChunk Harness  ←→  рушій
lib/engine.mjs    браузер + сторінка: набрати, надіслати, транслювати, дочекатися
lib/cdp.mjs       клієнт Chrome DevTools Protocol, без залежностей
lib/prompt.mjs    зводить повідомлення й інструменти в одне; дістає виклики з відповіді
lib/savings.mjs   скільки заощадив веб-шлях, у цінах API
lib/i18n.mjs      51 мова для панелі
```

**Жодних залежностей.** У Node 24 є глобальні `WebSocket` і `fetch` — більше CDP нічого не потрібно, тож потік
токенів ніколи не покидає процес хоста і на кожну дельту немає переходу через IPC.

---

## Підтримка

Uncle Sam існує, щоб ви перестали платити за токени. Якщо він заощадив вам гроші й ви хотіли б побачити наступний
на залізі, яке не вичерпує пам'ять на півдорозі:

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

Зірка на репозиторії або корисний звіт про помилку важать стільки ж.

---

## Ліцензія

**CC BY-NC-ND 4.0** — Creative Commons «Із зазначенням авторства — Некомерційна — Без похідних творів» 4.0
International. Copyright (c) 2026 Darren T. Weldon, опубліковано під іменем Operating Tag.

**Уся угода одним рядком: встановіть і користуйтеся особисто, безкоштовно. Не змінюйте, не передавайте, не
продавайте і не використовуйте в компанії.**

Це не відкритий код, і він не вдає, що ним є.

```
можна       встановлювати й запускати · використовувати особисто, не для комерції
            читати вихідний код, щоб його зрозуміти

не можна    змінювати, адаптувати або створювати похідний твір
            копіювати, розповсюджувати, публікувати, дзеркалити або
            робити доступним будь-кому
            завантажувати на будь-який хостинг коду, реєстр, сайт, форум чи в чат
            продавати, перепродавати, здавати в оренду або брати гроші за нього
            чи за доступ до нього
            включати в будь-що, що ви передаєте іншій особі
            використовувати з комерційною метою або в межах підприємницької діяльності
```

**Єдині два законні джерела — цей репозиторій і пакет npm
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** Копія, отримана
будь-де інде, не ліцензована, хто б її не надав. Якщо ви бачите це програмне забезпечення у продажу, продає його
не автор.

**Комерційне використання, а також право змінювати й розповсюджувати, доступні за окремою письмовою ліцензією.**
Запитайте Operating Tag — отримаєте пряму відповідь і чітку ціну.

Чинним є файл [LICENSE](LICENSE), і він починається з того самого викладу простою англійською.

---

Uncle Sam — незалежний плагін. Не пов'язаний із DeepSeek, не схвалений і не підтриманий ними.

```
@operatingtag/dsh-unclesam   v1.3.5
Автор      Operating Tag
Ліцензія   CC BY-NC-ND 4.0 — вільно використовувати, не змінювати, передавати чи продавати
```
