← 返回列表
未验证
把录制的浏览器请求变成带登录态的 CLI 工具。
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/21 · 已提供中文文档
综合分
27.1
GitHub 分
27.1
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add deng7112/web2cli该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
Web2CLI
把录制的浏览器请求变成带登录态的 CLI 工具。
License: MIT
Chrome MV3
Web2CLI 是一个 Chrome 扩展 + CLI 模板,帮你(以及你的 AI 编码 agent,例如
DeepSeek Harness)把网站已登录的 API 调用
变成可复用的命令行工具,全程不用手动复制 Cookie。
English: README.md。
为什么做这个
给一个内部 Web 服务快速搭 CLI,通常要经历:
1. 打开 DevTools,手动复制 Cookie 请求头(过一会儿就悄悄过期了);
2. 逐个复制 curl,猜哪些参数有用;
3. 粘进脚本,祈祷鉴权一直有效。
Web2CLI 自动化了这些痛点:
- Cookie 同步 —— 一键导出当前站点的 Cookie(含 httpOnly)到固定本地文件。生成的 CLI
在运行时读这个文件,登录态刷新后 CLI 零改动继续可用。
- 请求录制 —— 通过 Chrome DevTools Protocol 录制真实 XHR/Fetch 流量(含 POST body、响应
体),把干净的 curl/Markdown 素材交给 AI agent,让它替你写 CLI。
与 DeepSeek Harness(及其他 agent)的配合
DeepSeek Harness(dsh)是终端 agent 框架("一切皆插件"),它驱动不了浏览器。Web2CLI 负责
浏览器这一侧,并把 agent 需要的一切都准备好:
┌───────────┐ 录制 + 同步 ┌────────────────────┐
│ 浏览器 │ ────────────▶ │ Web2CLI 扩展 │
└───────────┘ └─────────┬──────────┘
│ cookie 文件 + 录制请求
▼
┌───────────────────────────────────────┐
│ AI agent(dsh / 任意)+ 本仓库的 │
│ AGENTS.md 指南 + cli-template/ │
└─────────────────────┬─────────────────┘
│ 生成
▼
┌──────────────────────────┐
│ 你的 CLI(Python) │
│ 运行时读取 cookie 文件 │
└──────────────────────────┘
把 agent 的工作区指向本仓库(或让它读 AGENTS.md),然后让它根据录制产物生成
CLI —— 它会自动遵循最小接口集规则和 Cookie 对齐契约。
仓库结构
web2cli/
├── README.md # 英文文档
├── README.zh-CN.md # 本文件
├── AGENTS.md # AI agent 指南:录制 → CLI(dsh 请看这个)
├── LICENSE # MIT
├── extension/ # Chrome MV3 扩展(浏览器侧)
│ ├── manifest.json
│ ├── background.js # service worker:cookie 同步 + CDP 录制
│ ├── popup.html / popup.js
│ ├── records.html / records.js # 结果页:勾选 + 复制 curl/Markdown/JSON
│ └── README.md
└── cli-template/ # agent 填充后即为 CLI
├── cli_template.py # CLI 骨架(运行时读 cookie、登录态失效检测)
└── read_cookie.py # 查看已同步的 cookie 文件
安装扩展
1. Chrome 打开 chrome://extensions
2. 右上角开启「开发者模式」
3. 点「加载已解压的扩展程序」,选择本仓库的 extension/ 目录
4. 固定 Web2CLI 图标。弹窗有两个区块:Cookie 同步 和 请求录制
代码更新后,在 chrome://extensions 的 Web2CLI 卡片上点刷新图标。
使用
1. 同步 Cookie(登录态)
1. 浏览器打开目标站点(须已登录)
2. 点 Web2CLI 图标 → 「同步 Cookie 到本地文件」
3. 产物:~/Downloads/web2cli-cookies/{host}.json,其中 cookie_header 字段即可直接使用的
Cookie 串
4. 可选:勾选「自动同步」,该站点登录 Cookie 变化时自动重写文件
2. 录制请求
1. 打开目标页面 → 插件弹窗 → 「开始录制」(顶部"正在调试此浏览器"提示条属正常现象)
2. 正常操作页面;期间新开的 Tab 自动纳入录制
3. 「停止录制」→「打开录制结果」
4. 点「智能预选(最小集)」自动勾选相关请求,按需微调,然后「复制 Markdown(发 AI)」
3. 生成 CLI
把 Markdown 连同一句话需求粘贴给你的 AI agent,例如:
"这是录制的请求,帮我生成一个查询订单的 CLI。"
agent 会按 AGENTS.md 执行:只保留最小接口集(目标动作 + 其参数来源查询),
填充 cli-template/cli_template.py,并做验证。
Cookie 文件格式
~/Downloads/web2cli-cookies/{host}.json(format: "web2cli-cookie-v1"):
{
"format": "web2cli-cookie-v1",
"host": "example.com",
"base_domain": "example.com",
"updated_at": "2026-08-20T08:00:00.000Z",
"cookie_count": 12,
"cookie_header": "a=1; b=2; ...", // 可直接粘贴的 Cookie 串
"cookies": [ { "name": "a", "value": "1", "domain": ".example.com", "httpOnly": true } ]
}
生成的 CLI 在运行时读取 cookie_header,并做浏览器式的域过滤,因此过期/过宽的文件不会引发
400 Request Header Or Cookie Too Large。
安全
- Cookie 文件是明文凭证 —— 当密码对待。永远不要提交到 git 或外发。
- CLI 必须运行时从文件读 cookie,禁止硬编码 cookie 值。
- 写接口(POST/PUT/DELETE)agent 绝不自动执行 —— 由你自己确认后运行。
常见问题
| 现象 | 处理 |
|---|---|
| CLI 报 [cookie not synced] | 先同步该站点的 Cookie(使用 §1) |
| 400 Request Header Or Cookie Too Large | 使用最新版扩展(host 级过滤)并重新同步 |
| 被重定向到登录页 / 返回登录页 HTML | 登录态过期 —— 浏览器重新登录后再同步 |
| 录制里缺 POST body | 停止录制前等请求完成 |
| 蓝色"正在调试此浏览器"提示条 | Chrome 录制期间的安全要求,无法去除 |
许可证
MIT扫码进群