Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add zJay26/douyin-skills --skill douyin-authgit clone --depth 1 https://github.com/zJay26/douyin-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zjay26/douyin-skills/douyin-auth)<a href="https://agentmods.dev/skills/zjay26/douyin-skills/douyin-auth"><img src="https://agentmods.dev/badge/skills/zjay26/douyin-skills/douyin-auth/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/zjay26/douyin-skills/douyin-auth"><img src="https://agentmods.dev/badge/skills/zjay26/douyin-skills/douyin-auth.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00041 | $0.00935 |
| Opus 5 | $0.00020 | $0.00467 |
| Sonnet 5 | $0.00008 | $0.00187 |
| Haiku 4.5 | $0.00004 | $0.00093 |
Grade A, and why
douyin-auth scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 90 lines — stays where its author put it; the contents beside it link to each section on GitHub.
管理抖音登录与账号
只使用 python "{baseDir}/../../scripts/cli.py" <子命令>。如果系统只有 python3,替换命令名。不要使用其他抖音登录工具。
先确认账号
用户指定账号时,在子命令前加入 --account <名称>。用户未指定时,CLI 自动使用默认命名账号;需要展示或切换账号时运行:
python "{baseDir}/../../scripts/cli.py" list-accounts
多个账号且用户意图不明确时,展示名称和描述并询问一次。选定后,本次流程保持同一账号。
检查状态
python "{baseDir}/../../scripts/cli.py" check-login
- CLI 会优先复用已有的本地 Chrome 调试实例和其中的登录会话;已有 headed Chrome 不会因为默认模式偏好被重启。
- 导航后的短暂验证码/风控中间页会由 CLI 做有限稳定重检;切到 headed 后还会重新读取当前页面,不沿用切换前的旧风险结果。
logged_in: true:可以继续。logged_in: false:进入登录流程;退出码1不是程序崩溃。action: risk_recovered_after_headed_switch、risk_recovered: true且logged_in: true:临时风险状态已经消失,直接继续,不要请用户验证。needs_user_verification: true:浏览器已切为 headed 或已停在验证页,请用户人工处理,不要绕过或连续重试。
二维码登录
- 获取二维码:
python "{baseDir}/../../scripts/cli.py" get-qrcode
- 将 JSON 的
qrcode_data_url作为图片展示给用户,不输出到公开日志。 - 用户扫码后单次等待:
python "{baseDir}/../../scripts/cli.py" wait-login
wait-login 最多等待 120 秒。超时后重新获取二维码,不要高频轮询。
短信验证码登录
普通手机号页先取得用户明确提供的中国大陆手机号:
python "{baseDir}/../../scripts/cli.py" send-code --phone <手机号>
身份验证页已有绑定手机号入口时,不传手机号:
python "{baseDir}/../../scripts/cli.py" send-code
收到用户提供的 6 位验证码后提交:
python "{baseDir}/../../scripts/cli.py" verify-code --code <6位验证码>
不要在回复中重复完整手机号或验证码;不要保存这些一次性信息。
多账号
python "{baseDir}/../../scripts/cli.py" add-account --name work --description "工作号"
python "{baseDir}/../../scripts/cli.py" set-default-account --name work
python "{baseDir}/../../scripts/cli.py" update-account --name work --description "创作账号"
python "{baseDir}/../../scripts/cli.py" --account work check-login
python "{baseDir}/../../scripts/cli.py" remove-account --name work
每个命名账号使用独立端口和 Chrome Profile。账号名称必须是跨平台有效目录名;重复端口、大小写冲突名称和损坏配置会被拒绝。update-account 只修改描述,remove-account 只移除账号登记并保留 Profile 数据。
边界与失败处理
- 当前没有公开的强制退出或清除 Cookie 命令;不要承诺代替用户登出。
- Chrome 未找到时先使用
douyin-env运行doctor。 - 配置损坏时报告具体路径并停止,不要自动重建。
- 只有 CLI 最终返回
needs_user_verification: true时,才保留可见浏览器并等待用户处理;标题或风险关键词命中本身不等于需要人工验证。
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago Changed · +1 lines 4da9be8abf2a
- 12d ago First seen · 89 lines · 41 tokens per session scan A 3f0beb3cd77a
douyin-auth is a skill published in the GitHub repository zJay26/douyin-skills (53 stars, last pushed 3d ago), licensed MIT. It adds 41 tokens to every session and 935 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
owb
Open Web Bridge (OWB) — drive the user's own real browser with the owb command. Read pages behind their existing logins, gather and cross-check information, fill forms, walk multi-step flows, debug their site, audit responsive/accessibility behavior, and capture or reverse-engineer network traffic. Use this whenever…
chrome-agent
Local browser automation with structured, verified outcomes. Use for web navigation, scraping and extraction, form interaction, screenshots and downloads, network or console checks, responsive testing, or page-scoped device emulation.
scrape-structured-data
Get the repeating records off a web page (product grids, search results, job listings, news feeds, tables) as JSON, without writing CSS selectors and without spending a model call to read the HTML. Works on sites with no API, including ones behind a login or bot protection. Runs locally, one binary, no API key. Use…
browser-bridge
Token-efficient Chrome tab inspection, interaction, and patching via local bridge extension (CLI: bbx). Reads live DOM, styles, console, network, and storage from a real Chrome tab with lower token cost than screenshots.
rever
Reverse-engineer web APIs by driving a running Rever Browser instance — connect to its published MCP endpoint and use its browser-automation, network-capture, and JS-bundle-analysis tools. Use when the user types /rever, asks to reverse or analyze a website's API, capture or inspect its network traffic, deobfuscate…
unbrowser
Cheap first-pass web discovery without launching Chrome — fetch SSR pages, run bounded JS, find routes/forms/API endpoints, extract structured data, and detect bot-wall or browser-only escalation points.