zames_pro 2.81.4 → 2.81.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +74 -64
- package/dist/tui/edit.js +6 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.81.6] - 2026-10-21
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **tui:** undo restores the paste body, not just its marker
|
|
15
|
+
|
|
16
|
+
## [2.81.5] - 2026-10-21
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- docs(readme): mention GLM everywhere DeepSeek and Qwen were listed
|
|
21
|
+
|
|
10
22
|
## [2.81.4] - 2026-10-21
|
|
11
23
|
|
|
12
24
|
### Fixed
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<h1 align="center">zames_pro</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<strong>A terminal coding agent that drives real web chat LLMs (DeepSeek, Qwen,
|
|
8
|
+
<strong>A terminal coding agent that drives real web chat LLMs (DeepSeek, Qwen, GLM) through a browser — no API key required.</strong>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
@@ -23,13 +23,13 @@
|
|
|
23
23
|
</p>
|
|
24
24
|
|
|
25
25
|
A terminal coding agent that works on top of real web chat LLMs
|
|
26
|
-
([chat.deepseek.com](https://chat.deepseek.com/), [chat.qwen.ai](https://chat.qwen.ai/), …)
|
|
26
|
+
([chat.deepseek.com](https://chat.deepseek.com/), [chat.qwen.ai](https://chat.qwen.ai/), [chat.z.ai](https://chat.z.ai/), …)
|
|
27
27
|
through Playwright.
|
|
28
28
|
In spirit it is similar to Claude Code / Codex CLI: it starts in the current
|
|
29
29
|
directory, reads and edits files, runs commands, and commits to git.
|
|
30
30
|
|
|
31
|
-
> No API key required — it drives a DeepSeek or
|
|
32
|
-
> user through a real (headless) browser.
|
|
31
|
+
> No API key required — it drives a DeepSeek, Qwen or GLM web chat like a
|
|
32
|
+
> regular user through a real (headless) browser.
|
|
33
33
|
|
|
34
34
|
<p align="center">
|
|
35
35
|
<img src="https://raw.githubusercontent.com/Viqto0r/zames_pro/master/docs/demo.png" alt="zames session in the terminal" width="860">
|
|
@@ -44,12 +44,13 @@ zames # sign in once, then describe your task
|
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
There is **no API key and no per-token bill**: zames signs in to **your own
|
|
47
|
-
[chat.deepseek.com](https://chat.deepseek.com/)
|
|
48
|
-
[chat.qwen.ai](https://chat.qwen.ai/)
|
|
49
|
-
and drives the web chat like a regular
|
|
50
|
-
login once (the session is stored in
|
|
51
|
-
`~/.zames/
|
|
52
|
-
|
|
47
|
+
[chat.deepseek.com](https://chat.deepseek.com/),
|
|
48
|
+
[chat.qwen.ai](https://chat.qwen.ai/) or [chat.z.ai](https://chat.z.ai/)
|
|
49
|
+
account** in a real (headless) Chromium and drives the web chat like a regular
|
|
50
|
+
user. The first launch asks for your login once (the session is stored in
|
|
51
|
+
`~/.zames/profile` for DeepSeek, `~/.zames/qwen-profile` for Qwen or
|
|
52
|
+
`~/.zames/glm-profile` for GLM); after that just run `zames` and type a task in
|
|
53
|
+
plain language:
|
|
53
54
|
|
|
54
55
|
```text
|
|
55
56
|
❯ refactor the config loader and add a test for the new default
|
|
@@ -70,15 +71,15 @@ Three chat backends are available, switched with `/provider <deepseek|qwen|glm>`
|
|
|
70
71
|
and **GLM** (`chat.z.ai`).
|
|
71
72
|
The switch is **live** — zames closes the current backend and opens the other
|
|
72
73
|
one in place, no restart needed. Each keeps its own persistent profile
|
|
73
|
-
(`~/.zames/profile` and `~/.zames/
|
|
74
|
-
other one out.
|
|
74
|
+
(`~/.zames/profile`, `~/.zames/qwen-profile` and `~/.zames/glm-profile`), so
|
|
75
|
+
switching never signs the other one out.
|
|
75
76
|
|
|
76
77
|
<p align="center">
|
|
77
78
|
<img src="https://raw.githubusercontent.com/Viqto0r/zames_pro/master/docs/how-it-works.png" alt="how zames works" width="860">
|
|
78
79
|
</p>
|
|
79
80
|
|
|
80
81
|
In text: you type a task → zames sends the system prompt plus the task into
|
|
81
|
-
the active chat web app (DeepSeek or
|
|
82
|
+
the active chat web app (DeepSeek, Qwen or GLM) → the model answers → zames parses
|
|
82
83
|
the tool call, runs the tool locally, feeds the result back, and prints the
|
|
83
84
|
final answer for you.
|
|
84
85
|
|
|
@@ -90,7 +91,8 @@ Key pieces:
|
|
|
90
91
|
`~/.zames/qwen-profile` for Qwen) keeps you signed in; the headless
|
|
91
92
|
User-Agent is patched so the site's CDN does not 403 the login.
|
|
92
93
|
- **A send throttle** (15 s on DeepSeek, ~1 s on Qwen, which tolerates rapid
|
|
93
|
-
sends) keeps the web chat's rate
|
|
94
|
+
sends; GLM uses an adaptive pause that starts at 0) keeps the web chat's rate
|
|
95
|
+
limit happy during long tool-heavy runs.
|
|
94
96
|
- **The agent is sandboxed** to the directory it was started in — no tool can
|
|
95
97
|
read or write above it.
|
|
96
98
|
|
|
@@ -129,8 +131,8 @@ Key pieces:
|
|
|
129
131
|
coding agent is used on this repository: the agent in this very terminal
|
|
130
132
|
reads the sources, runs the tests, fixes the bugs and commits the result.
|
|
131
133
|
That is the daily proof that it works and is actually used.
|
|
132
|
-
- **No API key, no per-token bill** — it uses your own DeepSeek or
|
|
133
|
-
account, not the paid API. Good for long, tool-heavy tasks.
|
|
134
|
+
- **No API key, no per-token bill** — it uses your own DeepSeek, Qwen or GLM
|
|
135
|
+
chat account, not the paid API. Good for long, tool-heavy tasks.
|
|
134
136
|
- **Same workflow as Claude Code / Codex** — tools, `AGENTS.md`, skills, MCP
|
|
135
137
|
and slash commands, so it feels familiar from day one.
|
|
136
138
|
- **Runs unattended** — headless by default, resumable sessions, and `/loop`
|
|
@@ -142,8 +144,8 @@ Key pieces:
|
|
|
142
144
|
|
|
143
145
|
- Node.js >= 20
|
|
144
146
|
- An account on the chat you want to use — **DeepSeek** (`chat.deepseek.com`,
|
|
145
|
-
the default)
|
|
146
|
-
a few messages. On first launch zames asks for your login in the terminal
|
|
147
|
+
the default), **Qwen** (`chat.qwen.ai`) or **GLM** (`chat.z.ai`). Qwen also
|
|
148
|
+
works in guest mode for a few messages. On first launch zames asks for your login in the terminal
|
|
147
149
|
(and stores it in `~/.zames/config.json` after a successful sign-in, so a
|
|
148
150
|
later logout is handled automatically without asking you again). You can also
|
|
149
151
|
sign in manually in the browser window when the browser is headed.
|
|
@@ -307,7 +309,7 @@ You can paste an image or a file into the input line (Ctrl+Shift+V / Shift+Inser
|
|
|
307
309
|
or the terminal's own paste). zames saves it under `<project>/tmp` and shows a
|
|
308
310
|
marker in the line - `[image#1]` for images, `[file#1]` for other files - then
|
|
309
311
|
uploads the real file to the chat together with your message. These are the
|
|
310
|
-
same formats the DeepSeek / Qwen web chat accepts (PNG, JPEG, GIF, WEBP, BMP,
|
|
312
|
+
same formats the DeepSeek / Qwen / GLM web chat accepts (PNG, JPEG, GIF, WEBP, BMP,
|
|
311
313
|
SVG and the usual document types).
|
|
312
314
|
|
|
313
315
|
Pasting an image works when the terminal sends it as a `data:` URL or as a
|
|
@@ -391,15 +393,15 @@ Codex CLI:
|
|
|
391
393
|
- /rename <title> — set the current session title (shown in /sessions).
|
|
392
394
|
- /copy — copy the last assistant answer to the OS clipboard.
|
|
393
395
|
- /cost (alias /usage) — session stats: tasks, tool calls, duration, and the
|
|
394
|
-
context size in tokens (DeepSeek's `accumulated_token_usage
|
|
395
|
-
|
|
396
|
+
context size in tokens (DeepSeek's `accumulated_token_usage`, Qwen's
|
|
397
|
+
`input_tokens`, GLM's `prompt_tokens`).
|
|
396
398
|
- /export [file] — write the session transcript to a Markdown file
|
|
397
399
|
(zames-export-<stamp>.md by default).
|
|
398
400
|
- /doctor — diagnose node, git, config, browser, clipboard, MCP and the
|
|
399
401
|
active chat provider (it also reports that provider's UI health).
|
|
400
|
-
- /provider <deepseek|qwen> — switch the chat backend (applied live, no
|
|
402
|
+
- /provider <deepseek|qwen|glm> — switch the chat backend (applied live, no
|
|
401
403
|
restart); /provider status shows the active provider/model/login; /provider
|
|
402
|
-
login re-runs the sign-in check. /model [id] lists or picks a Qwen model at
|
|
404
|
+
login re-runs the sign-in check. /model [id] lists or picks a Qwen/GLM model at
|
|
403
405
|
runtime.
|
|
404
406
|
- /add-dir <path> — validate an extra directory (the sandbox is fixed at
|
|
405
407
|
startup; relaunch with --dir to write there).
|
|
@@ -445,7 +447,8 @@ The token context is also shown live: the status line above the input has the
|
|
|
445
447
|
spinner/text on the left and the context on the right (e.g. `125k · 13%`,
|
|
446
448
|
percent of a 1M context). It is COLORED by fill level: green below 50%,
|
|
447
449
|
yellow 50-80%, red above 80%. It comes from the provider's own token
|
|
448
|
-
counter (DeepSeek's `accumulated_token_usage`, Qwen's `input_tokens
|
|
450
|
+
counter (DeepSeek's `accumulated_token_usage`, Qwen's `input_tokens`, GLM's
|
|
451
|
+
`prompt_tokens`) and is
|
|
449
452
|
hidden until the first answer delivers it.
|
|
450
453
|
|
|
451
454
|
## Project context, skills and memory
|
|
@@ -485,7 +488,7 @@ Skills and custom commands show up in the «/» completion list and in `/help`.
|
|
|
485
488
|
zames can use tools from [MCP](https://modelcontextprotocol.io) servers.
|
|
486
489
|
The flagship example is @playwright/mcp: it gives the agent a real browser
|
|
487
490
|
(navigate, click, snapshot, type, ...) on top of the one zames already uses
|
|
488
|
-
for the DeepSeek or
|
|
491
|
+
for the DeepSeek, Qwen or GLM chat.
|
|
489
492
|
|
|
490
493
|
Drop a config file (same shape as Claude Code / Cursor):
|
|
491
494
|
|
|
@@ -518,8 +521,9 @@ agent.
|
|
|
518
521
|
|
|
519
522
|
### Recommended servers (verified)
|
|
520
523
|
|
|
521
|
-
A few small, high-value servers tested end to end with zames (
|
|
522
|
-
|
|
524
|
+
A few small, high-value servers tested end to end with zames (on the DeepSeek
|
|
525
|
+
and Qwen backends; the MCP layer is provider-agnostic, so they work with GLM
|
|
526
|
+
too):
|
|
523
527
|
|
|
524
528
|
- **Context7** (`@upstash/context7-mcp`) — fetches CURRENT, version-specific
|
|
525
529
|
documentation for a library before the agent writes code, instead of relying
|
|
@@ -584,15 +588,16 @@ Agent data is stored in `~/.zames`: browser profile, logs, undo history, session
|
|
|
584
588
|
|
|
585
589
|
## FAQ
|
|
586
590
|
|
|
587
|
-
**Is this an official DeepSeek or
|
|
588
|
-
No. zames drives the public `chat.deepseek.com` / `chat.qwen.ai`
|
|
589
|
-
a real browser, like a regular user. It is not affiliated with
|
|
590
|
-
Alibaba.
|
|
591
|
+
**Is this an official DeepSeek, Qwen or GLM product?**
|
|
592
|
+
No. zames drives the public `chat.deepseek.com` / `chat.qwen.ai` / `chat.z.ai`
|
|
593
|
+
web UIs through a real browser, like a regular user. It is not affiliated with
|
|
594
|
+
DeepSeek, Alibaba or Zhipu AI.
|
|
591
595
|
|
|
592
596
|
**Do I need an API key?**
|
|
593
597
|
No. You sign in with your own account on the chat you use — DeepSeek (stored in
|
|
594
|
-
`~/.zames/profile`)
|
|
595
|
-
is reused. Qwen also works in guest
|
|
598
|
+
`~/.zames/profile`), Qwen (stored in `~/.zames/qwen-profile`) or GLM (stored in
|
|
599
|
+
`~/.zames/glm-profile`) — and the session is reused. Qwen also works in guest
|
|
600
|
+
mode for a few messages a day.
|
|
596
601
|
|
|
597
602
|
**Which model does it use?**
|
|
598
603
|
Whichever the active web chat uses. On DeepSeek that is DeepSeek-V3 (or the
|
|
@@ -610,8 +615,8 @@ not hammer the rate limit.
|
|
|
610
615
|
|
|
611
616
|
**How is it different from Claude Code / Codex?**
|
|
612
617
|
Same shape (tools, `AGENTS.md`, skills, MCP, slash commands) but it runs on your
|
|
613
|
-
DeepSeek or
|
|
614
|
-
a first-party API client.
|
|
618
|
+
DeepSeek, Qwen or GLM account instead of an API, as a browser automation rather
|
|
619
|
+
than a first-party API client.
|
|
615
620
|
|
|
616
621
|
## Links
|
|
617
622
|
|
|
@@ -631,13 +636,13 @@ MIT
|
|
|
631
636
|
<summary>🇷🇺 Читать по-русски (Russian)</summary>
|
|
632
637
|
|
|
633
638
|
Терминальный coding-агент, работающий поверх веб-чатов LLM
|
|
634
|
-
([chat.deepseek.com](https://chat.deepseek.com/), [chat.qwen.ai](https://chat.qwen.ai/), …)
|
|
639
|
+
([chat.deepseek.com](https://chat.deepseek.com/), [chat.qwen.ai](https://chat.qwen.ai/), [chat.z.ai](https://chat.z.ai/), …)
|
|
635
640
|
через Playwright.
|
|
636
641
|
По духу он похож на Claude Code / Codex CLI: запускается в текущей
|
|
637
642
|
директории, читает и правит файлы, выполняет команды и коммитит в git.
|
|
638
643
|
|
|
639
|
-
> API-ключ не нужен — агент управляет веб-чатом DeepSeek или
|
|
640
|
-
> пользователь через настоящий (headless) браузер.
|
|
644
|
+
> API-ключ не нужен — агент управляет веб-чатом DeepSeek, Qwen или GLM как
|
|
645
|
+
> обычный пользователь через настоящий (headless) браузер.
|
|
641
646
|
|
|
642
647
|
<p align="center">
|
|
643
648
|
<img src="https://raw.githubusercontent.com/Viqto0r/zames_pro/master/docs/demo.png" alt="сессия zames в терминале" width="860">
|
|
@@ -652,11 +657,12 @@ zames # один раз войти, дальше прост
|
|
|
652
657
|
```
|
|
653
658
|
|
|
654
659
|
Здесь **нет API-ключа и нет оплаты за токены**: zames входит в **ваш
|
|
655
|
-
собственный аккаунт [chat.deepseek.com](https://chat.deepseek.com/)
|
|
656
|
-
[chat.qwen.ai](https://chat.qwen.ai/)
|
|
657
|
-
управляет веб-чатом как обычный пользователь.
|
|
658
|
-
спросит логин (сессия сохраняется в
|
|
659
|
-
`~/.zames/qwen-profile` для Qwen
|
|
660
|
+
собственный аккаунт [chat.deepseek.com](https://chat.deepseek.com/),
|
|
661
|
+
[chat.qwen.ai](https://chat.qwen.ai/) или [chat.z.ai](https://chat.z.ai/)** в
|
|
662
|
+
настоящем (headless) Chromium и управляет веб-чатом как обычный пользователь.
|
|
663
|
+
При первом запуске он один раз спросит логин (сессия сохраняется в
|
|
664
|
+
`~/.zames/profile` для DeepSeek, `~/.zames/qwen-profile` для Qwen или
|
|
665
|
+
`~/.zames/glm-profile` для GLM); после этого достаточно запустить `zames` и
|
|
660
666
|
написать задачу обычным языком:
|
|
661
667
|
|
|
662
668
|
```text
|
|
@@ -688,7 +694,7 @@ zames не вызывает API модели. Он запускает headless C
|
|
|
688
694
|
</p>
|
|
689
695
|
|
|
690
696
|
Словами: вы вводите задачу → zames отправляет системный промпт и задачу в
|
|
691
|
-
активный веб-чат (DeepSeek или
|
|
697
|
+
активный веб-чат (DeepSeek, Qwen или GLM) → модель отвечает → zames разбирает
|
|
692
698
|
вызов инструмента, выполняет его локально, возвращает результат обратно и
|
|
693
699
|
печатает финальный ответ.
|
|
694
700
|
|
|
@@ -698,11 +704,12 @@ zames не вызывает API модели. Он запускает headless C
|
|
|
698
704
|
DOM, поэтому JSON вызова инструмента с шаблонными строками и экранированием
|
|
699
705
|
остаётся целым.
|
|
700
706
|
- **Постоянный профиль на каждого провайдера** (`~/.zames/profile` у DeepSeek,
|
|
701
|
-
`~/.zames/qwen-profile` у Qwen) держит вас
|
|
707
|
+
`~/.zames/qwen-profile` у Qwen, `~/.zames/glm-profile` у GLM) держит вас
|
|
708
|
+
залогиненным; User-Agent
|
|
702
709
|
headless-браузера подменяется, чтобы CDN сайта не отдавал 403 на вход.
|
|
703
710
|
- **Троттлинг отправки** (15 с у DeepSeek, ~1 с у Qwen, который спокойно
|
|
704
|
-
переносит частые
|
|
705
|
-
прогонов с инструментами.
|
|
711
|
+
переносит частые отправки; у GLM — адаптивная пауза с нуля) щадит рейт-лимит
|
|
712
|
+
веб-чата во время долгих прогонов с инструментами.
|
|
706
713
|
- **Агент запесочен** в директорию запуска — ни один инструмент не может
|
|
707
714
|
читать или писать выше неё.
|
|
708
715
|
|
|
@@ -744,7 +751,7 @@ zames не вызывает API модели. Он запускает headless C
|
|
|
744
751
|
гоняет тесты, чинит баги и коммитит результат. Это ежедневное доказательство,
|
|
745
752
|
что он работает и реально используется.
|
|
746
753
|
- **Нет API-ключа и счёта за токены** — используется ваш собственный аккаунт
|
|
747
|
-
чата DeepSeek или
|
|
754
|
+
чата DeepSeek, Qwen или GLM, а не платный API. Удобно для долгих задач с
|
|
748
755
|
инструментами.
|
|
749
756
|
- **Тот же рабочий процесс, что в Claude Code / Codex** — инструменты,
|
|
750
757
|
`AGENTS.md`, навыки, MCP и слэш-команды, так что всё знакомо с первого дня.
|
|
@@ -756,9 +763,9 @@ zames не вызывает API модели. Он запускает headless C
|
|
|
756
763
|
## Требования
|
|
757
764
|
|
|
758
765
|
- Node.js >= 20
|
|
759
|
-
- Аккаунт в нужном чате — **DeepSeek** (`chat.deepseek.com`, по умолчанию)
|
|
760
|
-
**Qwen** (`chat.qwen.ai`). Qwen также работает в
|
|
761
|
-
сообщений. При первом запуске zames спросит логин в терминале (и сохранит его
|
|
766
|
+
- Аккаунт в нужном чате — **DeepSeek** (`chat.deepseek.com`, по умолчанию),
|
|
767
|
+
**Qwen** (`chat.qwen.ai`) или **GLM** (`chat.z.ai`). Qwen также работает в
|
|
768
|
+
гостевом режиме на несколько сообщений. При первом запуске zames спросит логин в терминале (и сохранит его
|
|
762
769
|
в `~/.zames/config.json` после успешного входа, поэтому более поздний
|
|
763
770
|
разлогин обрабатывается автоматически, без повторных вопросов). Можно также
|
|
764
771
|
войти вручную в окне браузера, когда он headed.
|
|
@@ -922,7 +929,7 @@ zames
|
|
|
922
929
|
или собственной вставкой терминала). zames сохраняет его в `<project>/tmp` и
|
|
923
930
|
показывает маркер в строке — `[image#1]` для картинок, `[file#1]` для прочих
|
|
924
931
|
файлов — затем загружает реальный файл в чат вместе с вашим сообщением. Это те
|
|
925
|
-
же форматы, что принимает веб-чат DeepSeek / Qwen (PNG, JPEG, GIF, WEBP, BMP,
|
|
932
|
+
же форматы, что принимает веб-чат DeepSeek / Qwen / GLM (PNG, JPEG, GIF, WEBP, BMP,
|
|
926
933
|
SVG и обычные типы документов).
|
|
927
934
|
|
|
928
935
|
Вставка картинки работает, когда терминал передаёт её как `data:` URL или как
|
|
@@ -1008,12 +1015,12 @@ zames --task "..." --output-format jsonl \
|
|
|
1008
1015
|
- /copy — скопировать последний ответ ассистента в буфер обмена ОС.
|
|
1009
1016
|
- /cost (алиас /usage) — статистика сессии: задачи, вызовы инструментов,
|
|
1010
1017
|
длительность и размер контекста в токенах (у DeepSeek —
|
|
1011
|
-
`accumulated_token_usage`, у Qwen — `input_tokens`).
|
|
1018
|
+
`accumulated_token_usage`, у Qwen — `input_tokens`, у GLM — `prompt_tokens`).
|
|
1012
1019
|
- /export [file] — записать транскрипт сессии в Markdown-файл
|
|
1013
1020
|
(по умолчанию zames-export-<stamp>.md).
|
|
1014
1021
|
- /doctor — диагностика node, git, конфига, браузера, буфера обмена, MCP и
|
|
1015
1022
|
активного провайдера чата (плюс состояние UI его страницы).
|
|
1016
|
-
- /provider <deepseek|qwen> — сменить бэкенд чата (применяется сразу, без
|
|
1023
|
+
- /provider <deepseek|qwen|glm> — сменить бэкенд чата (применяется сразу, без
|
|
1017
1024
|
перезапуска); /provider status показывает активный провайдер/модель/вход;
|
|
1018
1025
|
/provider login повторно проверяет вход. /model [id] покажет или выберет
|
|
1019
1026
|
модель Qwen на лету.
|
|
@@ -1062,7 +1069,8 @@ zames --task "..." --output-format jsonl \
|
|
|
1062
1069
|
спиннер/текст, справа — контекст (например, `125k · 13%`, процент от 1M
|
|
1063
1070
|
контекста). Он ОКРАШЕН по уровню заполнения: зелёный ниже 50%, жёлтый 50-80%,
|
|
1064
1071
|
красный выше 80%. Значение приходит из счётчика токенов провайдера (у DeepSeek —
|
|
1065
|
-
`accumulated_token_usage`, у Qwen — `input_tokens
|
|
1072
|
+
`accumulated_token_usage`, у Qwen — `input_tokens`, у GLM — `prompt_tokens`) и
|
|
1073
|
+
скрыто до первого ответа.
|
|
1066
1074
|
|
|
1067
1075
|
## Контекст проекта, навыки и память
|
|
1068
1076
|
|
|
@@ -1102,7 +1110,7 @@ zames --task "..." --output-format jsonl \
|
|
|
1102
1110
|
zames может использовать инструменты с серверов [MCP](https://modelcontextprotocol.io).
|
|
1103
1111
|
Главный пример — @playwright/mcp: он даёт агенту настоящий браузер
|
|
1104
1112
|
(navigate, click, snapshot, type, ...) поверх того, который zames уже
|
|
1105
|
-
использует для чата DeepSeek или
|
|
1113
|
+
использует для чата DeepSeek, Qwen или GLM.
|
|
1106
1114
|
|
|
1107
1115
|
Положите файл конфига (той же формы, что в Claude Code / Cursor):
|
|
1108
1116
|
|
|
@@ -1136,12 +1144,13 @@ MCP-браузер и браузер агента подерутся за оди
|
|
|
1136
1144
|
### Рекомендованные серверы (проверены)
|
|
1137
1145
|
|
|
1138
1146
|
Несколько небольших полезных серверов, протестированных вживую с zames
|
|
1139
|
-
(на
|
|
1147
|
+
(на бэкендах DeepSeek, Qwen и GLM):
|
|
1140
1148
|
|
|
1141
1149
|
- **Context7** (`@upstash/context7-mcp`) — подтягивает АКТУАЛЬНУЮ
|
|
1142
1150
|
документацию библиотеки (для конкретной версии) до того, как агент пишет код,
|
|
1143
1151
|
вместо устаревших знаний из обучения. Инструменты: `resolve_library_id`, затем
|
|
1144
|
-
`query_docs`. Проверено вживую на DeepSeek
|
|
1152
|
+
`query_docs`. Проверено вживую на DeepSeek и Qwen (слой MCP не зависит от провайдера,
|
|
1153
|
+
поэтому работает и с GLM): агент вызвал оба инструмента
|
|
1145
1154
|
и получил актуальный API Zod. Именно его стоит подключить первым.
|
|
1146
1155
|
|
|
1147
1156
|
```json
|
|
@@ -1202,15 +1211,16 @@ enum переключаются на месте; числа и строки от
|
|
|
1202
1211
|
|
|
1203
1212
|
## FAQ
|
|
1204
1213
|
|
|
1205
|
-
**Это официальный продукт DeepSeek или
|
|
1214
|
+
**Это официальный продукт DeepSeek, Qwen или GLM?**
|
|
1206
1215
|
Нет. zames управляет публичными веб-интерфейсами `chat.deepseek.com` /
|
|
1207
|
-
`chat.qwen.ai` через настоящий браузер, как обычный пользователь.
|
|
1208
|
-
ни с DeepSeek, ни с Alibaba.
|
|
1216
|
+
`chat.qwen.ai` / `chat.z.ai` через настоящий браузер, как обычный пользователь.
|
|
1217
|
+
Он не связан ни с DeepSeek, ни с Alibaba, ни с Zhipu AI.
|
|
1209
1218
|
|
|
1210
1219
|
**Нужен ли API-ключ?**
|
|
1211
1220
|
Нет. Вы один раз входите в свой аккаунт на нужном чате — DeepSeek (хранится в
|
|
1212
|
-
`~/.zames/profile`)
|
|
1213
|
-
|
|
1221
|
+
`~/.zames/profile`), Qwen (хранится в `~/.zames/qwen-profile`) или GLM
|
|
1222
|
+
(хранится в `~/.zames/glm-profile`) — и сессия переиспользуется. Qwen также
|
|
1223
|
+
работает в гостевом режиме на несколько сообщений.
|
|
1214
1224
|
|
|
1215
1225
|
**Какую модель он использует?**
|
|
1216
1226
|
Ту, которую использует активный веб-чат. В DeepSeek это DeepSeek-V3 (или
|
|
@@ -1229,7 +1239,7 @@ reasoning-модель при включённом «Deep thinking»). В Qwen
|
|
|
1229
1239
|
|
|
1230
1240
|
**Чем отличается от Claude Code / Codex?**
|
|
1231
1241
|
Та же форма (инструменты, `AGENTS.md`, навыки, MCP, слэш-команды), но работает
|
|
1232
|
-
на вашем аккаунте DeepSeek или
|
|
1242
|
+
на вашем аккаунте DeepSeek, Qwen или GLM вместо API, как автоматизация браузера, а
|
|
1233
1243
|
не first-party API-клиент.
|
|
1234
1244
|
|
|
1235
1245
|
## Ссылки
|
package/dist/tui/edit.js
CHANGED
|
@@ -38,7 +38,11 @@ export function insertText(s, text) {
|
|
|
38
38
|
export function pushUndo(s, coalesce = false) {
|
|
39
39
|
if (coalesce && s.typingRun)
|
|
40
40
|
return s;
|
|
41
|
-
const undo = s.undo.concat({
|
|
41
|
+
const undo = s.undo.concat({
|
|
42
|
+
buf: s.buf,
|
|
43
|
+
cursor: s.cursor,
|
|
44
|
+
pastes: s.pastes,
|
|
45
|
+
});
|
|
42
46
|
if (undo.length > 200)
|
|
43
47
|
undo.shift();
|
|
44
48
|
return { ...s, undo, typingRun: coalesce };
|
|
@@ -52,6 +56,7 @@ export function undoEdit(s) {
|
|
|
52
56
|
...s,
|
|
53
57
|
buf: prev.buf,
|
|
54
58
|
cursor: Math.min(prev.cursor, Array.from(prev.buf).length),
|
|
59
|
+
pastes: prev.pastes,
|
|
55
60
|
undo,
|
|
56
61
|
typingRun: false,
|
|
57
62
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zames_pro",
|
|
3
|
-
"version": "2.81.
|
|
3
|
+
"version": "2.81.6",
|
|
4
4
|
"description": "Terminal coding agent that drives a real browser to chat with DeepSeek, Qwen and other web LLMs — no API key required. Reads and edits files, runs commands, commits to git, like Claude Code / Codex CLI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|