documentation
cantscroll watches for ai coding agents on your mac and locks distracting apps on your paired iphone while they work — automatically, until the session ends. this is the setup + reference for the free mac agent and the cli.
getting started
you need a mac and an iphone on ios 16.2 or later. the mac agent is free; the iphone app is a subscription. total setup is about two minutes.
1 · install the mac agent
2 · pair your iphone
run cantscroll pair — it prints a qr code. open the cantscroll app on your
iphone and scan it. pairing is one-time and end-to-end encrypted; keys stay on your
devices.
3 · choose apps to block
in the app, approve the screen time prompt and pick the apps you want shielded during coding sessions — instagram, x, reddit, youtube, whatever pulls you away.
4 · start coding
that's it. the next time claude code (or another agent) starts working, your phone
locks the apps you chose. when the session ends, they come back. no timers, no willpower.
want to focus without an agent running? tap a duration in the app, or run
cantscroll start --duration 45m.
how it works
the mac agent runs quietly in the background and watches for ai coding agents. claude code is detected precisely via its session hooks; cursor and other agents are detected by their running process. the moment one starts, the agent signals your paired iphone, which applies your chosen shields through apple's screen time api. when the agent exits (or your session's time is up), the shields lift.
any network
on the same wi-fi, mac and iphone talk over a direct, end-to-end encrypted connection (mutual-tls over bonjour) — near-instant. on different networks, cantscroll falls back to apple's push service automatically; blocking still works, typically within a few seconds. there's a device-side safety net that lifts shields at the scheduled end even if both go offline.
custom agents
run a coding tool cantscroll doesn't know yet? add it by process name:
system processes (bash, ssh, and the like) are rejected — cantscroll only triggers on real coding agents.
cli reference
everything the agent does is drivable from the terminal. the essentials:
cantscroll panic always works, instantly, with no password — it
unblocks everything and holds off re-blocking for ten minutes. cantscroll is a
commitment device, not a cage.
troubleshooting
my phone isn't blocking
run cantscroll status on the mac. if it shows a session but the phone
isn't shielding: make sure screen time access is on (iphone → settings → screen time →
allow cantscroll), and that you've picked apps to block in the app. on different
networks, allow a few seconds for apple's push to arrive.
"not connected" on the phone
the direct connection needs both devices on the same wi-fi. on split networks (mac on wi-fi, phone on cellular), cantscroll uses apple's push instead — blocking still works, just with a short delay. it reconnects automatically when they're back on the same network.
my agent isn't detected
check cantscroll list-triggers. claude code and cursor are on by default;
add anything else with cantscroll add-trigger <process>. note that some
agents run entirely in the browser with no local process — those can't be detected.
something's stuck
cantscroll doctor runs an end-to-end self-check and points at what's wrong.
cantscroll logs --follow streams what the agent is doing. and
cantscroll panic always gets you unblocked immediately.
uninstall
removing cantscroll is clean and complete — no leftover background processes, no lingering config. on the mac:
to also remove local data (session history and logs), which is otherwise harmless:
on the iphone, delete the app like any other. to stop a subscription, cancel it in settings → your name → subscriptions (or app store → subscriptions) — deleting the app alone does not cancel billing.
privacy & security
your data stays on your devices. there's no account and no login. the connection between your mac and iphone is end-to-end encrypted — over the local network it's mutual-tls; when it falls back to apple's push, the payload is encrypted with a key only your two paired devices hold. the relay that forwards those pushes only ever sees ciphertext.
session history, streaks, and focus stats are computed and stored on your device, never uploaded. cantscroll doesn't track you, sell data, or run analytics on your behavior. optional, anonymous diagnostics are off by default and never include app names, domains, or identifiers.
full details are in the privacy policy and terms of use.