Scheduled, unattended coding agents

Your AI coding team runs the night shift.

Schedule Claude Code and Codex on the subscriptions you already pay for, let an orchestrator run the loop unattended within a budget cap, and triage everything it does from one inbox. Your credentials never leave your machine.

NO NEW SEAT TO BUY
CREDENTIALS STAY LOCAL
SPENDS ONLY TO CAP

The positioning, stated plainly

This is not another chatbot. The CLI session is the chat.

ratchetAI is what happens after you close the terminal.

workflow.diff— the shift in one read
-chat with an agent, watch it think, repeat
+configure automations → they run themselves → you observe & steer
01 / HOW IT WORKS

A loop that closes itself — and stops when it shouldn't.

Compose an automation once with an objective and a schedule. From there ratchetAI drives the loop: it runs your CLI, summarizes the result, and an orchestrator decides the next step toward the objective — proceeding on its own or escalating to your inbox.

01

SCHEDULE

You set the objective, the cadence (cron or interval), and a budget cap. Nothing interactive — it's a job, not a chat window.

02

RUN

Your local runner drives your already-authenticated CLI — claude -p or Codex — non-interactively. Output streams back as it goes.

03

SUMMARIZE

The orchestrator (gpt-5.4-mini, server-side) reads the finished session and writes the plain-language summary that lands in your inbox.

04

DECIDE

It picks the next step toward the objective and either runs it — or, if a deterministic rule trips, escalates and waits for you.

Compose it once. It re-runs on a schedule, and the orchestrator queues the next step toward the objective — so an overnight goal like "keep dependencies current and green" becomes a standing job, not a recurring chore you babysit.
02 / GUARDRAILS

The brakes are deterministic.

Autonomy you'd actually leave running overnight needs limits a model can't talk itself past. The orchestrator decides the next step, but these five triggers are coded rules — when one fires, the loop pauses and the work waits in your inbox for a one-line steer.

01
Budget cap reached
Per-automation spend hits its ceiling (e.g. $50.00). No further runs until you raise the cap or approve a resume.
02
Repeated failures
N consecutive sessions fail the same way. Rather than burn budget retrying blindly, it stops and hands you the diagnosis.
03
Risky / destructive next step
The proposed step matches a danger pattern — force-push, schema drop, mass delete, secret access. It asks before it acts.
04
Step limit reached
The automation has chained its maximum number of steps in one run without converging. It checkpoints to your inbox.
05
Low-confidence decision
The orchestrator can't pick a clear next step toward the objective. It surfaces the fork to you instead of guessing.
03 / TRUST BOUNDARY

Where your credentials live.

There's a clean line between what runs on your machine and what runs in the cloud — and your vendor logins never cross it. The control plane orchestrates; it never holds your keys or executes your CLI.

Local · your machine

The runner

  • Drives your already-authenticated CLI — the runner never sees a password or token.
  • Your Claude Code / Codex subscription stays where it is. No new seat, no proxied API keys.
  • All code execution and file access happens here, on your hardware, in your repo.
  • Streams session output up — sends results, not credentials.
Cloud · control plane

The orchestrator

  • Holds the schedule, objective, budget cap and escalation rules — the plan, not the secrets.
  • Summarizes each finished session and decides the next step within your cap.
  • Runs the inbox — where summaries and escalations land for you to triage.
  • Spends only on its own gpt-5.4-mini summarize/decide calls, bounded by the cap.

No credential custody. Because the runner drives a CLI you authenticated yourself, ratchetAI reuses subscriptions you already pay for and never takes possession of your vendor logins. The two planes talk in tasks and summaries — never in keys.

04 / THE OVERRIDE

One line puts you back in the loop.

An escalation isn't a dead end — it's a checkpoint. You don't reopen a terminal or replay context. You read the summary, type a single instruction, and the orchestrator folds it in and resumes from exactly where it paused.

  • Full context, already written. The escalation shows what ran, what failed, and what it spent — no archaeology.
  • Steer in plain language. "Pin react to 18.3 and retry the rest." That's the whole interface.
  • Resumes within the same cap. Your instruction re-engages the loop — it doesn't reset the budget.
nightly-deps-bump · escalation 03:14

3 consecutive sessions failed installing the bump set — a peer-dependency conflict pins react@19 against a charting lib that wants ^18. The orchestrator can't choose a downgrade for you, so it paused under the repeated-failure rule.

Spent / cap
$4.20 / $50.00
Failures
3 / 3
Rule
repeated-failure
Steer
pin react to 18.3 and retry the bump on the rest
Re-engages the loop within the same cap.
05 / QUICKSTART

From zero to your first night shift.

No demo, no waitlist. Sign up free, connect your machine with one command, and describe your first automation in plain language — the AI configures the rest. It runs tonight.

~/your-repo — zsh Requires: Node 22+, and the claude (or codex) CLI installed & authenticated
01 sign up & mint a runner token — free, 20 credits to start
open the app, then Runners → New token and copy rt_…
02 connect this machine — it drives your local claude / codex CLI
$ npx ratchetai-runner connect --url https://ratchet-control-plane.wandering-voice-f671.workers.dev --token rt_… --cwd ~/code
03 describe your first automation — the AI configures it
in the dashboard, say what you want in plain language; review the goal, schedule & budget, then create
The runner drives the claude / codex CLI you already authenticated — ratchetAI never sees your vendor login. Start free with 20 credits; you only pay if you keep going.

Want to read it first? Browse the source on GitHub — it's built in public.