@gent
Docs

Approval emails

When an agent needs permission, the task pauses and you get an email with the exact action. You approve or deny it by reply.

Turn it on

Add these lines to your config, then restart the runner while no task is running:

"approvals": "email",
"approval_timeout_seconds": 900

The timeout can be 30 to 86400 seconds. Existing configs stay on off.

Answer an approval

The email shows the full action, the working folder, the reason, the task and a SHA256 digest. Reply directly to that email with exactly one word:

approve

or deny. In the task thread, reply with the token from the email instead: approve TOKEN or deny TOKEN.

Note

One reply approves one action.

A grant never covers a session or a later command. approve all is not supported. A new thread, a plain "yes", extra text, a quoted approval or a reused token does not count.

Check

No answer means deny.

When the timeout passes, the action is denied. stop, a shutdown or a restart also cancels every open approval.

What each agent supports

Codex runs through its app-server with the on-request policy. It asks about commands and file changes with a full diff. The configured sandbox still covers actions that need no approval. Requests for session-wide grants or terminal input are refused.

Claude Code runs through its native permission channel in default mode. Your existing allow rules still apply without an email, and hard deny rules still win. No plugin or phone app is needed.

A missing channel, an incomplete action or an action over 24,000 characters is denied. It is never shown in part.

Requirements

Claude Code 2.1.259 or later and a Codex CLI with app-server. Keep your computer's clock accurate, because expiry uses wall-clock time.

Checked against @gent 0.4.4, the current release on PyPI.