# Auto-continue Codex CLI after a usage limit

Source: https://ryansam.com/agent-auto-continue/codex/
Published: 2026-10-02 Updated: 2026-10-02

Codex hit its usage limit halfway through a refactor.
The reset's four hours away and you'd rather be asleep than babysitting it.

Codex CLI gives you a smaller model meanwhile, but won't pick your thread back up on the full one at the reset.
[Agent Auto-Continue](https://ryansam.com/agent-auto-continue/) will.
It's a free macOS menu-bar app that sends "Continue" into your Codex thread once the limit resets, so the work carries on overnight.

## What Codex already does

- Plus and Business get a five-hour allowance (Pro currently has no five-hour limit), and weekly limits may apply too ([OpenAI's pricing page](https://learn.chatgpt.com/docs/pricing)).
- Hit the limit mid-turn and Codex lets that turn finish, within fair use (same page).
- After that, Codex CLI 0.160 switched to a smaller model, Luna Reserve, on 2 October 2026, offering **Upgrade**, **Reset usage** or **Continue with Luna Reserve**.
  `-m` didn't override it, and [OpenAI's docs](https://learn.chatgpt.com/docs/pricing) don't describe it yet.
- The advanced models return at the reset, but Codex waits for your next message.
  For a simple task, the smaller model may be all you need.
- The [feature request](https://github.com/openai/codex/issues/21073) to sleep until the known reset, then carry on, is still open.

![Codex CLI 0.160 in a terminal saying it automatically switched to Luna Reserve due to usage limits, above a dialog offering Upgrade, Reset usage or Continue with Luna Reserve. A blue box marks the message that it is now using Luna and that usage resets after 22:13 on 7 Oct.](https://ryansam.com/_astro/platform-limit-light.DOTVHn_y.png)

*What Codex CLI 0.160 showed at the limit on 2 October 2026: a smaller model until the reset.*

## What the app adds

- **When free.** Codex [reports its rate limits with reset times](https://learn.chatgpt.com/docs/app-server), so the app starts as soon as the limit lifts.
  Nothing goes out while the limit holds.
- **More than one turn.** Up to a set number, or until you stop it.
  Turns that end at a usage limit don't count.
  Add a stop phrase like `TASK COMPLETE` and it finishes when Codex's last message contains it.
- **Proven delivery.** Each message carries an ID the app then looks for in the thread.
  If it can't tell, it marks the message unconfirmed and never resends.
- **Manners.** It re-checks the thread first and won't send if it's gone, archived or you've replied since.

![The Agent Auto-Continue menu-bar rail with the Codex thread "Migrate billing webhooks to v2" chosen, When free selected, and Until done with the stop phrase TASK COMPLETE. A blue box marks the When free button and the note that Codex is limited until 03:00.](https://ryansam.com/_astro/when-free-light.D_uNEXVl.png)

*Codex is limited until 03:00, so When free is already picked.*

It speaks Codex's own [app-server protocol](https://learn.chatgpt.com/docs/app-server), through the shared `codex app-server` daemon if one's running, a private one if not.
No fake keystrokes, no remote service, no changes to Codex (verified with codex-cli 0.159).

## Set it up

1. Install the [Codex CLI](https://learn.chatgpt.com/docs/codex/cli) and sign in.
   If the app can't find `codex`, set its path in Settings > Agents.
2. Download the disk image (button at the bottom), drag the app into Applications and open it.
   macOS asks once whether to open an app from the internet; choose **Open**.
3. Click the menu-bar icon and pick your Codex thread.
4. Choose when: **When free**, or a time with the "wait for it" box ticked.
5. Choose how far: **Once**, **Up to** a number of turns, or **Until done**.
   For a stop phrase, ask Codex to end its final message with it when done.
6. Press **Continue**.

## The honest limits

- **Approval prompts pause it.** Nobody's there to approve, so the turn's interrupted and the chain waits.
  Run Codex with [approval settings](https://learn.chatgpt.com/docs/agent-approvals-security) you'd happily leave overnight.
- **Your Mac has to be awake and the app running.** Missed schedules catch up after wake, and keep-awake is opt-in.
- **Quitting the app** leaves a turn in the shared daemon running, but interrupts one the app started through a private server.
- **Runaway chains pause.** Three usage-limited turns in a row do it.
  So will three completed turns in a row that each took under a minute (the task may be done).

## The terminal wrappers

| Tool | How it works | At a usage limit |
| --- | --- | --- |
| [codexc](https://github.com/g8cc/codexc) | macOS tmux wrapper; retries transient errors, queues timed prompts | Deliberately doesn't continue |
| [codex-auto-continue](https://github.com/thomasnormal/codex-auto-continue) | Linux tmux watcher; sends your prompt after every completed turn | Pauses until you resume |
| [codex-continue](https://github.com/cirosantilli/codex-continue) | Expect-style wrapper you run Codex through | Sleeps until the printed "try again at" time, types Continue |

All three need Codex running in a terminal session they control, and none has a stop phrase or GUI.
The app works on threads you already have and reads the reset time from Codex's protocol, not error text.
If your Codex still prints a "try again at" time, codex-continue does that fine.
