tiktok-warmup

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

TikTok Warmup Skill

TikTok账号预热Skill

Warms up TikTok accounts for Flooently + Blaze using Multilogin browser profiles. Targets Spanish learners across Latin America.
This is now a semi-manual system. Faiyam runs
/execute-warmups
(see
prompts/execute-warmups.md
) when ready to warm up. The agent plans today's sessions, runs them in parallel across accounts, and relies on Faiyam for manual debugging (CAPTCHAs, re-logins, weird modals). No background scheduler, no cron — just a slash command.
借助Multilogin浏览器配置文件为Flooently + Blaze预热TikTok账号,目标用户为拉丁美洲的西班牙语学习者。
当前为半手动系统。当准备好进行预热时,Faiyam会运行
/execute-warmups
(详见
prompts/execute-warmups.md
)。Agent会规划当日的会话,在多个账号上并行运行,并依赖Faiyam进行手动调试(验证码、重新登录、异常弹窗等)。无后台调度器,无定时任务——仅通过斜杠指令触发。

Pre-flight — run this immediately on skill load

启动前检查——加载Skill后立即执行

First, update the skill to the latest version from fstack:
bash
npx skills update
Then run the checks below and report health status for each activity. Do not block — just show the user what's ready and what isn't.
bash
source .env.cli 2>/dev/null || true
首先,从fstack更新Skill至最新版本:
bash
npx skills update
然后运行以下检查,并汇报各项活动的健康状态。无需阻塞流程——只需向用户展示哪些已就绪,哪些未就绪。
bash
source .env.cli 2>/dev/null || true

1Password — TikTok vault

1Password — TikTok 密钥库

OP_VAULT_STATUS="❌ OP_SERVICE_ACCOUNT_TOKEN not set" if [ -n "$OP_SERVICE_ACCOUNT_TOKEN" ]; then VAULTS=$(OP_SERVICE_ACCOUNT_TOKEN=$OP_SERVICE_ACCOUNT_TOKEN op vault list --format=json 2>&1) if echo "$VAULTS" | python3 -c "import json,sys; names=[v['name'] for v in json.load(sys.stdin)]; assert 'TikTok' in names" 2>/dev/null; then OP_VAULT_STATUS="✅ 1Password TikTok vault accessible" else OP_VAULT_STATUS="❌ TikTok vault not found (wrong OP token, or vault not shared with this service account)" fi fi
OP_VAULT_STATUS="❌ OP_SERVICE_ACCOUNT_TOKEN 未设置" if [ -n "$OP_SERVICE_ACCOUNT_TOKEN" ]; then VAULTS=$(OP_SERVICE_ACCOUNT_TOKEN=$OP_SERVICE_ACCOUNT_TOKEN op vault list --format=json 2>&1) if echo "$VAULTS" | python3 -c "import json,sys; names=[v['name'] for v in json.load(sys.stdin)]; assert 'TikTok' in names" 2>/dev/null; then OP_VAULT_STATUS="✅ 可访问1Password TikTok密钥库" else OP_VAULT_STATUS="❌ 未找到TikTok密钥库(OP令牌错误,或密钥库未与该服务账号共享)" fi fi

MLX token

MLX 令牌

MLX_STATUS="❌ MLX_AUTOMATION_TOKEN not set" [ -n "$MLX_AUTOMATION_TOKEN" ] && MLX_STATUS="✅ MLX_AUTOMATION_TOKEN set"
MLX_STATUS="❌ MLX_AUTOMATION_TOKEN 未设置" [ -n "$MLX_AUTOMATION_TOKEN" ] && MLX_STATUS="✅ MLX_AUTOMATION_TOKEN 已设置"

AgentMail

AgentMail

AM_STATUS="❌ AGENTMAIL_KEY not set" [ -n "$AGENTMAIL_KEY" ] && AM_STATUS="✅ AGENTMAIL_KEY set"
AM_STATUS="❌ AGENTMAIL_KEY 未设置" [ -n "$AGENTMAIL_KEY" ] && AM_STATUS="✅ AGENTMAIL_KEY 已设置"

Airtable

Airtable

AT_STATUS="⚠️ No AIRTABLE_ACCESS_TOKEN (assuming Airtable MCP is connected)" [ -n "$AIRTABLE_ACCESS_TOKEN" ] && AT_STATUS="✅ AIRTABLE_ACCESS_TOKEN set"
echo "" echo "🔍 Environment Health" echo "" echo " Account Warmup:" echo " $MLX_STATUS" echo " $OP_VAULT_STATUS" echo " $AM_STATUS" echo " $AT_STATUS" echo "" echo " Account Creation:" echo " $OP_VAULT_STATUS (needs read+write)" echo " $AM_STATUS" echo " $AT_STATUS" echo ""

Report the output to the user before proceeding. If warmup prerequisites (MLX + OP vault) are missing, tell the user warmup won't work and ask if they want to fix it first.

---
AT_STATUS="⚠️ 未设置AIRTABLE_ACCESS_TOKEN(假设已连接Airtable MCP)" [ -n "$AIRTABLE_ACCESS_TOKEN" ] && AT_STATUS="✅ AIRTABLE_ACCESS_TOKEN 已设置"
echo "" echo "🔍 环境健康检查" echo "" echo " 账号预热:" echo " $MLX_STATUS" echo " $OP_VAULT_STATUS" echo " $AM_STATUS" echo " $AT_STATUS" echo "" echo " 账号创建:" echo " $OP_VAULT_STATUS(需要读写权限)" echo " $AM_STATUS" echo " $AT_STATUS" echo ""

在继续操作前向用户汇报输出结果。如果预热的先决条件(MLX + OP密钥库)缺失,告知用户预热无法正常运行,并询问是否要先修复问题。

---

Reference Files

参考文件

FilePurpose
multiloginRef.mdMultilogin X API reference — auth, workspace IDs, profile IDs, how to start/stop profiles, Playwright connection.
browserWarmupRef.mdBrowser warmup protocol — humanized Playwright sessions on tiktok.com via Multilogin browser profiles. Preferred approach.
loginRef.mdTikTok login procedure — do this yourself agentically, never delegate to ensure_login.py. Covers where creds live (1Password Claude-Accessible vault), OTP retrieval (AgentMail), captcha handling, and the visual login-verification checklist.
sessionDesignRef.mdHow to compose the per-account task queue. Target 50%+ niche-explicit time in early weeks. Recommended task mixes by week, anti-patterns, working example for Sofia. Read this when building a queue for any /execute-warmups run.
accountsRef.mdAccount registry auto-refresh protocol. Accounts live in Airtable; scripts read from scripts/warmup/accounts.json. The agent refreshes the cache at step 2 of every /execute-warmups run so new/removed accounts propagate automatically with no code edits.
airtableRef.mdAirtable base/table/field IDs - Accounts + Session Log are the two tables we use.
computerUseRef.mdMobile cloud phone warmup - computer-use based. Used only for late-stage weeks or special cases.
peekabooRef.mdPeekaboo CLI fallback - used when request_access fails for cloud phone sessions.
runtimeLearnings.mdOperational learnings from live sessions - read before every execution.
accountCreationRef.mdHow to create TikTok accounts and store credentials in 1Password.
createTiktokRef.mdFull interactive protocol for /create-tiktok — step-by-step account creation walkthrough.
executeWarmupsRef.mdFull protocol for /execute-warmups — plans and runs warmup sessions across all active accounts.
文件用途
multiloginRef.mdMultilogin X API参考文档 — 认证、工作区ID、配置文件ID、启动/停止配置文件的方法、Playwright连接方式。
browserWarmupRef.md浏览器预热协议 — 通过Multilogin浏览器配置文件在tiktok.com上模拟人类行为的Playwright会话。为推荐方案。
loginRef.mdTikTok登录流程 — 需由Agent自主完成,绝不能委托给ensure_login.py。涵盖凭证存储位置(1Password Claude-Accessible密钥库)、OTP获取方式(AgentMail)、验证码处理及可视化登录验证清单。
sessionDesignRef.md单账号任务队列构建方法。前期每周需保证50%以上的细分领域相关时长。按周推荐的任务组合、反模式示例、Sofia账号的工作示例。在为任何/execute-warmups运行构建队列前需阅读此文档。
accountsRef.md账号注册表自动刷新协议。账号存储在Airtable中;脚本从scripts/warmup/accounts.json读取数据。Agent会在每次/execute-warmups运行的第2步刷新缓存,以便新增/移除的账号自动生效,无需修改代码。
airtableRef.mdAirtable的库/表/字段ID — 我们使用Accounts和Session Log这两个表。
computerUseRef.md基于computer-use的移动云手机预热方案。仅用于后期周或特殊场景。
peekabooRef.mdPeekaboo CLI备选方案 — 当云手机会话的request_access请求失败时使用。
runtimeLearnings.md从实际会话中总结的运营经验 — 每次执行前务必阅读
accountCreationRef.mdTikTok账号创建及凭证存储至1Password的方法。
createTiktokRef.md
/create-tiktok
的完整交互式流程 — 分步账号创建指南。
executeWarmupsRef.md
/execute-warmups
的完整流程 — 规划并在所有活跃账号上运行预热会话。

Protocols

操作流程

  • Run today's warmups (the main thing): trigger /execute-warmups. Full protocol in executeWarmupsRef.md.
  • Run a one-off browser warmup session: read multiloginRef.md + browserWarmupRef.md + runtimeLearnings.md, then invoke scripts/tiktok-warmup-poc.py.
  • Run a mobile warmup session (rare): read multiloginRef.md + computerUseRef.md + runtimeLearnings.md.
  • Create a new TikTok account: trigger
    /create-tiktok
    . Full protocol in createTiktokRef.md.
  • Multilogin API operations: read multiloginRef.md.
  • 运行当日预热(核心功能):触发/execute-warmups。完整流程详见executeWarmupsRef.md。
  • 运行单次浏览器预热会话:阅读multiloginRef.md + browserWarmupRef.md + runtimeLearnings.md,然后调用scripts/tiktok-warmup-poc.py。
  • 运行移动设备预热会话(罕见场景):阅读multiloginRef.md + computerUseRef.md + runtimeLearnings.md。
  • 创建新TikTok账号:触发
    /create-tiktok
    。完整流程详见createTiktokRef.md。
  • Multilogin API操作:阅读multiloginRef.md。

Design philosophy

设计理念

Target 30-90 min of warmup per account per day, split into 2-4 sessions of 15-30 min each. Rest days in weeks 1-2 are natural (deterministic per account). The Scheduled Sessions Airtable table is deprecated - we log results directly to Session Log.
每个账号每日预热时长为30-90分钟,拆分为2-4个15-30分钟的会话。第1-2周自然安排休息日(每个账号的休息日为固定设置)。Scheduled Sessions Airtable表已废弃——我们直接将会话结果记录至Session Log。