- 开发工具
- CLI
- 人工智能
- AI 应用
- 浏览器控制
- GUI 自动化
【免费下载链接】OpenCLI
Make Any Website into CLI & Use your logged-in browser by AI agent.
即梦 AI(Jimeng,域名jimeng.jianying.com)是字节跳动推出的 AI 图像创作平台,本仓库为其提供了一套完整的 Browser 模式适配器,让你无需打开网页,即可通过opencli jimeng系列命令完成登录、文生图、历史记录查看与工作区管理。读完本文,你将掌握即梦 AI 适配器的全部命令用法、参数语义,以及其底层如何借助浏览器桥(Browser Bridge)复用已登录的 Chrome 会话完成 DOM 自动化与内部 API 调用。
适配器概览:浏览器模式与命令清单
即梦 AI 适配器属于 OpenCLI 的Browser 模式(🔐 Browser),其核心特征是:命令不依赖第三方 API Key,而是直接复用你浏览器中已登录的会话。对应的实现源码位于 clis/jimeng 目录,共 5 个文件:
| 文件 | 职责 |
|---|---|
| generate.js | 文生图主命令generate |
| history.js | 生成历史查询history |
| new.js | 新建工作区(会话窗口)new |
| workspaces.js | 工作区列表workspaces |
| auth.js | 登录态探测与login/whoami注册 |
官方文档(docs/adapters/browser/jimeng.md)定义的两条核心命令如下:
| 命令 | 说明 |
|---|---|
opencli jimeng generate | 即梦AI 文生图 — 输入 prompt 生成图片 |
opencli jimeng history | 查看生成历史 |
除此之外,源码中实际还注册了login、whoami、new、workspaces等命令(详见后文),共同构成完整的即梦 AI 命令行工作流。
环境准备:Chrome 登录态与 Browser Bridge
在运行任何即梦命令之前,需要满足两个前提(官方文档 Prerequisites 一节):
- Chrome 正在运行,并且已登录 jimeng.jianying.com;
- 已安装 Browser Bridge 扩展。
Browser Bridge 是 OpenCLI 与浏览器之间的轻量桥梁,由「Chrome 扩展 + 微守护进程」组成(零配置、自动启动),完整安装说明见 docs/guide/browser-bridge.md。它在连接断开时会让命令返回退出码69(EX_UNAVAILABLE,详见 docs/guide/exit-codes.md)。即梦适配器中每个命令都声明了strategy: Strategy.COOKIE与browser: true(如 generate.js),这意味着命令会经由浏览器会话携带登录 Cookie 执行,而非直接发起裸网络请求。
登录与身份认证:login / whoami 命令
即梦 AI 走的是字节跳动的通用 passport 体系。在 auth.js 中,登录态探测通过浏览器上下文请求/passport/account/info/v2/?aid=513695完成:
- 若返回 HTTP
401/403,判定为认证失败; - 若返回的
data中缺少user_id或is_visitor_account为true,则视为匿名访客,抛出AuthRequiredError; - 正常时返回
user_id与screen_name(payload 中携带的手机号/邮箱字段被刻意忽略,只暴露稳定 ID 与昵称)。
auth.js通过registerSiteAuthCommands(实现见 clis/_shared/site-auth.js)批量注册两个命令:
opencli jimeng whoami:只读探测,输出logged_in、site、user_id、screen_name等列;opencli jimeng login:打开登录页并在前台等待,默认超时 300 秒,每 2 秒轮询一次身份探测,直到登录完成(status: login_complete)或超时抛出TimeoutError。若已登录,直接返回status: already_logged_in。
generate 命令详解:参数与底层自动化流程
generate是即梦适配器的核心命令,其参数定义如下(来自 generate.js 与官方文档 Options 表):
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
--prompt | string | —(必填) | 图片描述 prompt,支持位置参数直接传入 |
--model | string | high_aes_general_v50 | 模型选择:high_aes_general_v50(5.0 Lite)、high_aes_general_v42(4.6)、high_aes_general_v40(4.0) |
--wait | int | 40 | 等待生成完成的秒数 |
官方文档给出的典型用法:
# 生成一张图片 opencli jimeng generate --prompt "一只在星空下的猫" # 使用指定模型 opencli jimeng generate --prompt "cyberpunk city" --model high_aes_general_v50 # 设置自定义等待超时 opencli jimeng generate --prompt "sunset landscape" --wait 60命令输出列固定为status、prompt、image_count、image_urls。从源码看,generate的pipeline完整描述了一次「网页级 UI 自动化」的五步流程:
- 进入生成页:
navigate到https://jimeng.jianying.com/ai-tool/generate?type=image&workspace=0,随后wait: 3秒等待页面渲染; - 计数既有图片:统计
img[src*="dreamina-sign"]/img[src*="tb4s082cfz"]选择器命中的图片数量,作为生成前后对比基线; - 清空并写入 prompt:定位
[contenteditable="true"]编辑器,依次执行focus→selectAll→delete→insertText,把args.prompt注入输入框; - 点击生成按钮:点击
.lv-btn.lv-btn-primary[class*="circle"]主按钮; - 轮询等待新图:每秒检查一次图片 DOM,一旦图片数量超过基线即判定生成完成,并截取新增图片的
src(缩略图 URL)作为结果。
若在--wait秒内没有新图出现,命令不会报错中断,而是返回status: timeout,并提示「Generation may still be in progress」,把结果状态的选择权交给调用方。若编辑器或生成按钮未找到,则分别返回status: failed与对应的错误文案;成功时image_urls以换行符连接返回。prompt字段在结果中会被截断到 80 字符以内。这套「DOM 交互 + 状态轮询」的实现方式,正是 Browser 模式适配器区别于纯 API 适配器的关键特征——它对前端 DOM 结构有依赖,网页改版后需同步更新选择器。
history 命令详解:查询生成历史
history命令用于查看最近生成的作品,参数仅一个可选值:
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
--limit | int | 5 | 返回最近作品条数 |
# 查看最近 10 条生成记录 opencli jimeng history --limit 10与generate走 DOM 自动化不同,history直接在浏览器上下文中以credentials: 'include'调用站内接口/mweb/v1/get_history(POST,aid=513695),请求体携带{ cursor: '', count, need_page_item: true, need_aigc_data: true, aigc_mode_list: ['workbench'] }。输出列固定为:
prompt:取aigc_image_params.text2image_params.prompt,缺失时回退到common_attr.title,再缺失显示N/A;model:model_config.model_name,缺失显示unknown;status:common_attr.status === 102时为completed,否则为pending;image_url:image.large_images[0].image_url;created_at:create_time(Unix 秒)经toLocaleString('zh-CN')格式化。
注意--limit默认值为 5(与文档示例中的--limit 10不同),且源码同时在接口请求与输出管道{ limit: ... }两处应用该参数,保证最终渲染条数与请求条数一致。
工作区管理:new 与 workspaces
虽然官方文档未收录,但源码中还存在两条实用的工作区命令:
opencli jimeng new— 新建会话(workspace)。通过浏览器上下文 POST/mweb/v1/workspace/create?aid=513695创建,成功后返回workspace_id与可直接访问的workspace_url(https://jimeng.jianying.com/ai-tool/generate?type=image&workspace=<id>)。若接口返回ret === '1014',会抛出「Not logged in」提示。
opencli jimeng workspaces— 查看所有工作区。POST/mweb/v1/workspace/list,输出workspace_id、name、is_pinned(是否置顶)、updated_at四列。同样对ret === '1014'做未登录拦截。
这两条命令配合generate的workspace=0默认工作区,可以实现「多会话并行创作」的脚本化工作流。
错误处理与使用建议
综合源码与 docs/guide/exit-codes.md,即梦适配器的错误场景可归纳为四类:
- 未登录/会话失效:
AuthRequiredError,提示先运行opencli jimeng login或手动在 Chrome 中登录 jimeng.jianying.com; - HTTP 异常:passport 或内部接口返回非预期状态码时抛出
CommandExecutionError; - 生成超时:
generate返回status: timeout,表示任务仍在后台进行,可稍后用history确认结果; - 浏览器桥断开:退出码
69,需要检查 Browser Bridge 扩展与守护进程状态。
从仓库源码结构(src 下的registry、execution、browser等模块)可以推断,即梦适配器与其他 Browser 模式适配器(如 doubao、chatgpt 等)共用同一套浏览器桥与命令执行框架,因此本文介绍的login/whoami机制与Strategy.COOKIE策略对该类适配器普遍适用。如果你想为其他字节系 AI 站点编写类似适配器,clis/jimeng/auth.js 中「passport 探测 + 轮询登录」的写法是可直接复用的模板。
- 开发工具
- CLI
- 人工智能
- AI 应用
- 浏览器控制
- GUI 自动化
【免费下载链接】OpenCLI
Make Any Website into CLI & Use your logged-in browser by AI agent.
相关推荐
OpenCLI Grok 适配器实战:用浏览器会话在终端驱动 grok.com 聊天、图像生成与对话导出
OpenCLI Grok 适配器实战:用浏览器会话在终端驱动 grok.com 聊天、图像生成与对话导出 本指南以 OpenCLI 仓库中 grok 适配器文档
开发工具CLI人工智能AI 应用浏览器控制GUI 自动化OpenCLI 驱动通义千问(Qwen)浏览器会话:无 API Key 的终端对话与 AI 生图实战指南
OpenCLI 驱动通义千问(Qwen)浏览器会话:无 API Key 的终端对话与 AI 生图实战指南 通义千问(Qwen / qianwen.com)是当前
开发工具CLI人工智能AI 应用浏览器控制GUI 自动化OpenCLI DeepSeek 适配器实战:用浏览器会话驱动 chat.deepseek.com 的 CLI 命令指南
OpenCLI DeepSeek 适配器实战:用浏览器会话驱动 chat.deepseek.com 的 CLI 命令指南 导读 本文讲解 OpenCLI 项目中
开发工具CLI人工智能AI 应用浏览器控制GUI 自动化
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考