Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Base URL / API-compat / provider / model / capability declaration shape versus credentials and live probes; includes proven Codex OAuth quota inspection with exact agent query routing and dated official-vs-measured context-window evidence.
.claude/skills/lingtai-ai-preset-skill-op-endpoint-capabilities/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 73% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 150% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 116% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 192% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 336% | 0% |
Every built-in preset's manifest.llm declares a fixed set of fields; this child names what each one is and is not, so provider children can link here instead of re-explaining the shape every time.
provider — the kernel adapter name (minimax, zhipu, codex,codex-pool, ...). Selects which adapter class handles the request; not itself a credential.
model — the exact model string sent to the provider. Someproviders (gemini, claude-code) use a native alias or model id with no override surface; others (custom) leave it empty until configured.
base_url — the endpoint the adapter calls. Native adapters(gemini, claude-code) omit it entirely; OpenAI-compatible and gateway providers set it explicitly or leave it nil for provider-resolved defaults (openrouter).
api_compat — when present ("openai"), tells the kernel to routethrough the OpenAI-compatible client shape rather than a native adapter. Absence does not mean "unsupported" — native adapters (gemini) simply don't need it.
capabilities.vision / capabilities.web_search / capabilities.skills— opt-in capability declarations, not proof the underlying model actually performs an image/search call correctly. A capability being wired only means the kernel will attempt the corresponding route with the declared provider/credential; whether the live call succeeds is a runtime fact, not a manifest fact.
These declaration fields answer "what will be called and how" — they are distinct from:
api_key_env (env-var name, not a value),codex_auth_path (which bound OAuth token file, not its contents), or local CLI login state (claude-code). See ResolveRefsWithAuth (tui/internal/preset/preset.go:752-836) for how credential validity (not the declaration) is judged per-provider — keyed providers check existingKeys[envName], codex/codex-pool check OAuth state (per-account when AuthState.CodexAuthDir is set, else the global CodexOAuthConfigured bool), claude-code checks ClaudeCodeAuthConfigured.
model, and credential currently work together. This is a /doctor / runtime concept, not something Save performs — see reference/operations/availability-save-gate/SKILL.md.
A preset can be declaration-complete and credential-valid yet still fail a live probe (provider outage, model retired, quota exhausted) — route a "does this actually work" question to /doctor, not this skill, and route "what value/env-var/endpoint does this template even use" back to the specific provider child instead of guessing here.
This is proven, verified evidence about the installed Codex CLI's own quota surface — not an assertion that a particular TUI/kernel adapter or running session exposes it. The direct app-server operation below remains the source route; verify any adapter-facing convenience surface against the running implementation instead of inferring it from this manual.
An agent that needs live Codex OAuth quota/rate-limit data must:
initialize handshake first (clientInforequired; capabilities optional) — account/rateLimits/read is only valid after initialize, not before.
account/rateLimits/read request. Its params arestructurally null — the JSON-RPC schema fixes "params": {"type": "null"} for this method, so the call carries no request body beyond id/method. Do not invent request fields for it.
GetAccountRateLimitsResponse: a requiredrateLimits (backward-compatible single-bucket RateLimitSnapshot), optional rateLimitsByLimitId (the same snapshot shape keyed by limit_id, e.g. "codex"), and optional rateLimitResetCredits. Each RateLimitSnapshot carries primary/secondary RateLimitWindow objects (usedPercent required; windowDurationMins/resetsAt nullable), plus planType, limitId, limitName, rateLimitReachedType, credits (CreditsSnapshot: hasCredits, unlimited, nullable balance), and individualLimit (SpendControlLimitSnapshot).
account/rateLimits/updatedserver notification for the same AccountRateLimitsUpdatedNotification shape (a rateLimits snapshot) — but treat it as a sparse rolling merge signal, not a substitute for step 2: per its own schema description, a client should merge available values into the most recent account/rateLimits/read response (or refetch), and a nullable field being absent in one notification does not mean it cleared a previously observed value.
official /status slash command inside the Codex TUI — useful for a human to cross-check, not a programmatic substitute for step 2.
codex doctor --json does NOT expose any of this. It emits aredacted installation/config/auth/runtime health report with no rate-limit, quota, or usedPercent-shaped field. Do not route an agent there for quota.
usedPercent, windowDurationMins, resetsAt,planType, limitId, limitName, rateLimitReachedType, the CreditsSnapshot/SpendControlLimitSnapshot fields) is account-level usage/plan metadata — none of it is a token or credential, and none of it should ever be paired with the OAuth token file's contents or absolute path when reported back to a user.
what the existing codex/codex-pool display rules already allow (label → email → default/slug) — do not read account identity out of this response; it is a rate-limit/credits payload, not an identity one.
rateLimitResetCredits.credits can be null (only availableCountknown) even when credits exist — do not infer "no reset credits" from a missing credits array.
Two different numbers answer two different questions; keep them separately qualified and never let one stand in for the other:
what to cite as the vendor-published number, and it is the only number that may be presented as "current official Codex context window" without further qualification.
This is not an official published limit — it is one synthetic probe's observed acceptance boundary and must always carry its qualifiers: OAuth Codex route, model gpt-5.6-sol, codex-cli 0.144.3, low reasoning effort, synthetic filler payload, measured 2026-07-19. Evidence (tokenizer o200k_base 0.12.0, all values from live turn.completed/error events, not estimated):
turn.completed.input_tokens=312684,cached_input_tokens=9984, output_tokens=12, reasoning_output_tokens=0).
CONTEXT_PROBE_359K_OK; total input 371684, cached 9984, output 12, reasoning 0).
model's context window." (same-setup predicted total, if per-request overhead stayed constant at 12,684: 372684).
tokens accepted (359K user payload) and approximately 372,684 total tokens rejected (360K user payload plus the same 12,684-token overhead). The shorthand ~372,000 total-token boundary locates that 1,000-token interval; it is not an exact measured ceiling. Subtracting the measured 12,684-token setup overhead from the rounded 372,000 shorthand yields the correction's roughly 359,316-token same-setup user-payload reading, while the exact empirical claim remains only "359,000 passed; 360,000 failed." LingTai's 300K working default is safely below this measured bracket and therefore underuses the observed route capacity.
present 372K (or the ~359,316 user-payload derivation) as timeless or universal. The 372K figure is one dated, route/model/CLI-qualified synthetic A/B result, not a vendor commitment, and it can change on any Codex release, account plan, or route change. Always carry the qualifiers when citing it; never round it into "the Codex context window" unqualified.
The app-server request/response/notification shapes above come from the Codex app-server's own generated JSON Schema definitions (GetAccountRateLimitsResponse, AccountRateLimitsUpdatedNotification, InitializeParams, and the ClientRequest/ServerNotification protocol union listing the exact account/rateLimits/read / account/rateLimits/updated method names and the request's params: null shape) — read directly, not reconstructed from binary strings. The context-window PASS/FAIL evidence above comes from a targeted, read-only synthetic probe directory (JSON-RPC event logs plus prompt manifests recording tokenizer, verified_user_tokens, and sha256 per probe); its exact machine-local path is intentionally not reproduced in this skill's portable frontmatter/prose — describe it as "the 2026-07-19 Codex OAuth context-window probe evidence" if a pointer is needed.
For the installed-CLI facts (codex --version → codex-cli 0.144.3, codex doctor --json's actual redacted-report scope), read-only discovery was run directly against the locally installed @openai/codex package — codex doctor --json was executed and its output inspected for any rate-limit/quota/usedPercent-shaped key (none present); codex doctor --help confirms --json is scoped to "a redacted machine-readable report" about installation/config/auth/runtime, not usage/quota.
Re-verify both the schema shapes and the measured boundary against the actually-installed Codex version and current date before relying on exact field names or the 372K figure in new code — the schema is app-server-internal surface, not a versioned public API, and the measured boundary is a snapshot, not a specification.
If an adapter/runtime consumer of this data is built later, per-OAuth account:
remaining = max(0, 100 - usedPercent) as the headline number.duration, and limit-id fields explicitly; a bare "remaining %" without its window/reset context is not enough to act on.
discipline as reference/codex-pool/SKILL.md's display rules (label → email → default/slug, never the raw path or token).
This section documents the direct Codex source operation independently of any adapter convenience surface. If the running adapter exposes equivalent quota telemetry, verify its fields and version against this source contract; otherwise use the exact app-server sequence above. See reference/codex/SKILL.md and reference/codex-pool/SKILL.md for the provider-specific routing and account-safety boundaries.
For why Save never tests these declarations against a real provider call — and where that live diagnosis actually happens — see reference/operations/availability-save-gate/SKILL.md.
Other measured skills in the registry, with their headline benchmark lift.