Your coding agents.
In your pocket.
Run Claude Code, Codex, or any CLI agent in tmux on your Mac. Cici mirrors every session to a phone-friendly PWA — so you can approve diffs, prompt, or cancel from anywhere, the second your agent stops to ask.
Your Mac’s agent loop, wherever you are.
Claude pauses for a confirmation. Codex needs you to approve a tool call. Your phone buzzes. You tap Approve. The agent keeps going. You never went back to your desk.
Cici detects when an agent stops to ask, sends a Web Push to your installed PWA, and routes your reply straight back into the right tmux pane. No tunneling, no VPN, no re-explaining context.
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 tmux pane. Same as if you were at the keyboard.
Pinged when agents wait
Cici watches every pane 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 predictable tmux session. Every running session shows up as a tab in the PWA. Kill it on the Mac, the tab disappears.
Pick up where you left off
Sessions live on your Mac. Reconnect from anywhere — your panes, your scrollback, your half-finished prompt are still right there.
Works with any CLI agent
Claude Code, Codex, Gemini, your own scripts. If it runs in tmux 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 tmux
cici start <name> opens a named tmux session you can attach an agent to. Already running tmux? Cici picks those up 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 immutable Vercel Blob object for the notarized app archive.
Signed appcast
RSS feed used by Sparkle for auto-updates. Each enclosure points at a Vercel Blob zip and includes Sparkle's EdDSA signature.
Take your agents with you.
Install Cici, start an agent in tmux, scan a QR with your phone. Stop hovering over your terminal waiting for it to ask.