zames_pro — terminal coding agent

логотип zames_pro — терминальный coding-агент для DeepSeek, Qwen и GLM без API-ключа

zames_pro

Терминальный coding-агент, который управляет веб-чатами LLM (DeepSeek, Qwen, GLM) через браузер — API-ключ не нужен.

npm version npm downloads tests License: MIT Node.js TypeScript PRs welcome

Терминальный 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 в любой папке проекта; задачу можно описать обычным языком.

сессия zames в терминале — терминальный coding-агент и AI-ассистент программиста без API-ключа

Быстрый старт

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: терминальный coding-агент отправляет задачу в веб-чат DeepSeek, Qwen или GLM через Playwright и выполняет вызовы инструментов локально

Словами: вы вводите задачу → zames отправляет системный промпт и задачу в активный веб-чат (DeepSeek, Qwen или GLM) → модель отвечает → zames разбирает вызов инструмента, выполняет его локально, возвращает результат обратно и печатает финальный ответ.

Ключевые детали:

Возможности

Почему zames?

Требования

Вход в аккаунт

Браузер по умолчанию работает headless. Когда активный бэкенд требует входа, zames:

  1. переиспользует сессию из постоянного профиля (~/.zames/profile, ~/.zames/qwen-profile или ~/.zames/glm-profile), если она ещё валидна;
  2. иначе входит автоматически по сохранённым учётным данным (browser.auth.* у DeepSeek, qwen.auth.* / glm.auth.* у остальных);
  3. иначе открывает видимое окно браузера, чтобы вы вошли сами — капчу (она есть и у DeepSeek, и у z.ai) в терминал не ввести. zames замечает вход и возвращается в headless; введённые вами учётные данные сохраняются для следующего тихого автовхода;
  4. и только если окно показать нельзя (нет дисплея, неинтерактивный запуск), переходит к форме в терминале.

Чтобы войти руками (например, если сайт показывает капчу), запустите с видимым окном:

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).

Переключение провайдера (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 # выбрать модель

Замечания:

Установка

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 прерывают текущую генерацию. Это повторяет набор текста во время генерации на сайте чата.

Строка ввода

Промпт — это небольшой редактор строки с постоянной историей:

В полноэкранном режиме добавляется навигация по диалогу, чтобы длинный ответ можно было прочитать и выделить не покидая терминал:

Установите 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 в корне репозитория кратко описывает проект для машинного чтения.

Ссылки

Лицензия

MIT