五小时速刷日抛号周额度 + 额度归零后可继续运行的白嫖额度(约 1 个五小时窗口额度)
| 类型 | Prompt 版 WFS 持续运行方案(不改源码) |
| 平台 | Windows PowerShell |
| 维护 | 内部实验 |
| 语言 | Python / PowerShell |
codex-persistent-run-wfs-prompt 是一个速刷周额度,控制额度归零后续跑额度的持续运行实验方案:
- 靠
SKILL.md约束模型行为 - 靠
session txt保存任务和参数 - 靠
wait-for-signal.ps1做真实等待 - 靠本地 UI 管理任务写入和唤醒
这个方案 不是无限运行机制。它只能在平台允许的模型请求、账号额度和当前会话条件内工作。实际表现:在可用额度窗口内,能把一次任务流程保持得更连续;当服务端明确返回 usage limit / hit limit 时,本地等待机制不能继续制造可用额度。
| ✅ 应该做的事 | ❌ 不应做的事 |
|---|---|
| 研究长任务在额度窗口内的连续执行 | 绕过服务端额度限制 |
| 研究模型回答结束后的可控等待 | 自动化滥用账号 |
| 研究网络波动、重连、会话切换时的状态保存 | 无限制消耗模型资源 |
| 研究 Prompt 版 WFS 和原生 WFS 改造版的行为差异 | 规避平台限制的生产工具 |
核心闭环如下:
读取 skill / template / wait 脚本
→ 认领或新建 session txt
→ 启动本地 UI
→ 执行 session 任务区中的任务
→ 更新当前次数
→ 真实运行 wait-for-signal.ps1
→ 等待 session 或 signal 变化
→ 返回后完整重读 session txt
→ 有新任务就执行,没有停止条件就继续等待
关键点:任务结束后必须真实运行等待脚本,而不是在聊天里写一句"我会等待"。
codex-persistent-run-wfs-prompt/
├── SKILL.md # Codex 必须遵守的完整规则
├── template.txt # 新建 session txt 的模板
├── scripts/
│ ├── start-ui.ps1 # 启动本地 UI
│ └── wait-for-signal.ps1 # 真实等待 session/signal 变化
└── ui/
└── app.py # 管理 session、任务区、信号和小窗模式的 UI
这些是运行时产生的文件,不要提交到 Git:
| 路径 | 说明 |
|---|---|
%USERPROFILE%\.codex\.codex-wfs-prompt-sessions |
session 文件存放位置 |
%USERPROFILE%\.codex\persistent-run-wfs-prompt |
等待信号和状态存放位置 |
常见运行态文件:
| 文件 | 用途 |
|---|---|
signal.json |
外部唤醒/停止信号 |
status.json |
等待状态写入 |
ui-state.json |
UI 状态 |
session-wfs-prompt-*.txt |
会话文件 |
powershell -NoProfile -ExecutionPolicy Bypass -File ".\scripts\start-ui.ps1" -SkillDir "."powershell -NoProfile -ExecutionPolicy Bypass `
-File "E:\project\codexplus=20x?\codex-persistent-run-wfs-prompt\scripts\start-ui.ps1" `
-SkillDir "E:\project\codexplus=20x?\codex-persistent-run-wfs-prompt"
start-ui.ps1默认使用pythonw.exe,避免出现黑色控制台窗口。
首先在codex安装本skill 安装完毕后在codex客户端某个session发送“wfs”关键词,然后说明间隔时间,例如“现在开始wfs,间隔1小时”,然后此时就可以控制额度归零之后的白p额度以及突破五小时额度屏障,直接使用周额度 启动 UI 后,不要在 Codex 对话框中发送任何消息。所有操作都应在 UI 界面中完成:
| 正确做法 | 错误做法 |
|---|---|
| 在 UI 的任务区编辑任务内容 | 在 Codex 对话框里输入任务 |
| 在 UI 中点击发送信号按钮唤醒 Codex | 在对话框里发消息唤醒 Codex |
| 在 UI 中切换/管理 session | 在对话中手动切换 session |
整个运行期间,Codex 的行为完全由 session txt 文件 + UI 信号 驱动,不需要也不应该在对话框中人工干预。
典型触发语句:
运行 WFS 间隔1小时
Codex 进入该模式后,正确行为:
| # | 步骤 |
|---|---|
| 1 | 完整读取 SKILL.md |
| 2 | 完整读取 template.txt |
| 3 | 完整读取 scripts/wait-for-signal.ps1 |
| 4 | 认领或新建一个 session-wfs-prompt-*.txt |
| 5 | 启动 UI |
| 6 | 执行任务区内容 |
| 7 | 最后真实运行 wait-for-signal.ps1 |
如果模型只是输出等待命令文本,没有真实调用 shell 工具,就是失败。
⚠️ 重要:UI 运行期间,不要在 Codex 对话框中发送任何消息。所有任务写入、唤醒、停止等操作都在 UI 界面完成,Codex 仅通过读取 session txt 和等待脚本来驱动。
powershell -NoProfile -ExecutionPolicy Bypass -File ".\scripts\wait-for-signal.ps1" `
-WatchFile "$env:USERPROFILE\.codex\persistent-run-wfs-prompt\signal.json" `
-StatusFile "$env:USERPROFILE\.codex\persistent-run-wfs-prompt\status.json" `
-MaxWaitMs 3600000 `
-PollMs 500 `
-SessionFile "$env:USERPROFILE\.codex\.codex-wfs-prompt-sessions\session-wfs-prompt-example.txt" `
-Reason "persistent-run-wfs-prompt"| 原因 | 含义 |
|---|---|
session_changed |
会话文件被修改 |
signal_changed |
信号文件被写入 |
timeout |
等待超时 |
stopped |
收到停止信号 |
当前 UI 支持以下操作:
- 会话管理:新建未认领 session / 认领 / 切换 / 删除
- 参数编辑:最大等待、轮询间隔、总次数、当前次数
- 任务区:编辑任务区内容
- 信号控制:发送
resume/check/reload/new_task/stop - 状态查看:等待心跳和状态
- 窗口控制:小窗模式、置顶、快速切换会话
- 草稿保护:外部文件更新时保护未保存草稿,避免覆盖正在输入的长任务
只有以下情况才应该结束等待闭环:
| # | 条件 | 说明 |
|---|---|---|
| 1 | session 中写明 停止状态: 是 |
用户在 session 文件中手动标记 |
| 2 | signal.json 写入 {"action": "stop"} |
通过 UI 或手动写入信号 |
| 3 | 当前次数达到总次数 | 自动停止 |
| 4 | 服务端返回 usage limit / hit limit |
无法继续有效请求模型 |
普通任务完成、任务区暂时为空、用户换任务,都不等于停止持续运行。
- 新建 session 必须复制
template.txt,不要手写模板 - 每轮必须完整读取自己的 session txt 全文,不能只读任务区
- 不能读取别人的 session 代替自己的 session
- 每轮结束必须真实调用
wait-for-signal.ps1 - 不能把等待命令写成聊天文本、Markdown 代码块或计划
- 不能用
Start-Sleep代替 WFS Prompt 等待脚本 - 不能把旧版 sleep skill 的
.codex-sessions和本项目的.codex-wfs-prompt-sessions混用
| Prompt 版(本仓库) | 原生 WFS 版 | |
|---|---|---|
| 是否需要改源码 | 不需要 | 需要改 Codex 客户端源码 |
| 特点 | 能快速试验 session/UI/signal 体验 | 系统合成隐藏 wait_for_signal 工具调用 |
| 依赖 | 依赖模型自己遵守 skill,不完全稳定 | 当模型不自治时做兜底 |
| 适用 | 验证流程 | 把流程固化进客户端 |
两者 不是互相替代关系:Prompt 版适合验证流程,原生版适合固化进客户端。
UI 没打开
运行:
powershell -NoProfile -ExecutionPolicy Bypass -File ".\scripts\start-ui.ps1" -SkillDir "."如果仍失败,检查 Python 是否可用。
Codex 没继续等待
看最后有没有真实 shell 工具调用 wait-for-signal.ps1。如果只是聊天里出现命令文本,说明模型没有真正执行等待。
session 改了但没唤醒
检查以下事项:
-SessionFile是否指向当前认领的 session-WatchFile是否指向正确的signal.jsonstatus.json是否还在更新- UI 是否打开的是本仓库对应的 UI,而不是旧 sleep skill 的 UI
输入内容突然消失
新版 UI 会保护未保存草稿。若仍发生覆盖,优先确认是否启动了旧版本 UI。
python -m py_compile .\ui\app.py
git status --short| 类别 | 文件/目录 |
|---|---|
| Python 缓存 | __pycache__/, *.pyc |
| 运行态文件 | session txt, signal.json, status.json, ui-state.json |
| 临时文件 | 本机临时文件 |
当前仓库面向内部实验使用。对外公开前,需要重新检查措辞、合规边界和仓库中是否包含本机路径或运行态文件。