Терминальный coding-агент, который управляет веб-чатами LLM (DeepSeek, Qwen, GLM) через браузер — API-ключ не нужен.
Терминальный 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 не вызывает 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 разбирает вызов инструмента, выполняет его локально, возвращает результат обратно и печатает финальный ответ.
Ключевые детали:
~/.zames/profile у DeepSeek,
~/.zames/qwen-profile у Qwen, ~/.zames/glm-profile у GLM) держит вас
залогиненным; User-Agent
headless-браузера подменяется, чтобы CDN сайта не отдавал 403 на вход.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 может
править файлы.@playwright/mcp)./loop, /cron и /jobs повторяют задачи по таймеру./config lang).zames_pro работает zames_pro, а не
какой-то другой кодинг-агент: агент в этом самом терминале читает исходники,
гоняет тесты, чинит баги и коммитит результат. Это ежедневное доказательство,
что он работает и реально используется.AGENTS.md, навыки, MCP и слэш-команды, так что всё знакомо с первого дня./loop и /cron для задач по расписанию.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.* у остальных);Чтобы войти руками (например, если сайт показывает капчу), запустите с видимым окном:
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).
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/profile у DeepSeek, ~/.zames/qwen-profile у Qwen), поэтому
переключение не разлогинивает другой./model меняет модель Qwen на лету.chat.z.ai) — третий бэкенд. Первое сообщение с нового
профиля закрыто капчей-слайдером, поэтому войдите один раз в видимом окне;
дальше сохранённая сессия переиспользуется. /model работает и для GLM.--headless по-прежнему форсирует headless
(отправки будут упираться в капчу). --headed работает везде.~/.zames/logs/sends-<provider>.jsonl (тайминги, флаги
режимов, исход и ошибка сервера — без промптов и ответов). Включается через
/config set browser.sendTelemetry true. Команда /limits показывает
последние отправки и текущую паузу. У GLM вдобавок адаптивная пауза: она
начинается с 0 и растёт только после НАСТОЯЩЕГО лимита./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
Для одноразовых запусков (--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'
Что-то не работает — куда смотреть?
См. Решение проблем: вход и капча, 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 в корне репозитория
кратко описывает проект для машинного чтения.
CHANGELOG.mdCONTRIBUTING.mdSECURITY.mdCODE_OF_CONDUCT.mdMIT