桃噗噗回复助手
WarnAudited by ClawScan on May 10, 2026.
Overview
This Douyin auto-reply skill is coherent, but it deserves review because it can keep a logged-in browser session and automatically post public replies across videos using persistent, stealthy browser automation.
Only install this if you are comfortable with a tool that can stay logged in and automatically post public Douyin replies. Before use, require preview/approval for replies, limit which accounts and videos it can monitor, know where the saved session file is stored, test on a low-risk account, and make sure you can pause, stop, and delete its local state.
Findings (7)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
A commenter could try to manipulate the AI into generating an inappropriate or off-brand public reply from the user's Douyin account.
External Douyin comment text is inserted directly into an AI prompt for generating a reply, and the visible prompt does not instruct the model to treat the comment only as untrusted data.
other: `用户评论:"${comment}"\n请生成一个积极、大方、热情的回复。回复要自然亲切,不超过100字。`Add prompt-injection defenses, treat comments strictly as quoted data, restrict replies to safe templates for risky cases, and require human review before posting AI-generated replies.
A bad rule, model error, or hostile comment could cause many unwanted public replies and may affect the user's account reputation or platform standing.
The skill is designed to monitor many videos and automatically post replies, which is public account mutation at scale; the visible artifacts do not show per-reply user confirmation.
多视频批量监控 | 同时监控多个视频的评论 ... 自动添加监控 | 自动添加有评论的视频到监控列表 ... 自动回复 - 生成积极、大方、热情、合法的回复
Default to review-before-send, require an explicit target list, provide clear stop/pause controls, cap daily activity conservatively, and log every action for user audit.
The account may be exposed to platform enforcement risk, and disabling browser sandboxing can increase local risk if a browsed page is compromised.
The browser is launched with automation-hiding flags and sandbox-disabling flags, which goes beyond ordinary browser automation and can weaken local browser isolation.
args: [ '--disable-blink-features=AutomationControlled', '--disable-infobars', '--no-sandbox', '--disable-setuid-sandbox' ]
Avoid stealth/anti-detection flags and sandbox disabling unless absolutely necessary and explicitly approved; prefer official platform APIs or documented integration methods.
Anyone or any process that can read or reuse that saved state may be able to act as the logged-in Douyin account, and the skill can continue acting without another login.
The skill saves browser authentication/session state to a local file so it can keep using a logged-in Douyin account.
userDataDir: path.join(process.env.LOCALAPPDATA || process.env.TEMP, 'douyin-automation-browser') ... await state.context.storageState({ path: savePath });Clearly disclose session storage, protect the auth-state file, allow easy deletion/logout, scope the browser context only to Douyin, and declare this credential/session handling in metadata.
After the user starts monitoring, the automation may continue or recover from failures and keep replying unless the user clearly stops it.
The browser manager is designed to keep the session alive and automatically restart after disconnects while running.
keepAlive: { enabled: true, intervalMs: 60000 ... } ... if (state.isRunning) { console.log('[BrowserManager] 尝试自动重启...'); await restartBrowser(); }Provide explicit stop, timeout, and status controls; require renewed user consent after restarts or long idle periods; and make persistence opt-in.
Local state may reveal which videos are monitored and which comments were processed, and stale state could influence future automated replies.
The skill persists monitor targets and processed-comment state locally, which is expected for incremental monitoring but should be visible to users.
fs.writeFileSync(MONITOR_TARGETS_PATH, JSON.stringify({ updatedAt: new Date().toISOString(), targets: this.targets }, null, 2), 'utf8'); ... fs.writeFileSync(PROCESSED_PATH, JSON.stringify({ updatedAt: new Date().toISOString(), processed: this.processedComments }, null, 2), 'utf8');Document the stored files, offer cleanup/export controls, avoid storing unnecessary comment content, and separate state per account.
Users may install an unpinned dependency manually or encounter unclear setup behavior.
The code depends on Playwright, but the provided install metadata says there is no install spec and no required binaries, so dependency installation and version pinning are not clearly declared.
chromium = require('playwright').chromium; ... throw new Error('playwright 未安装,请先安装: npm install playwright');Declare Playwright as a dependency with pinned versions and installation steps, and avoid ad-hoc manual package installation guidance.
