🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

抖音自主观看 LockyBee/dsh-douyin-agent

DeepSeek Harnessv1.4.6
LockyBee9 天前有提交已提供中文文档扫描:含敏感能力

DSH 原生抖音助手:有限自主观看、共享人格与兴趣记忆、原生设置和观看日报。

41.9/100
综合分
19
GitHub 星标
21,017
npm 周下载
—/5
用户评分

数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-douyin-browser-local
npm 源 · dsh-douyin-browser-local 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · tool
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 9 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-douyin-browser-local @ 1.4.6
✓Node 引擎要求 >=22.13 · 基线 Node 22.19 满足
✓dsh CLI 依赖要求 >=0.2.0-rc.2 <0.2.1-0 || >=0.2.1-rc.2 <0.3.0-0 · 最新 0.2.1-rc.5 兼容
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 21:09:21

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 60 处,展示前 48 条)
  • 发起网络请求
    client.js:135
    try { const value = await api.request('/state'); if (alive.current && !refreshAgain.current) { latest = value; setState(value); setReady(true); setCon
  • 发起网络请求
    client.js:144
    const write = route => async payload => { const result = await api.request(route, payload); void refresh(true); return result; };
  • 发起网络请求
    client.js:176
    const reviewList = kind => (state?.[kind]?.needsReview || []).map(item => { const key = `${kind}:${item.operationId}`; return h('div', { key, style: c
  • 发起网络请求
    client.js:179
    return h('div', { style: column }, h('label', { style: column }, `${label} API Key`, h(Input, { 'aria-label': `${label} API Key`, type: 'password', au
  • 发起网络请求
    client.js:187
    h('div', { style: row }, button('刷新插件状态', 'refresh', () => { void refresh(); }, false, false), button('打开抖音', 'browser', () => { void perform('browser
  • 发起网络请求
    client.js:193
    section('视频观看', toggle('允许自动观看', watchEnabled, enabled => { void perform('schedule', () => api.request('/watch/schedule', { enabled })); }, typeof sta
  • 执行外部命令来自配置/变量
    runtime-paths.mjs:68
    const result = JSON.parse(execFileSync(candidate, ['-e', 'process.stdout.write(JSON.stringify({node:process.versions.node,electron:process.versions.el
  • 读取本地文件
    browser-host.mjs:29
    if (!existsSync(shell)) return null;
  • 写入本地文件
    browser-host.mjs:115
    mkdirSync(controlDir, { recursive: true });
  • 写入本地文件
    browser-host.mjs:119
    writeFileSync(temporary, JSON.stringify({ pid: processImpl.pid, profile, port, ready, startedAt: Date.now(), ...extra }));
  • 写入本地文件
    browser-host.mjs:120
    renameSync(temporary, stateFile);
  • 读取本地文件
    core.mjs:67
    const optionalRecord=file=>{try{return JSON.parse(readFileSync(file,'utf8'));}catch(error){if(error.code==='ENOENT')return null;throw new Error('共享视频操
  • 写入本地文件
    core.mjs:74
    try {writeFileSync(descriptor,JSON.stringify({pid:process.pid,token}));}
  • 删除本地文件
    core.mjs:76
    try{return action();}finally{if(optionalRecord(file)?.token===token)unlinkSync(file);}
  • 写入本地文件
    core.mjs:86
    writeFileSync(file,JSON.stringify({pid:process.pid,token,kind:'native-tool'}),{mode:0o600});
  • 删除本地文件
    core.mjs:88
    return ()=>watchControl(directory,()=>{const manual=optionalRecord(file);if(manual?.pid===process.pid&&manual.token===token)unlinkSync(file);});
  • 写入本地文件
    core.mjs:187
    mkdirSync(directory,{recursive:true});
  • 读取本地文件
    core.mjs:194
    try {raw=readFileSync(file,'utf8');owner=JSON.parse(raw);}
  • 读取本地文件
    core.mjs:198
    try{fresh=Date.now()-statSync(file).mtimeMs<2000;}catch(error){if(error.code==='ENOENT')continue;throw error;}
  • 读取本地文件
    core.mjs:206
    try{if(readFileSync(file,'utf8')===raw){unlinkSync(file);continue;}}
  • 删除本地文件
    core.mjs:206
    try{if(readFileSync(file,'utf8')===raw){unlinkSync(file);continue;}}
  • 写入本地文件
    core.mjs:212
    try{writeFileSync(descriptor,JSON.stringify({pid:process.pid,token,createdAt:Date.now()}));}finally{closeSync(descriptor);}
  • 读取本地文件
    core.mjs:214
    return ()=>{if(released)return;released=true;try{const owner=JSON.parse(readFileSync(file,'utf8'));if(owner.pid!==process.pid||owner.token!==token)thr
  • 删除本地文件
    core.mjs:214
    return ()=>{if(released)return;released=true;try{const owner=JSON.parse(readFileSync(file,'utf8'));if(owner.pid!==process.pid||owner.token!==token)thr
  • 发起网络请求
    core.mjs:222
    const response = await fetch(`http://127.0.0.1:${PORT}/json/version`, { signal: AbortSignal.timeout(1200) });
  • 读取本地文件
    core.mjs:238
    try { state = JSON.parse(readFileSync(stateFile, 'utf8')); } catch { }
  • 执行外部命令来自配置/变量
    core.mjs:248
    const child = spawn(resolveNodeExecutable(), [path.join(ROOT, 'browser-host.mjs'), PROFILE, CONTROL, String(PORT)], {
  • 写入本地文件
    core.mjs:727
    try {writeFileSync(temporary,JSON.stringify({runId:owner.runId,requestedAt:Date.now()}),{flag:'wx'});renameSync(temporary,requestFile);}
  • 写入本地文件
    core.mjs:727
    try {writeFileSync(temporary,JSON.stringify({runId:owner.runId,requestedAt:Date.now()}),{flag:'wx'});renameSync(temporary,requestFile);}
  • 删除本地文件
    core.mjs:728
    finally {try{unlinkSync(temporary);}catch(error){if(error.code!=='ENOENT')throw error;}}
  • 删除本地文件
    core.mjs:1195
    }finally{try{unlinkSync(target);}catch{}}
  • 执行外部命令来自配置/变量
    media/index.mjs:115
    const child = spawn(executable, args, { windowsHide: true, shell: false, env: childEnvironment, stdio: ['pipe','pipe','pipe'] });
  • 读取本地文件
    media/index.mjs:192
    return { config, modelsDir: paths.mediaModelsDir, python: this.pythonOverride || config.DOUYIN_MEDIA_PYTHON || (existsSync(localPython) ? localPython
  • 发起网络请求
    media/index.mjs:273
    const fetchLocal=async(...request)=>{const response=await this.fetch(...request);if(response.ok){try{rawOutput=await response.clone().json();}catch{}}
  • 请求外部主机api.xiaomimimo.com
    media/index.mjs:285
    const response = await this.fetch('https://api.xiaomimimo.com/v1/chat/completions',{method:'POST',redirect:'error',signal:AbortSignal.any([combined,Ab
  • 发起网络请求
    media/index.mjs:285
    const response = await this.fetch('https://api.xiaomimimo.com/v1/chat/completions',{method:'POST',redirect:'error',signal:AbortSignal.any([combined,Ab
  • 请求外部主机api.minimaxi.com
    media/index.mjs:293
    const response = await this.fetch('https://api.minimaxi.com/v1/speech_to_text',{method:'POST',redirect:'error',signal:AbortSignal.any([combined,AbortS
  • 发起网络请求
    media/index.mjs:293
    const response = await this.fetch('https://api.minimaxi.com/v1/speech_to_text',{method:'POST',redirect:'error',signal:AbortSignal.any([combined,AbortS
  • 读取本地文件
    memory.mjs:24
    const file = lstatSync(candidate), config = lstatSync(path.join(root, 'config.yaml'));
  • 读取本地文件
    memory.mjs:26
    const pkg = JSON.parse(readFileSync(path.join(root, 'package.json'), 'utf8'));
  • 读取本地文件
    memory.mjs:152
    if (!this.qqMemoryPath || !existsSync(this.qqMemoryPath)) {
  • 读取本地文件
    memory.mjs:200
    const stat = lstatSync(file);
  • 读取本地文件
    memory.mjs:202
    const bytes = readFileSync(file);
  • 写入本地文件
    qq-sync.mjs:72
    if (file !== ':memory:') mkdirSync(path.dirname(file), { recursive: true });
  • 读取本地文件
    qq-sync.mjs:124
    if (!existsSync(file)) throw new Error('未找到 QQ 共享范围配置');
  • 读取本地文件
    qq-sync.mjs:128
    const config = yaml.parse(readFileSync(file, 'utf8'));
  • 读取本地文件
    qq-sync.mjs:279
    if (!existsSync(qqPath)) throw new Error('未找到 QQ 记忆库');
  • 读取本地文件
    qq-sync.mjs:453
    if (own && !existsSync(centralPath || sharedMemoryPath())) return [];
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
涉及外部主机:api.xiaomimimo.com、api.minimaxi.com

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
v1.4.62026-10-30
1.4.6 同步更新 DSH 插件和 Windows 独立软件,主要修复聊天已读不回,补充群分享视频观察与多对象分享。 · 个人私信使用平台发送确认推进水位,修复零号待发消息和联系人稳定身份引起的漏答;群聊补载旧历史不再反复打断生成。 · 证据完整、确认未发的待答消息由后台自动整理。普通许可聊天全天运行,群文字仍在被 @ 或叫到响应昵称时回复,不扩许可范围。 · 已许可群的新分享视频按原观看时段和每日预算排队观察,由模型决定继续或停止;分镜拼图减少同批图片数量,保留指定格精读。 · 加强图文、引用、表情、动图及可见卡片处理,回复采用共同人格和允许共享的记忆;可选已公开的 QQ 本地表情。 · 多对象分享串行执行、显示进度,单个对象确定未发的定位故障不拖停观看;点击后结果不明不盲重发。 · 共用视频页和消息页,改进连接释放、准备失败回收、缓存及运行包完整性检查。 · 安装 DSH Desktop 在“应用 → 桌面插件”更新 dsh-douyin-browser-local@1.4.6,完全退出后重新打开。Web profile 可运行: dsh plugin --profile web add dsh-douyin-browser-local@1.4.6 独立软件使用自己的 API Key,无需安装 DSH。下载下方 Windows x64 EXE,核对同名 SHA256 后正常退出旧版再运行新版,也可使用软件内“检查更新”。原记忆、Key、登录目录、许可和每日用量保留。便携包未签名。 · 已知限制 推荐流仍可能换片失败;本正式包尚无连续两小时实际播放或始终低于 2 GB 的内存结论。DSH rc.3 正文显示反馈尚未定位,真实公开评论发布确认和长视频多批观察仍待验,评论默认关闭。部分附件只读可见卡片资料,暂不发送原生语音气泡,Mac 尚未适配。详见验证范围。 · 发布检查 完整领域回归 1347 项:1340 通过、7 项可选跳过、0 失败;桌面检查 67/67、插件定向检查 66/66。正式 EXE 的图标、版本、45 个业务模块、15 个只读接口与正常退出通过;另完成 14 次隔离后台接口请求。npm 包在新目录安装及原生入口导入通过。以上隔离检查没有使用真实账号、调用真实模型或发送消息,长期播放与真实平台覆盖仍以上面的已知限制为准。
v1.4.52026-10-25
1.4.5 同步更新 DSH 插件与独立 Windows 软件。 · 设置自动保存,观看改为允许时段与每日时长、模型请求额度,高级选项可折叠;保留手动开始与暂停。 · 好友回复和作品分享共用许可名单与互动开关,取消人数和次数上限,移除自动续火花。群聊只在被 @ 或叫到设定昵称时回复。 · 私信使用共用人格,去掉固定“自动回复”前缀;完善表情、图片与可选本地语音转写。 · 分享按平台稳定身份及按钮目标匹配,适配当前官方面板;最终点击时身份变化会拦截。失败可查看阶段和原因,旧不确定收据仍需核对,不自动重发。 · 状态栏区分看视频、回复和分享;用量每次响应后追加。修复正常分享误报、计时误差、换片旧决策与无文字验证码漏检。 · 宿主包声明补齐已验证的 0.2.1-rc.2 预发布版本分支。 · 更新 DSH Desktop:在“应用 → 桌面插件”的 npm 包入口填写 dsh-douyin-browser-local@1.4.5,安装或更新后完全退出并重开 DSH。Web profile:dsh plugin --profile web add dsh-douyin-browser-local@1.4.5。不要用普通 CLI 修改 Desktop profile。 独立软件:下载 Dafeiyu-Douyin-API-1.4.5-win-x64.exe 和同名 SHA256 文件,正常退出旧版后启动;也可使用软件内“检查更新”。软件只需自己的模型 API Key,不依赖 DSH 或 QQ。公开包不含本机 QQ 合并启动器。 升级后请核对“好友互动”总开关与所选名单:开关默认允许,空名单不会发送。保留原配置、人格、兴趣、记忆与专用抖音登录资料,无需清空目录或重新导入。 · 验证范围 候选已有真实官方作品卡片回执,以及约 200 秒、11 次状态采样的持续观看记录;两版共用回复进程与用量已核对。正式包另行检查源码摘要、图标、隔离安装和启动、界面、自检、15 个接口及正常退出。 真实群聊、长期无人值守和本轮新私信完整链路仍未额外实测。后台会话打开曾有一次超时后恢复,尚未彻底定位;并发测试出现过 Windows 临时文件替换 EPERM,单独复跑通过。没有将合成页面或有限时间测试称为全部环境验证。 使用说明 · 验证记录 · npm。市场简介已提交独立同步,市场展示以社区审核和索引构建为准。 源码 MIT,保留第三方许可与来源。发布包排除本机 Key、人格正文、联系人、浏览器登录资料和原始诊断。
v1.4.42026-10-23
1.4.4 同时更新 DSH 插件和独立 Windows 软件,修正设置页的三处使用问题。 · 分钟数字框:不限时长时仍可直接输入,显示“不限”占位;输入数字会切回限时草稿,点击保存后生效。输入本身不改后台策略,轮询不覆盖未保存内容。 · 停止原因:视频观看设置直接显示后台记录的上次自主观看停止原因,便于排查到时、预算或其他中断;不会因此自动重试或清零预算。 · 分享名单:明确名单的维护入口、读取勾选保存步骤,以及无需启用私信自动回复。插件和软件分别显示各自对应的栏目名称。 本版保留1.4.3的同源设置通信兼容、一键自检、按报告修复、共用用量看板、主题观看等功能。停止原因展示不代表已复现并修复所有使用者的请求取消或长视频问题。 · 更新方法 DSH Desktop:“应用 → 桌面插件”的npm包输入框填写 dsh-douyin-browser-local@1.4.4。更新后完全退出并重开DSH,保留原Key、人格、记忆和抖音登录资料。社区市场与npm分别同步,市场未显示时可直接使用上述固定版本。 Web版:dsh plugin --profile web add dsh-douyin-browser-local@1.4.4。不要用普通CLI修改Desktop profile。 独立软件:下载 Dafeiyu-Douyin-API-1.4.4-win-x64.exe,正常退出旧版后打开新版;也可使用软件内“检查更新”。附同名.sha256文件。软件独立使用本人API Key,不需要DSH或QQ服务;发布包不包含本机合并启动器。 · 分享名单 · 插件:“设置 → 刷抖音 → 好友互动 → 许可好友与自动回复”,读取已关注联系人、勾选、保存许可好友。 · 软件:“业务设置 → 好友互动 → 好友私信”,读取联系人、勾选、保存许可名单。 随后单独保存自主分享总许可和次数上限。保存名单不会发送,也不必启动自动回复。 · 检查范围 本地软件界面20项、发布前插件/SDK专项65项、发行白名单3项和时间/用量8项检查通过。最终便携EXE使用隔离资料完成实际启动、分钟数保存、名单提示、15个接口、35份领域文件与图标检查,并正常退出。没有为本次检查调用真实模型或向真人发送消息。 详细记录见1.4.4说明及验证范围。源码采用MIT,保留第三方许可与来源;发布包排除本机Key、人格正文、联系人和浏览器登录资料。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
DSH 抖音助手 1.4.5 使用说明。插件与独立软件共用人格、兴趣、观看用量和许可名单;独立软件另外提供任务对话。本文的固定安装入口对应 1.4.5,包是否已可下载以 GitHub 和 npm 页面为准。 在本机专用 Microsoft Edge 中浏览抖音电脑版,采样真实画面交给模型,按人格和实际观看行为更新兴趣。这是第三方适配,不是 DeepSeek 官方发行版。 功能 | 功能 | 用法与范围 | | 自主观看 | 开启「允许自动观看」后,在允许时段和每日额度内挑片、停留、换片或停止;保留手动启动/暂停按钮 | | 每日额度 | 「高级选项」内设置每日观看分钟数和每日模型请求数,均可选不限 | | 人格与兴趣 | 两版共用人格卡;兴趣依据实际播放进度、观看比例和已确认互动,看到主题不等于喜欢 | | 好友互动 | 一个总开关管理许可会话的新消息回复及观看中的自主分享,默认开启;须由本人选择许可好友或群聊 | | 群聊回复 | 仅回复已许可群聊中被 @ 或叫到设定昵称的消息 | | 自主分享 | 通过官方面板发送当前实际观察作品的卡片,按平台稳定身份绑定收件人,同作品同会话去重 | | 公开评论 | 独立开关,默认关闭;保留每日及每次观看的尝试上限,同作品不重复评论 | | 静默观看 | 持续静音,核实窗口归属后尝试最小化;仍使用有窗口 Edge |
展开完整文档(README 剩余 1 节)
DSH 抖音助手

1.4.5 使用说明。插件与独立软件共用人格、兴趣、观看用量和许可名单;独立软件另外提供任务对话。本文的固定安装入口对应 1.4.5,包是否已可下载以 GitHub 和 npm 页面为准。

在本机专用 Microsoft Edge 中浏览抖音电脑版,采样真实画面交给模型,按人格和实际观看行为更新兴趣。这是第三方适配,不是 DeepSeek 官方发行版。

功能

| 功能 | 用法与范围 |
| 自主观看 | 开启「允许自动观看」后,在允许时段和每日额度内挑片、停留、换片或停止;保留手动启动/暂停按钮 |
| 每日额度 | 「高级选项」内设置每日观看分钟数和每日模型请求数,均可选不限 |
| 人格与兴趣 | 两版共用人格卡;兴趣依据实际播放进度、观看比例和已确认互动,看到主题不等于喜欢 |
| 好友互动 | 一个总开关管理许可会话的新消息回复及观看中的自主分享,默认开启;须由本人选择许可好友或群聊 |
| 群聊回复 | 仅回复已许可群聊中被 @ 或叫到设定昵称的消息 |
| 自主分享 | 通过官方面板发送当前实际观察作品的卡片,按平台稳定身份绑定收件人,同作品同会话去重 |
| 公开评论 | 独立开关,默认关闭;保留每日及每次观看的尝试上限,同作品不重复评论 |
| 静默观看 | 持续静音,核实窗口归属后尝试最小化;仍使用有窗口 Edge |
| 自检与用量 | 一键诊断、限定修复建议、实际请求与已报告 token 用量、进行中状态 |
| 观看日报 | 从本机观看记录生成 Markdown,不额外调用模型 |
| 可选音频 | 本地 Whisper 转写对白,视频音频还可选择 MiMo 或 MiniMax 云端后端 |

好友互动不设人数、回复请求数或分享次数的业务上限,模型调用仍会消耗额度。默认开启总开关不会自行添加许可会话。旧自动续火花/自动问候入口已移除。

两种用法

| | 插件版 | 软件版 |
| 入口 | DSH「设置 → 刷抖音」分类设置页 | Windows 独立软件的分类设置和任务对话 |
| 主模型 | DSH 已配置的服务商与支持图片的模型 | 自己填写的 API Key、接口地址和模型 |
| 运行依赖 | 兼容的 DSH 宿主 | 无需安装或启动 DSH、QQ 服务或 Node.js |
| 文档 | 插件说明 | 软件说明、本机 API 说明 |

同一时刻只运行一条自主观看。两版共享每日账本,暂停、重启或改设置不会清空当天用量。

安装 1.4.5

DSH Desktop:打开「应用 → 桌面插件」,填写 dsh-douyin-browser-local@1.4.5 安装或更新。Desktop profile 由 Electron 管理,不要用普通 CLI 另改一份。更新后完全退出并重新打开同一份 DSH。

Web profile 在终端执行:

dsh plugin --profile web add dsh-douyin-browser-local@1.4.5

插件需要 Windows、Microsoft Edge 和兼容 DSH。已检查 0.2.0-rc.2、0.2.1-rc.2 两代 SDK;完整允许版本以 package.json 的 engines.dsh 为准,不笼统保证任意 0.2.x 预发布宿主。设置通信适配常用 WebServer、Connection 与宿主 RPC 入口,第三方宿主仍以实际自检和加载结果为准。npm、GitHub Release 和插件市场分别同步;市场未更新时可核对固定 npm 版本。

独立软件及校验文件见 1.4.5 下载页,文件名为 Dafeiyu-Douyin-API-1.4.5-win-x64.exe。正常退出旧版后打开新版,保留共享记忆、登录目录和本机设置。便携包未签名,要求及更新说明见 desktop/README.md。

从源码安装插件需要 Node.js 22.13+、pnpm 和已核对路径的 DSH:

git clone https://github.com/LockyBee/dsh-douyin-agent.git
cd dsh-douyin-agent
pnpm install --frozen-lockfile
$dshInstallDirectory = 'C:\Apps\DSH Desktop' # 替换为实际安装目录 .\install-native.ps1 -DshRoot $dshInstallDirectory

不带 -Install 只检查。确认无误、完全退出 DSH 后再执行:

.\install-native.ps1 -DshRoot $dshInstallDirectory -Install

第一次使用

1. 配置支持图片的主模型。插件从 DSH 目录选择;独立软件在模型设置的密码框填写自己的 Key。
2. 点击「打开抖音」,在专用 Edge 中手动登录或完成验证码。
3. 在「视频观看」选择时段,按需展开「高级选项」设置每日分钟数和请求数,再开启「允许自动观看」。无需先开始新轮次,应用需保持运行。
4. 在「好友互动」读取当前会话,核对稳定身份并勾选许可好友或群聊,按需填写群聊响应昵称。总开关开启且模型、名单就绪后自动准备回复;观看中可自主分享。

普通设置自动保存,文本输入离开输入框后提交,开关和下拉选择修改后提交,以页面回读为准;失败会保留草稿。密钥保留独立保存入口:桌面主模型 Key 走桌面 IPC;音频 Key 在「音频与密钥」密码框填写,离开后通过专用接口保存,不回显,也不会因此开启音频。

状态与验证边界

顶部状态栏区分在线、观看中、准备中和需要处理。未确认发送、身份不符或待人工处理的消息会显示原因;不能只凭总开关开启认定服务已就绪。好友回复与观看分开运行,观看时仍检查许可会话的新消息,实际速度受页面读取和模型耗时影响。

遇到问题先运行「自检与用量 → 一键自检」,按报告处理限定修复项。登录、验证码、无效 Key、损坏记录和宿主适配不能靠删除锁、记忆或登录目录解决。发送结果不确定时保留收据,等待人工核对,不自动重发。

本机已核对浏览、采样、暂停、真实模型人格候选和受控卡片流程,稳定身份、最终输入、每日账本及自动保存另有隔离测试。真实群聊、长期连续运行及本轮更新后的新私信自动回复仍需单独实测;MiMo/MiniMax 云端和真实公开评论也不能视为已验收。
后台打开浏览器仍有偶发超时,尚未根治;最小化后的持续播放受网站行为影响。历史某次发送或旧版测试不代表所有账号、宿主和消息类型都通过。记录见 验证目录、软件验证说明,保留各自日期和版本。

开发与来源

pnpm test
pnpm run test:native

测试使用临时目录、合成模型或临时浏览器,不应把测试通过写成真实平台联调通过。运行状态、Key、登录资料、私信及联系人记录不进入仓库。

浏览器控制复用 Playwright;来源见 功能复用与来源、软件来源。原创代码采用 MIT,第三方通知见 THIRD_PARTY_NOTICES.md。模型使用说明见 skill/SKILL.md,历史详细资料见 docs/details.md。
预览分享卡片长什么样 ↓LockyBee/dsh-douyin-agent
分享 · DeepSeek Harness Hub
LockyBee/dsh-douyin-agent

DSH 原生抖音助手:有限自主观看、共享人格与兴趣记忆、原生设置和观看日报。

回到顶部