Your coding agents.
In your pocket.
Run Claude Code, Codex, or any CLI agent in a terminal on every Mac you pair. Cici mirrors every session to a phone-friendly PWA — so you can approve diffs, prompt, or cancel from any device, the second an agent stops to ask.
Control your Mac from wherever you are.
Pair every device once — home Mac, work Mac, any phone. Type cici start. Your terminals are now in your pocket.
Open Cici on your Mac. Scan the QR with your phone’s camera. The PWA installs in two taps.
Type cici start <name> in any terminal. Cici opens a terminal session on your Mac and points your phone at it.
Approve, prompt, cancel — from anywhere your phone has signal. The agent keeps going. You keep walking.
Everything an agent loop needs. On a phone.
Approve from anywhere
Tap Approve, Always Allow, or Cancel — Cici sends the right keystrokes (1 + ⏎, 2 + ⏎, ⌃C) into the active terminal on your Mac. Same as if you were at the keyboard.
Pinged when agents wait
Cici watches every terminal for the moment an agent stops to ask. Your installed PWA gets a Web Push, the second it happens — even if the tab is closed.
Beyond buttons
Free-form prompts to nudge the agent. A whip gesture for one-shot follow-ups. Custom button packs for the workflows you run all day.
Multiple sessions, one tab bar
cici start <name> creates a named terminal session on your Mac. Every running session shows up as a tab in the PWA. Kill it on the Mac, the tab disappears.
Home Mac, work Mac, any phone
The relay is many-to-many. Pair every device once — every laptop reaches every paired phone, every phone reaches every paired Mac. Switch contexts without ever re-pairing.
Works with any CLI agent
Claude Code, Codex, Gemini, your own scripts. If it runs in a terminal and asks for input, Cici can ping you and send your reply.
Up and running in under a minute.
One npm command
The setup package downloads the signed Mac app, drops it in /Applications, and launches the menu bar. The app installs the cici CLI on first run.
Start an agent in a terminal
cici start <name> opens a named terminal session on your Mac and runs your agent inside it. Already have terminals open? Cici can attach to those too — no extra setup.
Scan, install PWA, allow push
The Pairing tab shows a QR with the relay link and secret. Scan with iPhone Camera, add to Home Screen, tap Enable Alerts. Done.
Hey — I’m Ben. I built Cici because I was sick of my code pausing when I went to the bathroom.
Or to make coffee. Or to step outside for two minutes. The pattern was always the same — I’d get up, the agent would hit a confirmation prompt, and the whole loop would just stop.
Modern coding agents need a human in the seat. They ask before edits. They ask before commands. They ask, then they wait — and the work that should run in the background ends up serialised through me, glued to a chair.
So I made the smallest thing that fixes it. My phone buzzes the second an agent stops. I tap approve from wherever I am. It keeps going. I keep walking.
That’s the whole product.
One command in. App-owned updates after.
The npm package is the front door. It downloads the signed Mac app from the stable release URL, installs it, and opens it. After that, the app owns its own updates through Sparkle.
@getcici/setup
Thin installer package. Publish this only when the installer changes; app releases ride through the Mac updater.
Latest Cici.app zip
Stable website path that redirects to the current Cloudflare R2 object for the notarized app archive.
Signed appcast
RSS feed used by Sparkle for auto-updates. Each enclosure points at the latest release zip and includes Sparkle's EdDSA signature.
Take your agents with you.
Install Cici, start an agent in a terminal, scan a QR with your phone. Stop hovering over your terminal waiting for it to ask.