豆包(Doubao)AI 助手 OpenCLI 技能包。通过 opencli browser 桥接复用 Edge 浏览器登录态, 提供豆包对话、AI 播客生成(文字/网页链接/PDF 三种输入方式,自动裁剪广告)、 PPT 生成、图像生成(文生图)、会议摘要、批量提问、对话备份等功能。 使用场景:(1) 需要通过...
豆包 OpenCLI 技能包
功能概述
豆包 OpenCLI 技能包是一项面向实际任务的技能,主要用于通过 opencli 浏览器桥接复用 Edge 中已登录的豆包会话,提供 CLI 自动化操作;doubao_toolkit.ps1 ask;
核心要点
- 向豆包提问;
- doubao_toolkit.ps1 chat;
- 交互式对话;
使用与执行
✅ 图像生成;doubao_image_gen.ps1;文生图 + 自动下载;✅ AI 播客;doubao_podcast_gen.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
结果检查与注意事项
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
豆包 OpenCLI 技能包
通过 opencli 浏览器桥接复用 Edge 中已登录的豆包会话,提供 CLI 自动化操作。
功能一览
| 功能 | 脚本 | 说明 |
|---|---|---|
| ✅ 提问 | doubao_toolkit.ps1 ask |
向豆包提问 |
| ✅ 对话 | doubao_toolkit.ps1 chat |
交互式对话 |
| ✅ 图像生成 | doubao_image_gen.ps1 |
文生图 + 自动下载 |
| ✅ AI 播客 | doubao_podcast_gen.ps1 |
播客生成 + 自动下载 |
| 🆕 PPT 生成 | doubao_ppt_gen.ps1 |
PPT 生成 + 自动下载 |
| ⚠️ 会议 | doubao_toolkit.ps1 meetings |
依赖 history,新版UI可能不可用 |
| ⚠️ 备份 | doubao_toolkit.ps1 backup |
依赖 history,新版UI可能不可用 |
| ✅ 批量 | doubao_toolkit.ps1 batch |
批量提问 |
前置条件
- Edge 已登录 https://www.doubao.com/chat
- opencli 已安装(
npm install -g @jackwener/opencli) - opencli 浏览器桥接扩展 已在 Edge 中安装
⚠️ 用户默认浏览器是 Microsoft Edge(非 Chrome),记录在
TOOLS.md。
脚本说明
1. doubao_toolkit.ps1 — 工具箱
多功能 CLI 工具箱,包装 opencli doubao 命令:
# 检查连接状态 .scriptsdoubao_toolkit.ps1 status # 向豆包提问 .scriptsdoubao_toolkit.ps1 ask "你的问题" # 交互式对话 .scriptsdoubao_toolkit.ps1 chat # 图像生成(自动下载到 output/doubao_images/) .scriptsdoubao_toolkit.ps1 image "一只橘猫,水彩风格" # 会议相关 .scriptsdoubao_toolkit.ps1 meetings # 查看会议列表 .scriptsdoubao_toolkit.ps1 summary# 获取会议摘要 # 备份 / 批量 .scriptsdoubao_toolkit.ps1 backup # 备份所有对话 .scriptsdoubao_toolkit.ps1 batch # 批量提问
注意:history 命令在豆包新版 UI 下可能不可用,会影响 meetings、summary、backup 等依赖 history 的功能。
2. doubao_image_gen.ps1 — 图像生成
独立的图像生成脚本,通过 opencli browser 自动化豆包 AI 创作页面的文生图流程:
.scriptsdoubao_image_gen.ps1 "提示词" # 仅生成,显示链接 .scriptsdoubao_image_gen.ps1 "提示词" -download # 生成并下载到本地
工作流程:
- 打开
https://www.doubao.com/chat/create-image - 自动定位输入框(动态 ref 号)
- 填入提示词,点击
#flow-end-msg-send发送按钮 - 等待 ~15-20s 生成完成
- 从页面提取 4 张图片的 URL
- 用
Invoke-WebRequest下载到output/doubao_images/
输出文件:
output/doubao_images/doubao_YYYYMMDD_HHmmss_N.jpg— 下载的图片output/doubao_images/gen_log_YYYYMMDD_HHmmss.md— 生成记录(含图片链接)
3. doubao_podcast_gen.ps1 — AI 播客生成
独立的 AI 播客生成脚本,通过 opencli browser 自动化豆包 AI 播客的生成和下载,自动裁剪开头广告:
# 📝 文字模式(主题/文章/大纲/脚本) .scriptsdoubao_podcast_gen.ps1 -Text "介绍人工智能的发展历史" .scriptsdoubao_podcast_gen.ps1 -Text "IaaS PaaS SaaS 三种云计算服务模式的区别和应用场景" # 🔗 网页模式(输入链接,豆包自动抓取) .scriptsdoubao_podcast_gen.ps1 -Url "https://example.com/article" # 📄 文件模式(上传 PDF,仅支持 .pdf) .scriptsdoubao_podcast_gen.ps1 -File "C:docs我的文章.pdf" # 自定义参数 .scriptsdoubao_podcast_gen.ps1 -Text "你的主题" -WaitPlay 30 -TrimSeconds 0
输入方式(三选一):
-Text:文字输入,支持主题、完整文章、大纲、脚本-Url:网页链接输入,豆包自动抓取网页内容生成播客-File:PDF 文件上传(仅 .pdf),豆包根据文档内容生成播客
工作流程:
- 打开
https://www.doubao.com/chat - 自动定位并点击 AI 播客 按钮(动态 ref)
- 输入内容(文字/网页链接/PDF文件,三选一)
- 点击发送按钮
#flow-end-msg-send - 等待播客生成完成(~10-60秒,文件模式可能更久)
- 自动点击播放按钮
- 持续播放等待下载按钮可用(默认等待 40 秒)
- 点击下载按钮 [593]/[591](向下箭头 SVG)
- 文件自动保存到 Edge 默认下载目录
- 搬运到
output/doubao_podcasts/ - 自动裁剪开头 4 秒广告(使用 ffmpeg)
重要发现:
- 下载按钮的 class 包含
downloadBtn-Iyn2FU,通过span[role=img]的父div[tabindex]定位 - ⚠️ 关键:opencli browser click 命令无法触发下载按钮,必须使用 JS 原生事件(dispatchEvent 触发 mousedown + mouseup + click + pointerdown)
- 点击下载后 自动保存 到系统 Downloads 目录,不弹出保存对话框
- 下载文件格式为 .wav,文件名以播客标题命名
- 下载按钮需要播放 20-40 秒后才变为可用(不可用时点击无反应)
- 输出文件使用时间戳命名(
AI新闻播客_20260511_173500.wav),避免覆盖旧文件 - 下载检测改用文件快照对比(名称+大小+修改时间),不再依赖文件名比对
- 示例输出:
output/doubao_podcasts/云计算服务模式的差异与场景.wav(28MB,9分51秒)
自动裁剪广告:
- 脚本默认使用 ffmpeg 裁剪音频开头 4 秒(豆包播客开头通常有品牌广告)
- 通过
-TrimSeconds参数自定义裁剪秒数,设为0则跳过裁剪 - 裁剪后原文件被替换,最终输出的就是去广告版本
- 需要系统已安装 ffmpeg(否则跳过裁剪,保留原文件)
输出文件:
output/doubao_podcasts/<播客标题>.wav— 下载的播客音频文件(已自动裁剪开头广告)
4. doubao_ppt_gen.ps1 — PPT 生成(实测验证 ✅)
AI PPT 生成脚本,通过 opencli browser 自动化豆包 PPT 生成与下载流程。
# 按主题生成(推荐) .scriptsdoubao_ppt_gen.ps1 -Topic "人工智能发展史" # 按大纲生成 .scriptsdoubao_ppt_gen.ps1 -Outline "1. 引言`n2. 技术原理`n3. 应用场景`n4. 未来展望" # 按草稿文档生成 .scriptsdoubao_ppt_gen.ps1 -DraftFile "C:docsmy_draft.md" # 通过工具箱 .scriptsdoubao_toolkit.ps1 ppt "人工智能发展史"
实测数据(2026-05-11):
- 生成 20 页 PPT 耗时:15 分 47 秒
- 生成 23 页 PPT 耗时:13 分 01 秒
- 下载文件大小:~3.4 MB(PPTX 格式)
- 下载方式:工具栏下载按钮 → 选择 PPTX → 自动保存到 Downloads
PPT 工作流程(实测验证):
- 打开
https://www.doubao.com/chat - 不要点击 PPT 快捷按钮 — 直接在普通聊天模式的 textarea 中输入提示词
- 点击发送按钮
#flow-end-msg-send(只在普通聊天模式存在,PPT 快捷模式无发送按钮) - 5 阶段进度监控(每 15 秒检查一次):
- 阶段 1:思考状态 + 素材收集(最长阶段,AI 联网搜索参考资料)
- 阶段 2:思考优化 + 补充收集(1-2 分钟)
- 阶段 3:生成原创图片(1-5 分钟,AI 生成封面/背景/配图)
- 阶段 4:PPT 合成与渲染(5-6 分钟,左右分栏模式)
- 阶段 5:已完成(检测到 "已完成PPT生成" 标志)
- 生成完成后,点击 PPT 卡片(封面图或标题区域)→ 打开左右分栏编辑器
- 点击工具栏"下载"按钮 → 弹出菜单(PPTX / PDF)
- 选择 PPTX → 文件自动保存到系统 Downloads 目录
- 搬运到
output/doubao_ppt/目录
关键发现(实测):
- ⚠️ PPT 快捷按钮模式没有发送按钮 — 必须在普通聊天模式发送
- 发送按钮 ID:
#flow-end-msg-send(普通聊天模式) - PPT 编辑器是一个 iframe(
/partner/ccm-slides-v3/),但下载按钮在主页面的 DOM 中,不在 iframe 内 - 下载按钮特征:
data-dbx-name="button",文本"下载",aria-haspopup="menu" - 格式选择菜单项特征:
role="menuitem",文本"PPTX" - 不需要确认保存对话框 — 文件自动保存到
Downloads目录 - 每次页面加载后元素 ref 号会变化,脚本使用动态查找而非硬编码
参数说明:
| 参数 | 说明 | 默认值 |
|---|---|---|
-Topic |
PPT 主题 | — |
-Outline |
PPT 大纲文本 | — |
-DraftFile |
草稿文档路径(.txt/.md) | — |
-WaitTimeout |
总等待超时(秒) | 1200(20 分钟) |
-MonitorInterval |
监控间隔(秒) | 15 |
-OutputDir |
输出目录 | output/doubao_ppt/ |
播客脚本 doubao_podcast_gen.ps1 参数说明:
| 参数 | 说明 | 默认值 |
|---|---|---|
-Text |
播客文字内容(主题/文章/大纲/脚本),与 -Url、-File 三选一 |
— |
-Url |
网页链接,豆包自动抓取生成播客,与 -Text、-File 三选一 |
— |
-File |
PDF 文件路径(仅 .pdf),与 -Text、-Url 三选一 |
— |
-OutputDir |
输出目录 | output/doubao_podcasts/ |
-WaitPlay |
播放等待秒数(下载按钮需播放后才可用) | 40 |
-TrimSeconds |
裁剪音频开头N秒(去广告,设为0则不裁剪) | 4 |
阶段日志示例:
[11:15:30] [PHASE] [1/5] 打开豆包聊天页... [11:15:35] [PHASE] [2/5] 触发 PPT 生成... [11:15:40] [PHASE] [3/5] 监控生成进度... [11:15:55] ┌─ 进入阶段1: 思考状态 + 素材收集 [11:15:55] [11:17:30] └─ 阶段1完成,耗时 95s [11:17:30] ┌─ 进入阶段2: 思考优化 + 补充收集 [11:17:30] [11:18:45] └─ 阶段2完成,耗时 75s [11:18:45] ┌─ 进入阶段3: 生成原创图片 [11:18:45] [11:22:10] └─ 阶段3完成,耗时 205s [11:22:10] ┌─ 进入阶段4: PPT合成与渲染 [11:22:10] [11:28:30] ✅ PPT 生成完成!总耗时 765s [11:28:33] [4/5] 下载 PPT... [11:28:36] -> 点击 PPT 标题打开编辑器... [11:28:41] -> 找下载按钮... [11:28:41] -> 点击下载按钮... [11:28:43] -> 选择 PPTX 格式... [11:28:46] ✅ 下载成功: C:UsersxxxDownloadsxxx.pptx [11:28:46] [5/5] 搬运到输出目录... [11:28:46] ✅ 已搬运到: output/doubao_ppt/ppt_20260511_112846.pptx
输出文件:
output/doubao_ppt/ppt_YYYYMMDD_HHmmss.pptx— 下载的 PPT 文件output/doubao_ppt/logs/ppt_log_YYYYMMDD_HHmmss.md— 详细阶段日志
已知问题
history命令不可用:豆包新版 UI 下opencli doubao history返回空,导致meetings、summary、backup等功能受限。- 图像生成页面的发送按钮 ID:
#flow-end-msg-send,在页面重新加载后输入框 ref 号会变化,脚本使用正则动态匹配。 ask命令的 JSON 输出:opencli doubao ask -f json的输出可能包含更新提示等非 JSON 文本,已使用2>$null过滤。
⚠️ 经验教训(后续修改务必注意)
完整经验文档见
knowledge/doubao-podcast-bug-fix.md
1. 不要信任 ref 号
opencli browser 的 ref 号是动态分配的,每次页面加载都不同。永远用 class/文本/位置定位元素,而非硬编码 ref。
2. 不要信任 click 返回值
clicked: true 不代表操作生效了。对于复杂 UI(如下载按钮),用 JS 原生事件更可靠:
el.dispatchEvent(new MouseEvent('mousedown', {bubbles: true}));
el.dispatchEvent(new MouseEvent('mouseup', {bubbles: true}));
el.dispatchEvent(new MouseEvent('click', {bubbles: true}));
el.dispatchEvent(new PointerEvent('pointerdown', {bubbles: true}));
3. 输出文件永远用时间戳命名
避免同名文件覆盖导致内容混淆。格式:AI新闻播客_20260511_173500.wav
4. 下载检测用快照对比
仅靠文件名不够,要同时检查大小和修改时间。记录下载前的快照,对比真正的变化。
5. JS eval 比 ref 号更可靠
opencli browser eval 直接操作真实 DOM,不受 ref 号变化影响。
6. 窗口必须最大化
豆包页面在窗口不够大时部分按钮(如 AI 播客)可能不显示。用 JS 最大化:
window.moveTo(0,0); window.resizeTo(window.screen.availWidth, window.screen.availHeight);
未来扩展方向
- 支持比例/风格/模型参数的自定义
- 参考图上传功能
- AI 抠图/擦除/重绘等图片编辑模式
- 视频生成(豆包已支持)
- 批量图片生成
热门AI工具
相关专题
Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。
0
2026.10.28
Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。
0
2026.10.28
Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。
0
2026.10.28
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.6万人学习
共6课时 | 54.7万人学习