A long-running coding agent — refactor a module, migrate a dependency, work through a backlog of issues — is most useful unattended. But "unattended" and "unsupervised" are not the same thing: the run should stop at anything that leaves the sandbox, and wait for you.
You want to kick off a coding agent before bed and wake up to progress, not to a surprise. The agent editing files in its own worktree is fine to leave alone. The agent running a database migration, pushing a branch, opening a pull request, or calling a paid API is not — one bad prompt turn and it commits to something you'd have vetoed in five seconds if you'd seen it.
Sitting at the terminal all night defeats the point of an overnight run. You need the risky steps to pause and wait for a decision that reaches you wherever you are — which in practice means your phone.
impri_push_action with a short title and a preview of exactly what it's about to do.impri_await_decision and blocks. Impri delivers the action to your phone via Telegram, ntfy, or web push, so it's a notification, not a tab you have to remember to check.impri_report_result to close the loop.
impri_push_action({
kind: "git.push",
title: "Push branch fix/retry-backoff to origin",
preview: {
format: "diff",
body: "3 files changed, 41 insertions(+), 6 deletions(-)\n+ retry with exponential backoff in http_client.py"
},
target_url: "https://github.com/acme/api/compare/main...fix/retry-backoff",
editable: []
})
// -> { action_id: "act_7g2k...", status: "pending", inbox_url: "https://app.impri.dev/inbox/act_7g2k..." }
impri_await_decision({ action_id: "act_7g2k...", timeout_s: 28800 })
// -> { action_id: "act_7g2k...", status: "approved", decision_at: 1757829400, preview: { format: "diff", body: "..." }, edited_by_human: false }
impri_report_result({
action_id: "act_7g2k...",
status: "executed",
detail: "Pushed, opened PR #482"
})The agent works through its whole backlog overnight instead of blocking on the first risky step. Every push, deploy, or paid call it made while you slept is a card you already reviewed — not something you have to reconstruct from logs at 7am. Nothing left the sandbox without your yes.
Free tier covers 100 approvals a month — plenty for a nightly run. Try it free or read the human approval pattern.