SR

syntaxsmith/rosetta

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

37 stars 6 forks Качество 87 Тренд 32MIT

Программный доступ к ChatGPT (в том числе Pro) путем перевода между страницей Chrome и API узла. CDP Fetch interception + WebSocket second-leg streaming.

Обзор

Программный доступ к Node, путем перевода между страницей Chrome и чистым API. Как и Rosetta Stone: веб-протокол Pro с одной стороны, обычный API Node с другой. -: runConversation ({модель: "gpt-6-pro", ...}) следует за событием stream handoff, открывает вторую ногу WebSocket и агрегирует live CoT до message stream complete - тот же UX, что и пользовательский интерфейс chatgpt.com, но возвращаемый из узла. - : не-Pro слаги (gpt-5-6 по умолчанию; gpt-5-5 - это полоса . веб-интерфейса) возвращаются в считанные секунды по тому же пути. - : передай разговорId + родительMessageId (или используйте вспомните: "поток" для настойчивости). - : каждый вызов порождает свою собственную вкладку; многие вызовы могут транслироваться параллельно. - : дополнительный onChunk (delta) callback передает CoT по мере его поступления. Длинные мысли (15 минут +) продолжаются до тех пор, пока WS посылает сердцебиение; только истинное молчание убивает призыв. Вам нужен Chrome с открытым портом удаленной отладки. Профиль повторно используется во время выполнения. Входите один раз, профиль сохраняется.

Обзор (машинный перевод)

Программный доступ к ChatGPT (в том числе Pro) от Node, путем перевода между страницей Chrome и чистым API.

Как и Rosetta Stone: веб-протокол Pro с одной стороны, обычный API Node с другой.

Что он делает

** Поддержка Pro**: runConversation({ model: "gpt-6-pro", ... }) следует за событием stream_handoff, открывает вторую ногу WebSocket и агрегирует живой CoT до message_stream_complete — тот же UX, что и пользовательский интерфейс chatgpt.com, но возвращается из Node.

  • Мгновенные модели тоже: не-Pro слаги (по умолчанию gpt-5-6; gpt-5-5 - это полоса . веб-интерфейса) возвращаются в считанные секунды по тому же пути. Многоповоротный: передайте conversationId + parentMessageId (или используйте recall: "thread" для настойчивости). Совпадение: каждый вызов порождает свою собственную вкладку; многие вызовы могут передаваться параллельно.
  • Живые дельты токенов: необязательный onChunk(delta) обратный вызов потоков CoT по мере его поступления. Сторож бездействия: долго думает (15 минут +) продолжать идти, пока WS посылает сердцебиение; только истинное молчание убивает вызов.

##Установка

Требуется узел ≥ 22.

Настройка: запуск Chrome

Вам нужен Chrome с открытым --remote-debugging-port и ** logged in to chatgpt.com once**.

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

rosetta

Programmatic access to ChatGPT (incl. Pro) from Node, by translating between an auth-holder Chrome page and a clean API.

Like the Rosetta Stone: the Pro web protocol on one side, a regular Node API on the other.

What it does

  • Pro support: runConversation({ model: "gpt-6-pro", ... }) follows the stream_handoff event, opens the WebSocket second leg, and aggregates the live CoT until message_stream_complete — same UX as the chatgpt.com UI but returnable from Node.
  • Instant models too: non-Pro slugs (gpt-5-6 default; gpt-5-5 is the web UI’s 极速 lane) return in seconds via the same path.
  • Multi-turn: pass conversationId + parentMessageId (or use recall: "thread" for persistence).
  • Concurrency: each call spawns its own tab; many calls can stream in parallel.
  • Live token deltas: optional onChunk(delta) callback streams the CoT as it arrives.
  • Idle-timeout watchdog: long thinks (15 min+) keep going as long as the WS sends heartbeats; only true silence kills the call.

Install

pnpm add @syntaxsmith/rosetta
# or
npm i @syntaxsmith/rosetta

Requires Node ≥ 22.

Setup: launch Chrome

You need a Chrome with --remote-debugging-port open and logged in to chatgpt.com once. Profile is reused across runs.

Linux

chromium \
  --remote-debugging-port=9222 \
  --user-data-dir=$HOME/.rosetta/profile \
  --no-first-run --no-default-browser-check \
  https://chatgpt.com/

macOS

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  --remote-debugging-port=9222 \
  --user-data-dir=$HOME/.rosetta/profile \
  --no-first-run --no-default-browser-check \
  https://chatgpt.com/

Windows (PowerShell)

& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
  --remote-debugging-port=9222 `
  --user-data-dir=$env:USERPROFILE\.rosetta\profile `
  --no-first-run --no-default-browser-check `
  https://chatgpt.com/

Sign in once; the profile persists. Subsequent runs reuse the cookies.

CLI

# default = Pro (gpt-6-pro, GPT-6)
rosetta run "Explain idempotent matrices in three sentences."

# cheaper tier via explicit slug
rosetta run -m gpt-5-6 "Reply with the single word: pong"

# stream live tokens
rosetta run --stream "Sketch a 3-paragraph plan for X"

# threaded recall — successive calls build on the same conversation
rosetta run --recall research "what's the prior on Y?"
rosetta run --recall research "given that, what would change?"

# inspect / clear persisted threads
rosetta threads
rosetta forget research

# list models the account exposes
rosetta probe

# attach a local file (repeatable) — image, PDF, CSV, code, ...
rosetta run --attach photo.png "What's in this image?"
rosetta run --attach report.pdf "Quote the third paragraph verbatim."
Открыть полный README на GitHub

Установка

npx -y -p @syntaxsmith/rosetta rosetta-mcp
Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "rosetta": { "command": "npx", "args": ["-y", "-p", "@syntaxsmith/rosetta", "rosetta-mcp"], "env": { "ROSETTA_CDP_PORT": "9222" } } } }