Tokenmax 0.1.7
Queue a task for Codex, and let it run itself into quota that would otherwise expire.
Added
A task can be run by Codex. The queue could already execute one — the runner, the sandbox policy and the reasoning setting were all there — but nothing in the app could create it, so every task was Claude's. The editor now has a Provider picker, and Settings → Queue automation → New task defaults chooses which provider a new task starts on. A task carries both providers' settings at once, so switching the picker back and forth never loses what you set on the other side.
Codex tasks can run automatically. Under Settings → Queue automation → Codex, behind a switch of its own — trusting one agent to run unattended is not the same decision as trusting two, so it stays off through an upgrade.
Tokenmax spends whichever Codex window is about to expire: the session window on plans that report one, the weekly window on plans that do not. That second case is the one that matters — a Codex Plus account reports a single seven-day limit and no five-hour one, so there was previously no window about to expire for its queue to spend against. Codex carries its own lead time and per-window allowances for the same reason: against a seven-day window, "one task per window" means one task a week, which the settings section says out loud and is usually a number to raise. Everything else is shared with Claude, including appointments at a specific date and time.
Two differences follow from Codex itself. It reports no per-run cost, so there is no spending limit to enforce — the sandbox and the runtime limit bound a run instead. And a Codex signed in with an API key has no plan allowance to meter, so automation refuses rather than billing you per token.
The Codex model is a list rather than a typed-in id. Codex reports its own models, including which reasoning levels each one accepts — those genuinely differ per model, and offering one a model rejects turns a queued run into a failed one. Tokenmax now asks, caches the answer, and refreshes it at most daily, exactly as it already does with Anthropic's model list. A model released after your copy of Tokenmax appears on its own, and Other… still takes anything typed by hand. Leaving a task on Codex default defers to the model in your own ~/.codex/config.toml.
A mixed queue says which agent runs what. Cards carry a provider badge once the queue actually holds both, and the search row gains a provider filter. Neither appears on a queue that only ever uses one.
Fixed
A failed Codex run now says why it failed. Tokenmax listened for a turn/failed notification the App Server protocol does not have, so a failure arrived as a bare status with no reason attached. Found by new Codex drift checks in make doctor, which now cover the flags, the sandbox and approval values, and every JSON-RPC method name — the last checked against the protocol schema the installed CLI generates, so it cannot go stale against a copy checked into the repository.
Installing
The image is signed but not notarized, so the first launch is refused. Open System Settings → Privacy & Security and click Open Anyway. macOS also asks once for keychain access, because the binary is new — that is expected once per version you install.
Requires macOS 14 or later.