Skip to main content
Glama

Quota-aware Resumer

一个用于 Codex 额度恢复后自动续跑任务的本地控制中心。目前同时提供 Windows 原生桌面版 和实验性的 Codex 插件版。

如果你只是想打开一个可点击的程序,不想加载 Widget 或 Skill,建议直接使用 Windows 原生版:它是单文件 WPF 应用,界面操作不调用模型,也不消耗 token。

它用于两类场景:

  1. 在五小时额度恢复后,自动回到指定任务继续尚未完成的工作;

  2. 在指定日期或工作日的某个时间发送一条极短消息,尝试让尚未活跃的五小时窗口从更适合工作的时间开始。

非官方项目。 本仓库与 OpenAI 无隶属或背书关系。额度窗口行为可能随产品更新、账号方案、工作区和服务端策略变化。

English overview

Quota-aware Resumer now includes a native Windows WPF companion app and an experimental in-chat Codex plugin. The native app reads safe local task metadata and an exact recorded five-hour reset, then uses Windows Task Scheduler and codex exec resume to continue a selected task. Opening and configuring the native UI does not call a model. Actual resumed work still consumes Codex quota.

Related MCP server: agent-resume

推荐:Windows 原生版

原生版不依赖 MCP Widget、浏览器 iframe 或 Skill。它只读取本机的任务索引字段(任务 ID、标题、更新时间)与额度元数据,不读取会话正文。

当前 MVP 支持:

  • 显示最近 Codex 任务与五小时额度进度;

  • 选择任务并填写恢复指令;

  • 在服务端记录的精确重置时间后两分钟创建一次性 Windows 计划任务;

  • 后台执行 codex exec resume --all,沿用当前 Codex 登录、sandbox 与审批规则;

  • 在本机保存计划状态和执行日志。

仓库已包含编译好的 原生程序。也可以自行构建和安装:

pwsh.exe -NoLogo -NoProfile -NonInteractive -File .\native\build.ps1
pwsh.exe -NoLogo -NoProfile -NonInteractive -File .\native\install.ps1

安装后可从 Windows 开始菜单打开 Quota-aware Resumer。完整说明见 native/README.md。原生版已经支持窗口预热开关、指定日期和每周多选;跨多个额度窗口自动循环与唤醒睡眠电脑仍在后续路线图中。

它解决什么问题

Codex 的复杂任务可能跨过一个额度窗口。例如,一个重要任务在凌晨额度恢复,但用户不希望守在电脑前重新发送“继续完成”;或者用户上午 10 点开始工作,在中午用完额度后,需要等待到下午才能继续。

Quota-aware Resumer 把这些操作拆成可见、可修改的策略:

  • 选择需要守护的 Codex 任务;

  • 设置额度恢复后要发送的指令;

  • 读取本机记录到的五小时和每周窗口;

  • 在重置后通过 Codex 原生 Scheduled Tasks 唤醒原任务;

  • 完成后停止,或在下一个额度窗口继续;

  • 可选地在工作开始前发送一条最小消息,尝试预热尚未活跃的窗口。

功能

功能

说明

Codex 内部 UI

React + MCP Apps Widget,可在对话内显示并请求全屏模式

任务选择

从 Codex 提供的最近任务列表中显式选择,不猜测目标任务

本地额度读取

从最新本地 session JSONL 的 rate_limits 元数据提取窗口信息

可信度门控

显示采样年龄与精确/估算状态;非 300 分钟或外推窗口不会被当作可靠五小时重置

重置后续跑

在实际 resets_at 后增加安全延迟,再唤醒原任务

跨窗口继续

使用同一条调度继续未完成目标,避免重复创建

停止条件

每轮使用稳定 run key 幂等记账;完成后停止,并在达到最大续跑次数后强制暂停

漏跑保护

逾期调度醒目标记,人工确认后只补跑一次,不自动排空队列

窗口预热

默认关闭;支持指定日期或每周多选星期与具体时间

本地持久化

策略存放在 $CODEX_HOME/quota-aware-resumer/policies.json

隐私边界

不读取或保存会话正文,只提取额度字段和任务标识

重要限制

“窗口预热”是尽力而为,不是重置器

公开的 OpenAI 文档确认 Codex 存在用量限制和计划任务能力,但没有承诺“第一条消息一定把五小时窗口锚定到接下来五小时”。因此:

  • 预热只能尝试启动一个尚未活跃的新窗口;

  • 如果执行时已经存在活跃窗口,消息会计入当前窗口,不会把窗口移动到设定时间;

  • 插件不能强制重置额度、绕过限制或增加套餐额度;

  • 实际窗口始终以 Codex 返回并记录到本地的 resets_at 为准;

  • 服务端策略或本地 session 格式改变后,解析器可能需要更新。

默认预热消息为:

额度窗口预热。请只回复“已预热”,不要读取文件、调用工具或执行其他工作。

预热使用独立的轻量任务,避免载入大型工作任务上下文造成额外消耗。

调度依赖 Codex 原生能力

MCP 服务不会绕过宿主直接修改 Codex 的调度文件。Widget 保存策略后,会向当前对话发送一条用户可见的请求,由 Codex 创建或更新原生 Scheduled Task。电脑、桌面应用、工作区权限和本地文件可用性仍受 Codex 自身要求约束。

对于本地项目,计划执行时必须保持电脑开机、ChatGPT 桌面应用运行,并确保项目目录仍可访问。电脑睡眠、关机或应用退出可能导致延迟或漏跑;当前官方能力没有给插件一个可靠的“开机后自动补跑”事件,因此控制中心会把已过期策略标成需要处理,并提供一次性的“检查并补跑”,而不是承诺凌晨一定执行。

v0.4.0 的可靠性改进

  • 修正非 300 分钟主窗口仍被标成“五小时窗口”的问题;

  • 显示额度采样时间、数据新鲜度和 exact / estimated

  • 外推重置时间只作参考,不允许直接启用按额度自动续跑;

  • 新安装尚无 session 目录时返回诊断卡片,不再导致 Widget 启动失败;

  • 增加幂等运行记录、实际续跑计数和最大次数强制暂停;

  • 增加逾期、目标任务缺失、最后错误、暂停和一次性补跑入口;

  • 预热关闭先进入“正在暂停”,宿主确认后才显示“已暂停”;

  • 修正东八区凌晨使用 UTC 计算“明天”可能错一天的问题。

研究依据与尚未解决的宿主限制见 用户痛点研究与路线图

架构

flowchart LR
    UI[React Control Center] -->|MCP tools/call| MCP[Local MCP server]
    MCP --> META[Local rate-limit metadata]
    MCP --> STORE[Local policy store]
    UI -->|visible user message| CODEX[Codex host]
    CODEX --> SCHED[Native Scheduled Tasks]
    SCHED --> TASK[Selected Codex task]
    TASK -->|complete / next reset| SCHED

设计上分为三层:

  • Widget: 负责选择、编辑和状态展示,不作为关键状态源;

  • 本地 MCP 服务: 负责额度读取、策略校验和本地持久化;

  • Codex 原生调度: 负责界面关闭后的定时唤醒和后续重排。

安装

从 GitHub marketplace 添加

要求:已安装支持插件 marketplace 的 Codex CLI / ChatGPT 桌面端。

codex plugin marketplace add cher9lie/quota-aware-resumer --ref main

然后:

  1. 重启 ChatGPT 桌面应用;

  2. 打开 Plugins Directory;

  3. 选择 Quota-aware Resumer

  4. 安装并启用插件;

  5. 新建一个任务,输入“打开额度续跑控制中心”。

查看已配置来源或拉取更新:

codex plugin marketplace list
codex plugin marketplace upgrade quota-aware-resumer

本地开发安装

git clone https://github.com/cher9lie/quota-aware-resumer.git
cd quota-aware-resumer
npm install
npm run check
npm run build

构建产物位于:

  • dist/server.mjs:自包含的本地 MCP server;

  • dist/control-center.html:内联 JS/CSS 的 MCP Apps Widget;

  • dist/widget.js:独立 Widget bundle,主要用于调试。

使用

打开控制中心

打开额度续跑控制中心

Codex 会先取得最近任务列表,再调用 open_quota_resume_control_center 渲染 UI。

让任务在额度恢复后继续

  1. 在“选择要守护的任务”中选择目标;

  2. 修改恢复指令;

  3. 设置安全延迟和最多续跑窗口数;

  4. 选择是否“完成前持续续跑”;

  5. 点击“启用额度续跑”;

  6. 等待策略状态从“等待创建调度”变成“已启用”。

推荐的恢复指令应包含:

  • 先检查目标和最近进度;

  • 不重复已完成的步骤;

  • 在当前权限范围内继续;

  • 验证关键结果;

  • 完成后停止调度;

  • 再次耗尽时更新同一条调度。

设置工作日 07:00 预热

  1. 打开“额度窗口预热”开关;

  2. 选择“每周重复”;

  3. 选择周一至周五;

  4. 时间设置为 07:00

  5. 保留默认轻量消息,或填写不超过 240 字的消息;

  6. 点击“保存并启用预热”。

如果关闭开关并保存,插件只会暂停该策略记录的预热调度,不会影响其他 Scheduled Tasks。

MCP 工具

工具

可见性

作用

open_quota_resume_control_center

model

获取快照并渲染控制中心

quota_resumer_get_snapshot

app

刷新额度和策略状态

quota_resumer_upsert_policy

app

保存或更新续跑策略

quota_resumer_set_policy_state

model + app

同步原生调度状态

quota_resumer_record_run

model

幂等记录每轮结果、递增次数并执行最大次数止损

quota_resumer_upsert_prewarm

app

保存窗口预热策略

quota_resumer_set_prewarm_state

model + app

同步预热调度状态

同一任务只维护一条未完成续跑策略,预热也只维护一个策略记录。每次运行使用稳定 runKey 去重,避免同一轮被重复计数或重复续排。

本地数据与隐私

插件会读取:

  • $CODEX_HOME/sessions/**/rollout-*.jsonl 中最新的 token_count.rate_limits

  • Codex 传给 Widget 的任务 ID、标题、状态和项目标签。

插件不会主动读取或保存:

  • 对话正文;

  • 未由用户明确填入策略的提示词历史;

  • 项目源代码;

  • API key、登录 token 或 GitHub 凭据。

策略数据写入:

$CODEX_HOME/quota-aware-resumer/policies.json

该文件以明文保存用户明确填写的恢复指令、预热消息、任务 ID/标题和调度状态。不要在恢复指令中放入密钥或机密;删除这个文件可清除插件本地策略,但不会自动删除 Codex 宿主中已经创建的 Scheduled Tasks。

同一 MCP 进程内的写入会串行执行,并采用唯一临时文件 + 原子重命名,降低并发覆盖和进程中断造成文件损坏的概率。

开发

要求:

  • Node.js 20+

  • npm

  • PowerShell 7(仅兼容脚本和 Windows 手动排查需要)

常用命令:

npm install
npm run check
npm run build
npm start

测试:

node scripts/smoke-test.mjs
node scripts/prewarm-state-test.mjs
node scripts/reliability-state-test.mjs

smoke-test.mjs 会启动打包后的 MCP server、检查 7 个工具、调用控制中心并读取 Widget resource。prewarm-state-test.mjs 使用临时 CODEX_HOME 验证预热策略保存与状态同步。reliability-state-test.mjs 验证空 session 诊断、run key 去重和最大续跑次数止损;它们都不会修改真实策略。

目录结构

quota-aware-resumer/
├─ .codex-plugin/plugin.json
├─ .mcp.json
├─ .agents/plugins/marketplace.json
├─ dist/
│  ├─ server.mjs
│  ├─ control-center.html
│  └─ widget.js
├─ server/
│  ├─ quota.ts
│  ├─ server.ts
│  └─ state.ts
├─ web/
│  ├─ control-center.tsx
│  ├─ control-center.css
│  ├─ prewarm.css
│  └─ reliability.css
├─ skills/quota-aware-resumer/
├─ docs/user-pain-points-and-roadmap.md
├─ scripts/
├─ build.mjs
└─ package.json

dist/ 有意提交到仓库,因为插件的 .mcp.json 直接启动 dist/server.mjs,安装用户不需要在本机执行 npm 生命周期脚本。

参考文档

已知问题

  • 本地 session JSONL 不是公开稳定 API;Codex 更新后可能需要调整解析器;

  • 预热是否改变窗口起点取决于服务端实际行为;

  • 本地电脑睡眠、关机或桌面应用未运行时,Scheduled Task 可能延迟或错过;

  • 插件尚不能读取原生 automation 的完整运行历史,也不能在系统唤醒事件上自动补偿;

  • 本仓库完成了本地 MCP 协议回路测试,但不同 Codex / ChatGPT 桌面版本的 Widget 宿主行为可能不同;

  • 插件不会自动购买 credits、使用 banked reset 或绕过账户限制。

贡献

欢迎提交 Issue 或 Pull Request。涉及额度解析变化时,请提供脱敏后的字段结构,不要上传完整 session JSONL、对话正文、访问令牌或项目机密。

提交前请运行:

npm run check
npm run build
node scripts/smoke-test.mjs
node scripts/prewarm-state-test.mjs

许可证

本项目采用 MIT License。Copyright (c) 2026 cher9lie。

Available Tools

6 tools
open_quota_resume_control_center打开额度续跑控制中心B
Read-only

在 Codex 内显示可点击的额度续跑控制中心。调用前先使用 Codex 的任务列表能力取得候选任务,并将其作为 tasks 传入。

ParametersJSON Schema
NameRequiredDescriptionDefault
tasksNo
safetyDelaySecondsNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the tool displays a clickable UI within Codex and requires pre-fetched tasks, which is useful context. However, it does not disclose what happens when elements are clicked, whether the display is modal or transient, or how the passed tasks are rendered—behavioral details that could matter to an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first states the tool's function, the second gives the key prerequisite. It is front-loaded, concise, and every sentence contributes useful information. No filler or redundant restating of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and read-only, but the description still leaves an entire parameter ('safetyDelaySeconds') unexplained and gives no detail about the 'tasks' object shape. Since there is no output schema, the description carries the burden of explaining behavior and inputs. It covers the prerequisite but misses enough operational detail that an agent cannot fully reason about how to set 'safetyDelaySeconds' or what the control center will do with the tasks.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for both parameters. It does explain that 'tasks' should contain candidate tasks obtained from Codex's task list, which adds some meaning beyond the schema. However, it does not describe the required fields (id, title), the meaning of 'isCurrent', or the behavior of 'safetyDelaySeconds', which is a meaningful control parameter with default 120 and range 30-3600. This partial compensation is insufficient for a 0%-coverage schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('显示可点击的额度续跑控制中心') and the context ('在 Codex 内'), clearly identifying it as a UI-display tool rather than a data-mutation tool. It is distinguishable from the quota_resumer_* siblings because it is the only one focused on rendering a clickable control center in Codex. It loses one point because the meaning of '额度续跑控制中心' remains jargon-heavy and is not further explained.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit prerequisite: before calling, use Codex's task list capability to fetch candidate tasks and pass them as 'tasks'. This provides clear when-to-use context. It does not mention alternatives or exclusions, but for a UI-display tool this is a reasonable clear context without needing much negative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quota_resumer_get_snapshot刷新额度续跑状态C
Read-only

供控制中心刷新本地额度和策略状态。

ParametersJSON Schema
NameRequiredDescriptionDefault
safetyDelaySecondsNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the 'local state' context and the refresh behavior, but does not disclose whether the call may block for safetyDelaySeconds or what 'refresh' means in terms of caching or consistency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler or redundancy. It is front-loaded with the action and resource, though it is arguably too minimal to fully inform an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and the description does not describe what is returned, what the effect of safetyDelaySeconds is, or when this tool should be preferred over the siblings. For a simple read-style tool this is adequate only in the narrowest sense; an agent would still lack key operational details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for parameter meaning, but it does not mention safetyDelaySeconds at all. The property name is somewhat self-explanatory and the schema provides type/min/max/default, but the description adds no semantic context beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('refresh') and a specific resource ('local quota and policy state'), going beyond the title. It is distinguishable from the sibling mutation tools (upsert/set) because it implies a read-oriented snapshot operation, though it does not explicitly name a sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives only a vague context ('for the control center') and no guidance on when to use this tool versus open_quota_resume_control_center or the quota_resumer_* mutation tools. There is no explicit when-to-use or when-not-to-use reasoning.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quota_resumer_set_policy_state同步额度续跑调度状态B
Idempotent

在 Codex 原生定时任务创建、暂停、完成或失败后,同步控制中心中的策略状态。

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
stateYes
nextRunAtNo
lastMessageNo
automationIdNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover idempotency, read-only behavior, and destructiveness, so the safety profile is known. The description adds the sync trigger and target, but does not explain what happens to existing policy state, whether optional fields are ignored in certain states, or what happens on conflicting state transitions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no repetition or filler. It conveys the key trigger and target efficiently, although it sacrifices behavioral depth for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating tool with five parameters, no output schema, and only minimal annotation context, the description is too thin. An agent cannot confidently determine how optional parameters interact with the required state transition, what the sync does semantically, or when to prefer this over the sibling set_prewarm_state tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the parameter-meaning burden. It implies that the 'state' parameter reflects the policy state being synced, but it gives no meaning for id, nextRunAt, lastMessage, or automationId, leaving an agent without enough context to populate optional fields confidently.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the action (sync), the resource (policy state in the control center), and the trigger context (after Codex native scheduled tasks are created, paused, completed, or failed). It is clear enough to distinguish the tool from read-only siblings, though it does not explicitly say it overwrites the supplied state value.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear trigger condition for when to call the tool, namely after Codex native scheduled task lifecycle events. However, it offers no exclusions or named alternatives, and the sibling quota_resumer_set_prewarm_state creates ambiguity that the description does not resolve.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quota_resumer_set_prewarm_state同步额度窗口预热状态B
Idempotent

在预热 heartbeat 创建、暂停或失败后,同步控制中心状态。

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
stateYes
nextRunAtNo
lastMessageNo
automationIdsNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true, readOnlyHint=false, and destructiveHint=false. The description adds that this is a synchronization step following lifecycle events, but it does not describe what 'sync' means in terms of side effects, how state transitions map to parameters, or what happens on failure. This is acceptable but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence with no filler. It front-loads the trigger condition and states the action clearly. Conciseness is excellent, even though other dimensions lack depth.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with five parameters and no output schema, the description is too thin. It omits parameter semantics, the meaning of state values, how nextRunAt/lastMessage/automationIds are used, and what the synchronization outcome looks like. An agent would need additional documentation or inference to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the five parameters: id, state, nextRunAt, lastMessage, or automationIds. The schema provides types and enums, but the description adds no meaning to any parameter, forcing the agent to guess at semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific action—synchronizing control center state—and a clear trigger context: after a prewarm heartbeat is created, paused, or fails. The prewarm vs policy distinction from sibling tools like quota_resumer_set_policy_state is implied by the resource focus, though the tool name carries much of this differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when this tool should be used: after prewarm heartbeat creation, pause, or failure. It does not mention alternative tools or exclusions, but the event-driven context is specific enough to guide selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quota_resumer_upsert_policy保存额度续跑策略C
Idempotent

保存或更新一个任务的额度续跑策略;此操作本身不创建 Codex 定时任务。

ParametersJSON Schema
NameRequiredDescriptionDefault
threadIdYes
maxCyclesYes
instructionYes
threadTitleYes
safetyDelaySecondsYes
continueUntilCompleteYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey idempotence, non-read-only status, and non-destructiveness. The description adds one useful behavioral detail: this action does not itself create a Codex scheduled task. However, it does not disclose overwrite/merge semantics or how this policy interacts with policy state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight sentence front-loads the core action and appends only a meaningful clarification about not creating a scheduled task. There is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with six required parameters, no output schema, and no per-parameter documentation, the description is under-specified. It behave the meanings of safetyDelaySeconds, continueUntilComplete, and maxCycles unresolved, and provides little contextual guidance for an agent deciding how to construct a valid call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no explanation for any of the six required parameters. Fields like continueUntilComplete, safetyDelaySeconds, and maxCycles are left to be interpreted purely from their names, which is insufficient for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description gives a specific action — save or update a quota resume policy — and clearly identifies the resource. It also adds a useful clarification that this operation does not create a Codex scheduled task, though it does not explicitly differentiate from sibling policy-state or prewarm tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus siblings like quota_resumer_set_policy_state or quota_resumer_upsert_prewarm. The only routing hint is the negative statement about not creating a Codex scheduled task; otherwise the intended usage must be inferred from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quota_resumer_upsert_prewarm保存额度窗口预热B
Idempotent

保存日期或每周定时的轻量额度窗口预热设置;此操作本身不创建 Codex 定时任务。

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
timeYes
enabledYes
messageYes
timezoneYes
weekdaysYes
scheduleModeYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a mutating, idempotent, non-destructive operation. The description adds useful context by emphasizing that no Codex scheduled task is created and that the settings are lightweight. It does not contradict the annotations, but it also does not disclose what side effects do occur, such as overwriting existing settings or persistence behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise, well-structured sentence that front-loads the core purpose and follows with a valuable scope clarification. Every clause earns its place; there is no filler or repetition of schema/annotation information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 parameters, no output schema, and no parameter documentation, the description is too minimal. It does not explain parameter semantics, return behavior, or the relationship to sibling quota_resumer tools. An agent has enough to guess the tool's purpose but not enough to invoke it confidently with correct parameter values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It vaguely hints at scheduleMode via 'date or weekly schedule', but it does not explain the meaning or relationship of enabled, weekdays, time, timezone, message, or date. With 7 parameters and 6 required, this is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action—saving lightweight quota-window prewarm settings for a date or weekly schedule—and clarifies a key boundary: it does not create a Codex scheduled task. This distinguishes it from task-creation workflows, though it does not explicitly compare against sibling tools like quota_resumer_set_prewarm_state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by the purpose: use this when saving prewarm settings for a date/weekly schedule. However, it gives no explicit guidance about when to prefer this tool over siblings such as quota_resumer_upsert_policy or quota_resumer_set_prewarm_state, and the only exclusion is that it does not create Codex scheduled tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.4/5.0
Disambiguation5/5

Each tool maps to a distinct action and resource: display control center, refresh snapshot, upsert policy, sync policy state, upsert prewarm, and sync prewarm state. The policy vs prewarm and upsert vs set distinctions are clear and unlikely to be confused.

Naming Consistency4/5

Five of six tools consistently use the quota_resumer_ prefix with a verb_noun shape. The exception is open_quota_resume_control_center, which drops the prefix and changes 'resumer' to 'resume', creating a minor but noticeable inconsistency.

Tool Count5/5

Six tools is a well-scoped size for this domain, covering control-center interaction, state refresh, policy management, and prewarm management without unnecessary redundancy. Each tool has a clear purpose and earns its place.

Completeness3/5

The set covers core lifecycle operations through upsert and state sync, and the snapshot/control center tools provide visibility. However, there is no explicit delete/remove operation for policies or prewarm settings, and no detailed list/get beyond the aggregate snapshot, leaving cleanup of stale entries as a notable gap.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cher9lie/quota-aware-resumer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server