OpenAI subscription runtime
AI OS includes a local, script-only provider named codex-account. It sends
text-analysis requests through a locally authenticated OpenAI account and the
ChatGPT-backed Codex Responses transport.
When the account can use the requested model, this path uses the account’s ChatGPT/Codex subscription allowance. It is separate from API-key billing. OpenAI still controls model entitlement, quotas, and reset windows.
Provider status
Section titled “Provider status”| Provider | Current behavior |
|---|---|
codex-account |
Implemented live text runtime through stored account authentication |
mock |
Deterministic credential-free runtime for local checks and tests |
disabled |
Explicit no-analysis state with fallback guidance |
openai-api |
Readiness-only placeholder; it does not send analysis requests |
Quick start
Section titled “Quick start”Run from the repository root:
bun run auth:openai -- loginbun run auth:openai -- statusbun run codex:smoke -- --model gpt-5.6-sol --jsonLogin starts a browser-account flow with a loopback callback and stores the result in ignored local state. A successful login proves authentication was stored; it does not prove that every model is included in the account plan.
The standalone smoke command does not read a Dream or Trend Finder model setting. Pass the intended model explicitly when you need the smoke to match a consumer.
Authentication lifecycle
Section titled “Authentication lifecycle”| Command | Purpose |
|---|---|
bun run auth:openai -- status |
Report a redacted missing, expired, invalid, or ready state |
bun run auth:openai -- refresh |
Refresh stored credentials for diagnostics |
bun run auth:openai -- reauth |
Replace a rejected grant with a fresh login |
bun run auth:openai -- logout |
Remove the configured local authentication state |
bun run runtime:check-private |
Confirm local runtime artifacts remain ignored and untracked |
Runtime consumers try to refresh expired credentials automatically. A request
that receives an authentication rejection can refresh and retry once. If the
refresh grant is rejected, use reauth.
Consumers and non-consumers
Section titled “Consumers and non-consumers”The shipped runtime can be used by Dream and Trend Finder. It is not the runtime for Hermes chat, Floating Oracle, Voice, or the Intelligence portal.
Configured reasoning effort is currently validated runtime metadata. The Codex transport does not yet forward a reasoning field, so the setting must not be treated as proof of a backend control.
Recovery
Section titled “Recovery”| State | Recovery |
|---|---|
| Authentication required | Run bun run auth:openai -- login |
| Expired authentication | Let automatic refresh run, then use refresh or reauth |
| Unsupported model | Select a model available to the signed-in account and rerun the smoke |
| Usage limit | Wait for the provider-reported reset or use another implemented runtime |
| Timeout or server error | Check connectivity and retry; repeated failure remains a provider issue |
openai-api selected |
Choose codex-account, mock, or disabled |
Privacy boundary
Section titled “Privacy boundary”Credentials, account identifiers, request material, and provider bodies stay
outside browser state, demo fixtures, scheduler summaries, and normal command
output. Requests use store: false, but provider processing still leaves the
machine. Submit only material appropriate for the consumer’s intended privacy
boundary.