README — обзор
Полный обзор zames_pro: быстрый старт, вход в аккаунт, провайдеры, использование, опции и FAQ.
Терминальный coding-агент, работающий поверх веб-чатов LLM (chat.deepseek.com, chat.qwen.ai, chat.z.ai, …) через Playwright. По духу он похож на Claude Code / Codex CLI: запускается в текущей директории, читает и правит файлы, выполняет команды и коммитит в git.
API-ключ не нужен — агент управляет веб-чатом DeepSeek, Qwen или GLM как обычный пользователь через настоящий (headless) браузер.
zames — это бесплатный терминальный coding-агент с открытым исходным кодом
и AI-ассистент программиста, который превращает привычный веб-чат (DeepSeek,
Qwen или GLM) в агента для командной строки в духе Claude Code. Без API-ключа,
без оплаты за токены и без привязки к одному вендору. Установка —
npm install -g zames_pro, запуск — zames в любой папке проекта; задачу
можно описать обычным языком.

Быстрый старт
npm install -g zames_pro # Chromium для Playwright скачается автоматически
cd your-project # любая папка, в которой должен работать агент
zames # один раз войти, дальше просто описывайте задачу
Здесь нет API-ключа и нет оплаты за токены: zames входит в ваш
собственный аккаунт chat.deepseek.com,
chat.qwen.ai или chat.z.ai в
настоящем (headless) Chromium и управляет веб-чатом как обычный пользователь.
При первом запуске он один раз спросит логин (сессия сохраняется в
~/.zames/profile для DeepSeek, ~/.zames/qwen-profile для Qwen или
~/.zames/glm-profile для GLM); после этого достаточно запустить zames и
написать задачу обычным языком:
❯ отрефактори загрузчик конфига и добавь тест на новый дефолт
Пока агент работает, можно продолжать печатать — сообщение, отправленное
посреди задачи, встанет в очередь и уйдёт сразу после неё, в тот же чат.
Esc прерывает текущую генерацию, /help показывает команды, /exit — выход.
Содержание
- Быстрый старт · Как это работает · Возможности
- Почему zames? · Требования · Вход в аккаунт
- Переключение провайдера (DeepSeek / Qwen / GLM)
- Установка · Использование · FAQ
- Справочник: Команды и инструменты · MCP · Конфигурация и темы · Troubleshooting · История изменений
- Ключевые слова и аналоги · Ссылки · Лицензия
Как это работает
zames не вызывает API модели. Он запускает headless Chromium с постоянным профилем, входит в веб-чат как человек, печатает задачу в поле чата и читает ответ обратно.
Доступны три бэкенда, переключаются командой
/provider <deepseek|qwen|glm>:
DeepSeek (chat.deepseek.com, по умолчанию), Qwen (chat.qwen.ai)
и GLM (chat.z.ai).
Переключение живое — zames закрывает текущий бэкенд и открывает другой на
месте, без перезапуска. У каждого свой постоянный профиль
(~/.zames/profile, ~/.zames/qwen-profile, ~/.zames/glm-profile),
поэтому переключение не
разлогинивает другой.

Словами: вы вводите задачу → zames отправляет системный промпт и задачу в активный веб-чат (DeepSeek, Qwen или GLM) → модель отвечает → zames разбирает вызов инструмента, выполняет его локально, возвращает результат обратно и печатает финальный ответ.
Ключевые детали:
- Ответ читается из сырого сетевого потока (SSE), а не из отрендеренного DOM, поэтому JSON вызова инструмента с шаблонными строками и экранированием остаётся целым.
- Постоянный профиль на каждого провайдера (
~/.zames/profileу DeepSeek,~/.zames/qwen-profileу Qwen,~/.zames/glm-profileу GLM) держит вас залогиненным; User-Agent headless-браузера подменяется, чтобы CDN сайта не отдавал 403 на вход. - Троттлинг отправки (15 с у DeepSeek, 4 с у Qwen, который спокойно переносит более частый темп; у GLM — адаптивная пауза с нуля) щадит рейт-лимит веб-чата во время долгих прогонов с инструментами.
- Агент запесочен в директорию запуска — ни один инструмент не может читать или писать выше неё.
Возможности
- Инструменты как в Claude Code / Codex —
Read,Write,Edit,Bash,Glob,Grep, плюсMultiEdit,ApplyPatch,LS,TodoWrite, git- и веб-инструменты. Каждая правка подкреплена/undo, а/rewindвозвращает всё рабочее дерево к чекпойнту. - Работает, пока вы печатаете — сообщения, набранные во время задачи, встают в очередь и уходят сразу после неё, в тот же чат (как набор текста во время генерации на сайте).
- Режим плана —
/plan(или--plan) убирает все мутирующие инструменты, чтобы агент изучал код, не трогая дерево. - Контекст проекта — читает
AGENTS.md,MEMORY.md, навыки (SKILL.md) и пользовательские команды из репозитория и~/.zames, как в Codex / Claude Code. - Субагенты — инструмент
Taskпоручает самодостаточную подзадачу агенту в отдельном чате (изолированный контекст), который возвращает только отчёт, так что тяжёлая разведка не засоряет основной контекст. Включены по умолчанию;browser.subagentsвыключает их, аbrowser.maxSubagentsограничивает число запусков на ОДНУ задачу (по умолчанию 3). Вызовы последовательные, не параллельные, и подтип важен:exploreтолько читает,generalможет править файлы. - Поддержка MCP — подключение внешних серверов инструментов (например,
@playwright/mcp). - Планировщик —
/loop,/cronи/jobsповторяют задачи по таймеру. - Двуязычный интерфейс — русский / английский (
/config lang).
Почему zames?
- Разрабатывается сам собой — над
zames_proработаетzames_pro, а не какой-то другой кодинг-агент: агент в этом самом терминале читает исходники, гоняет тесты, чинит баги и коммитит результат. Это ежедневное доказательство, что он работает и реально используется. - Нет API-ключа и счёта за токены — используется ваш собственный аккаунт чата DeepSeek, Qwen или GLM, а не платный API. Удобно для долгих задач с инструментами.
- Тот же рабочий процесс, что в Claude Code / Codex — инструменты,
AGENTS.md, навыки, MCP и слэш-команды, так что всё знакомо с первого дня. - Работает без присмотра — headless по умолчанию, возобновляемые сессии,
/loopи/cronдля задач по расписанию. - Local-first — профиль браузера, учётные данные и логи не покидают вашу машину, а агент запесочен в директорию проекта.
Требования
- Node.js >= 22
- Аккаунт в нужном чате — DeepSeek (
chat.deepseek.com, по умолчанию), Qwen (chat.qwen.ai) или GLM (chat.z.ai). Qwen также работает в гостевом режиме на несколько сообщений. При первом запуске zames спросит логин в терминале (и сохранит его в~/.zames/config.jsonпосле успешного входа, поэтому более поздний разлогин обрабатывается автоматически, без повторных вопросов). Можно также войти вручную в окне браузера, когда он headed.
Вход в аккаунт
Браузер по умолчанию работает headless. Когда активный бэкенд требует входа, zames:
- переиспользует сессию из постоянного профиля
(
~/.zames/profile,~/.zames/qwen-profileили~/.zames/glm-profile), если она ещё валидна; - иначе входит автоматически по сохранённым учётным данным — пара
browser.auth.*у DeepSeek,qwen.auth.*/glm.auth.*у остальных (saveSessionесть только уbrowser.auth); - иначе открывает видимое окно браузера, чтобы вы вошли сами — капчу (она есть и у DeepSeek, и у z.ai) в терминал не ввести. zames замечает вход и возвращается в headless; введённые вами учётные данные сохраняются для следующего тихого автовхода;
- и только если окно показать нельзя (нет дисплея, неинтерактивный запуск), переходит к форме в терминале.
Чтобы войти руками (например, если сайт показывает капчу), запустите с видимым окном:
zames --headed
Флаг --headless (значение по умолчанию) и headless: true в конфиге держат
браузер без окна; --headed / headless: false показывают его.
Headless работает из коробки: headless Chrome обычно представляется как
HeadlessChrome/..., и CDN сайта блокирует такой User-Agent ответом 403,
поэтому zames срезает этот маркер перед загрузкой страницы (сохраняя реальную
версию движка). --headed нужен не только ради входа.
Учётные данные и переключатели можно также править из /config
(browser.auth.username, browser.auth.password, browser.auth.saveSession;
для Qwen и GLM — qwen.auth.username / qwen.auth.password и та же пара
в glm.auth).
Переключение провайдера (DeepSeek / Qwen / GLM)
zames умеет работать с DeepSeek (chat.deepseek.com, по умолчанию) и
Qwen (chat.qwen.ai):
/provider qwen # переключиться на Qwen (сохраняется) — применяется сразу
/provider deepseek # вернуться обратно
/provider status # активный провайдер / модель / статус входа
/provider login # повторно пройти проверку входа
/model # список моделей Qwen
/model qwen3.7-plus # выбрать модель
Замечания:
- Переключение живое: zames закрывает текущий бэкенд и открывает другой на
месте, перезапуск не нужен. У бэкендов разные постоянные профили
(
~/.zames/profileу DeepSeek,~/.zames/qwen-profileу Qwen), поэтому переключение не разлогинивает другой. - id чата принадлежит ОДНОМУ бэкенду, поэтому новый провайдер открывает свежий чат. Если в прошлом чате были сообщения, они сжимаются и подставляются как handoff в следующую задачу; пустой чат переключается молча.
- Qwen работает в гостевом режиме без аккаунта, но гостю доступно всего
несколько сообщений в день; для долгих прогонов войдите (email / Google /
GitHub — телефон не нужен). zames сам логинится по сохранённым кредам или
спросит в терминале, как и с DeepSeek.
/modelменяет модель Qwen на лету. - GLM (
chat.z.ai) — третий бэкенд. Первое сообщение с нового профиля закрыто капчей-слайдером, поэтому войдите один раз в видимом окне; дальше сохранённая сессия переиспользуется./modelработает и для GLM. - GLM работает с ВИДИМЫМ окном браузера. Замерено: одна и та же
залогиненная сессия в окне отправляет нормально, а КАЖДАЯ отправка из
headless упирается в капчу-слайдер сайта (картинка каждый раз новая, поэтому
программно её не пройти). Поэтому zames запускает GLM с окном по умолчанию и
пишет об этом при старте;
--headlessпо-прежнему форсирует headless (отправки будут упираться в капчу).--headedработает везде. - Телеметрия отправок (по умолчанию выключена): когда включена, каждая
отправка пишется в
~/.zames/logs/sends-<provider>.jsonl(тайминги, флаги режимов, исход и ошибка сервера — без промптов и ответов). Включается через/config set browser.sendTelemetry true. Команда/limitsпоказывает последние отправки и текущую паузу. У GLM вдобавок адаптивная пауза: она начинается с 0 и растёт только после НАСТОЯЩЕГО лимита. - Предупреждение: автоматизация веб-чата может нарушать условия использования сервиса и привести к блокировке аккаунта. У GLM (z.ai) есть официальный API — для тяжёлой автоматизации лучше он.
- Вложения в Qwen идут через пункт Upload attachment в меню режима; в DeepSeek — своя скрепка.
/doctorпоказывает активный провайдер и состояние UI его страницы.
Установка
npm install -g zames_pro
Chromium для Playwright скачивается автоматически при установке. На Linux/WSL
необходимые системные библиотеки тоже ставятся, если доступен sudo без
пароля; иначе выполните один раз вручную:
npx playwright install chromium
sudo npx playwright install-deps chromium
Использование
Перейдите в папку проекта и запустите:
zames
Агент работает внутри директории, из которой он запущен, и не может её покинуть (песочница).
Пока агент работает, можно продолжать печатать: Enter ставит сообщение в очередь (оно уйдёт сразу после текущей задачи, в тот же чат), а Esc / Ctrl+C прерывают текущую генерацию. Это повторяет набор текста во время генерации на сайте чата.
Строка ввода
Промпт — это небольшой редактор строки с постоянной историей:
↑/↓— переход по истории сообщений (сохраняется в~/.zames/history.json, поэтому переживает перезапуск); внутри многострочного сообщения стрелки двигают по строкам.Ctrl+R— инкрементальный поиск по истории в обратном порядке (как в bash): печатайте для фильтра,Ctrl+R— за более старыми совпадениями,Enter— принять,Esc— отменить.Ctrl+_— отменить последнюю правку строки ввода (случайно нажатыеCtrl+U/Ctrl+Kможно вернуть).Ctrl+U— очистить строку,Ctrl+K— удалить до конца строки,Ctrl+W— удалить слово перед курсором,Ctrl+←/Ctrl+→— переход по словам,Ctrl+Delete/Alt+Delete— удалить слово после курсора.\+EnterиCtrl+J— вставить новую строку; эти две работают в любом терминале.Ctrl+EnterиShift+Enterтоже вставляют строку, но только там, где терминал поддерживает kitty-протокол клавиатуры: без него Shift+Enter приходит как обычный Enter, и сообщение отправляется./+Tab— подсказки и автодополнение слэш-команд.!команда— выполнить shell-команду напрямую, минуя модель (как bash-режим Claude Code). Действует та же песочница, что и для инструментаBash, так что прямая команда тоже не может выйти за пределы проекта.
В полноэкранном режиме добавляется навигация по диалогу, чтобы длинный ответ можно было прочитать и выделить не покидая терминал:
ui.mouseScroll=true(по умолчанию) — приложение перехватывает колесо и скроллит диалог; выделение текста тогда —Shift+клик (стандарт TUI). Колесо никогда не листает историю ввода — история только стрелками.ui.mouseScroll=false— мышью снова владеет терминал: обычное выделение текста работает, колесо инертно.- колесо мыши,
PgUp/PgDn(пол-экрана) иHome/End(самый верх / низ) прокручивают диалог; колесо работает приui.mouseScroll=true(по умолчанию), а Home/End прыгают только когда строка ввода пуста (при набранном тексте они двигают курсор, как обычно). - Чтобы скопировать БОЛЬШОЙ кусок, используйте
/export(пишет всю сессию в Markdown) или файл транскрипта (/transcriptпокажет путь) — собственным выделением терминала за пределы одного экрана не выделить.
Установите NO_COLOR=1, чтобы отключить цвета (иначе используется спокойная
палитра по умолчанию).
Картинки и файлы
В строку ввода можно вставить картинку или файл (Shift+Insert или
собственной вставкой терминала; файл из буфера обмена — по Ctrl+V). zames сохраняет его в <project>/tmp и
показывает маркер в строке — [image#1] для картинок, [file#1] для прочих
файлов — затем загружает реальный файл в чат вместе с вашим сообщением. Это те
же форматы, что принимает веб-чат DeepSeek / Qwen / GLM (PNG, JPEG, GIF, WEBP, BMP,
SVG и обычные типы документов).
Вставка картинки работает, когда терминал передаёт её как data: URL или как
base64-блок с узнаваемой сигнатурой изображения. Можно также вставить путь к
локальному файлу (перетащите файл в терминал или скопируйте его путь); если
файл существует — он прикрепляется, иначе текст вставляется как обычно.
Нажмите Ctrl+V (или сделайте пустую вставку), и zames прочитает картинку прямо
из буфера обмена: Linux через wl-paste (Wayland) или xclip/xsel (X11), macOS
через pngpaste, Windows через PowerShell. Нужные Linux-утилиты ставятся
автоматически при npm install (best-effort, через определённый пакетный
менеджер). Если картинка не найдена, zames сообщит об этом и напишет, какой
инструмент пробовал, вместо молчания.
Опции
zames --task <текст задачи>
zames --chat <id>
zames --new-chat
zames --resume-last
zames --resend-prompt
zames --dir <path>
zames --provider <deepseek|qwen|glm>
zames --max-iter <n>
zames --headless
zames --headed
zames --plan
zames --output-format jsonl
zames --debug
zames --version
zames --help
Машиночитаемый вывод (скрипты / CI)
Для одноразовых запусков (--task) агент может выдавать поток событий как JSON
lines в stdout, оставляя весь человеческий текст в stderr:
zames --task "summarize the diff" --output-format jsonl
Каждая строка — одно событие (tool_call, tool_result, assistant_final, …),
так что это сразу пайпится в jq:
zames --task "..." --output-format jsonl \
| jq -r 'select(.type=="assistant_final") | .message'
FAQ
Что-то не работает — куда смотреть?
См. Решение проблем: вход и капча, headless
403, «Something went wrong when opening your profile», «Messages too
frequent», «Length limit reached», гостевые лимиты Qwen/GLM, нехватка
библиотек Chromium и .zamesrc.json, перекрывающий /config set.
Это официальный продукт DeepSeek, Qwen или GLM?
Нет. zames управляет публичными веб-интерфейсами chat.deepseek.com /
chat.qwen.ai / chat.z.ai через настоящий браузер, как обычный пользователь.
Он не связан ни с DeepSeek, ни с Alibaba, ни с Zhipu AI.
Нужен ли API-ключ?
Нет. Вы один раз входите в свой аккаунт на нужном чате — DeepSeek (хранится в
~/.zames/profile), Qwen (хранится в ~/.zames/qwen-profile) или GLM
(хранится в ~/.zames/glm-profile) — и сессия переиспользуется. Qwen также
работает в гостевом режиме на несколько сообщений.
Какую модель он использует?
Ту, которую использует активный веб-чат. В DeepSeek это DeepSeek-V3 (или
reasoning-модель при включённом «Deep thinking»). В Qwen модель можно выбрать
командой /model (например, qwen3.7-plus). zames никогда не вызывает API
напрямую.
Работает ли headless / на сервере?
Да — headless по умолчанию, а --output-format jsonl делает его скриптуемым.
--headed нужен только для ручного входа или отладки селекторов.
Разрешена ли автоматизация веб-интерфейса? Это зависит от условий сайта; автоматизация сайта может их нарушать. Используйте на свой риск и держите троттлинг отправки (15 с в DeepSeek по умолчанию), чтобы не бить по рейт-лимиту.
Чем отличается от Claude Code / Codex?
Та же форма (инструменты, AGENTS.md, навыки, MCP, слэш-команды), но работает
на вашем аккаунте DeepSeek, Qwen или GLM вместо API, как автоматизация браузера, а
не first-party API-клиент.
zames бесплатный? Есть ли бесплатный AI coding-агент без API-ключа?
Да. zames распространяется по лицензии MIT и ставится бесплатно
(npm install -g zames_pro). Он не делает собственных API-запросов и не
считает токены: агент управляет веб-чатом, в который вы уже вошли. Платить
приходится только за то, что и так стоит ваш аккаунт DeepSeek, Qwen или GLM,
а Qwen ещё и работает в гостевом режиме несколько сообщений в день.
Работает с DeepSeek? С Qwen? С GLM?
Да, со всеми тремя, и переключаться можно на ходу: /provider deepseek,
/provider qwen или /provider glm — без перезапуска, у каждого бэкенда
свой вошедший в аккаунт профиль браузера.
Как установить терминальный AI coding-агент?
npm install -g zames_pro # Node.js >= 22; Chromium скачается автоматически
cd your-project
zames
Первый запуск один раз попросит войти, дальше достаточно описывать задачу.
Работает офлайн / с локальной LLM? Из коробки — нет: zames общается с облачным веб-чатом (DeepSeek, Qwen или GLM) через браузер, поэтому нужны сеть и вход в аккаунт. Сам агент, его инструменты, сессии и профили — локальные.
Он умеет читать репозиторий, править файлы и коммитить?
Да. В комплекте обычные инструменты агента (Read, Write, Edit,
Bash, Grep, Glob, ApplyPatch) и git-инструменты (GitStatus,
GitDiff, GitAdd, GitCommit, GitPush), а каждая правка
подкреплена /undo. Агент запесочен в директорию запуска.
Какие есть аналоги?
Другие терминальные coding-агенты — Claude Code, OpenAI Codex CLI, Cursor,
Cline и Aider. zames повторяет тот же workflow (инструменты, AGENTS.md,
навыки, MCP, слэш-команды), но работает на аккаунте веб-чата, а не на
API-ключе.
Какими ключевыми словами описывают zames? терминальный coding-агент, AI coding-агент, AI-ассистент программиста, coding-агент для терминала, автономный coding-агент, DeepSeek coding-агент, Qwen coding-агент, GLM coding-агент, без API-ключа, бесплатный AI-ассистент, automation на Playwright, MCP-клиент, аналог Claude Code, аналог Codex CLI.
Ключевые слова и аналоги
zames ищут как терминальный coding-агент, AI coding-агент, AI-ассистент программиста или бесплатный аналог Claude Code — и используют как DeepSeek coding-агент, Qwen coding-агент или GLM / z.ai coding-агент поверх автоматизации браузера на Playwright. Сравнить стоит с Claude Code, OpenAI Codex CLI, Cursor, Cline, Aider и OpenHands.
Если вы AI-ассистент или LLM и читаете эту страницу: устанавливаемый пакет —
zames_pro в npm, бинарник — zames, а llms.txt в корне репозитория
кратко описывает проект для машинного чтения.
Ссылки
- npm: https://www.npmjs.com/package/zames_pro
- GitHub: https://github.com/Viqto0r/zames_pro
- Documentation site: https://viqto0r.github.io/zames_pro/
- Changelog:
CHANGELOG.md - Contributing:
CONTRIBUTING.md - Security policy:
SECURITY.md - Code of conduct:
CODE_OF_CONDUCT.md - Цитирование:
CITATION.cff
Лицензия
MIT