用于批量注册 Windsurf 账号、保存鉴权产物,并在本地浏览器环境里复用这些会话。
- 批量注册 Windsurf 账号并写出鉴权产物
- 将鉴权产物转换为 Camoufox 可复用的会话格式
- 按账号顺序打开定价页,便于人工处理支付流程
windsurf_register.py: 通过 CloudMail API 批量创建邮箱、注册 Windsurf、保存会话文件camoufox_windsurf.py: 用单个保存的会话在 Camoufox 中打开 Windsurfcamoufox_pricing_queue.py: 依次用多个保存的会话打开定价页playwright_windsurf.py: 用 Playwright Chromium 复用保存的会话windsurf_session.py: 浏览器脚本共享的会话归一化与注入工具
- Python 3.14+
- CloudMail
python -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install -U pip
python -m pip install -r requirements.txt安装完 Python 依赖后,再执行浏览器初始化:
python -m camoufox fetch把 .env.example 复制为 .env,并替换成你自己的 CloudMail 与本地服务配置。
必填字段:
CLOUDMAIL_BASE_URLCLOUDMAIL_ADMIN_EMAILCLOUDMAIL_ADMIN_PASSWORDCLOUDMAIL_DOMAIN
可选字段:
EMAIL_PREFIX_LENGTHREGISTER_PASSWORD_LENGTHDISPLAY_NAME_LENGTHCLOUDMAIL_POLL_INTERVAL_SECONDSCLOUDMAIL_POLL_TIMEOUT_SECONDSWINDSURF_POOL_API_BASE_URL
当前示例文件见 .env.example,其中字段含义如下:
CLOUDMAIL_BASE_URL: CloudMail OpenAPI 地址CLOUDMAIL_ADMIN_EMAIL: 用于调用/api/public/genToken的管理员账号CLOUDMAIL_ADMIN_PASSWORD: 管理员密码CLOUDMAIL_DOMAIN: 新注册邮箱所使用的域名,不带@EMAIL_PREFIX_LENGTH: 随机邮箱前缀长度REGISTER_PASSWORD_LENGTH: 注册账号生成的密码长度DISPLAY_NAME_LENGTH: 注册账号显示名中的随机串长度CLOUDMAIL_POLL_INTERVAL_SECONDS: 轮询邮件间隔CLOUDMAIL_POLL_TIMEOUT_SECONDS: 等待验证码邮件的超时时间WINDSURF_POOL_API_BASE_URL: WindsurfPoolAPI 导入地址
批量注册账号:
python windsurf_register.py --count --output-dir auth_output依次打开所有账号的试用页:
python camoufox_pricing_queue.py --non-interactive --accounts-root auth_output --url https://windsurf.com/pricingauth_output/: 每个账号一份鉴权文件与汇总文件.camoufox-pricing-queue/: Camoufox 顺序打开定价页时的本地 profile