Local Code Agent watchtower · macOS
Stop babysitting the terminal.Get the real outcome when your Agent lands.
TodoPilot turns narrow local lifecycle signals from Claude Code, OpenAI Codex CLI, and Cursor into a visible macOS task. A run stays at the top of your screen while it works; when it finishes or needs attention, the result keeps its real state and the cat pilot can bring it back to you.
Local lifecycle integration · no transcript scraping · macOS 14+
One top-level run, one honest state
Real product semantics · controlled frontend demo
Start the run, leave the terminal, hear when it matters.
This sound-on Remotion walkthrough reproduces TodoPilot’s local Agent flow: working state, trustworthy completion, status island, and the cat pilot towing the actual in-app task banner.
Provider-aware, not provider-blind
Claude Code, OpenAI Codex CLI, and Cursor keep their identity.
The tools already expose their own notification or hook surfaces. TodoPilot does not pretend otherwise. It adds one local queue, outcome semantics, top-of-screen continuity, and a reminder you can act on after you step away.
Lifecycle hooks become a local task state.
Claude Code documents Notification, Stop, SubagentStop, and TaskCompleted hook events. TodoPilot listens only through the integration you choose to install.
Anthropic hooks reference ↗Completion can leave the terminal without losing context.
Codex documents an external notify command for supported events, including agent-turn-complete, plus configurable TUI notifications.
OpenAI Codex configuration ↗Cursor runs join the same watchtower.
TodoPilot maps supported local Cursor lifecycle signals into the same working, attention, completion, and failure model while preserving the provider badge.
Cursor Agent documentation ↗Provider names and logos identify the source only. TodoPilot is not affiliated with or endorsed by Anthropic, OpenAI, or Cursor.
Beyond a one-off notification
A reminder layer for the work, not another transient banner.
Native notifications and hooks are useful. TodoPilot is for the moment when you run several tasks, leave the terminal, and still need the result to become the next thing you can see and finish.
| Capability | Basic hook or system alert | TodoPilot |
|---|---|---|
| Completion sound or banner | Yes | Yes, with optional flight sound |
| Provider identity | Varies | Visible on the task and island |
| Persistent local queue | Usually no | Today List keeps the result actionable |
| Working state at top of screen | Usually no | Status island while the run is active |
| Failure stays different from success | Depends on configuration | Required outcome semantics |
| Reminder after you miss the first alert | Manual setup | Complete now or remind again |
| Upload code or transcript | Not required | Not required |
A narrow local workflow
Three steps from started to handled.
Install only the integration you want
TodoPilot uses provider lifecycle hooks or local integration points. It does not need a copy of your repository or full conversation.
Let the run stay visible
One top-level run becomes one local working task, with provider identity and an honest lifecycle state.
Handle the outcome
When the event is trustworthy, TodoPilot closes or updates the task and lets you complete it now or bring it back later.
Local by default
Watch lifecycle state without watching your code.
A completion reminder does not require broad surveillance. TodoPilot’s Agent path is intentionally narrower than transcript parsing or terminal recording.
No source-code upload
The local Agent reminder path does not need repository files to show lifecycle state.
No transcript scraping
Full conversations, reasoning traces, tool calls, and terminal output are outside the integration boundary.
No false success
Failed, cancelled, and lost processes keep distinct visible outcomes.
No account for local monitoring
The local lifecycle watchtower and Today List remain part of Free Mode.
Questions people ask
Code Agent notification FAQ
Can Claude Code notify me when it finishes?
Yes. Claude Code exposes lifecycle hooks. TodoPilot uses narrow local lifecycle signals to keep a top-level run visible and bring the result into one local reminder workflow.
Does TodoPilot upload my code or terminal transcript?
No. The Code Agent integration is designed around narrow local lifecycle events and does not require uploading source files, full conversations, reasoning traces, or terminal output.
What happens when an Agent fails or is cancelled?
TodoPilot preserves the terminal outcome. Failed, cancelled, and lost runs are not presented as successful completions.
Is TodoPilot only for Claude Code?
No. The current product story covers local lifecycle reminders for Claude Code, OpenAI Codex CLI, and Cursor, while keeping their provider identities visible.
Why use TodoPilot if my Agent already has notifications?
Use the built-in notification if that is enough. TodoPilot adds a persistent Today List, a working-state island, consistent outcome semantics, and a follow-up reminder when a transient notification is easy to miss.
Run the Agent. Leave the terminal. Let the cat report back.
TodoPilot Free Mode includes the local watchtower, Today List, and local reminders without an account.