Same sessions,
every device.
One Mac runs Claude Code and Codex. Leave your desk. The same chat opens on your phone.
Reading auth.ts, session.ts…
if (lock.tryAcquire()) {
if (await lock.acquireAsync()) {
✓ Applied — tests passing
Same session
Leave the desk.
Leave the desk.
Keep the session.
The agent keeps working on your Mac. Your phone opens that same chat, mid-stream.
Fix the flaky auth test
Found it: a race in
login.ts. Patched and tests pass.Fix the flaky auth test
Found it: a race in
login.ts. Patched and tests pass.
Approvals
Say yes
Say yes
from the couch.
Commands and edits wait for you, diff attached. Allow once, or for the whole session.
Needs approvalnpm test
if (lock.tryAcquire()) {
if (await lock.acquireAsync()) {
DenyAllow ✓
✓ Allowed · tests passing
Push
Know
Know
when it's done.
A reply ready or an approval needed pings your phone. Tap it, you're in that chat.
9:41
ChillReply ready · Fix refreshToken 401
ChillNeeds approval · npm test
Terminal
A real terminal.
A real terminal.
Not a preview.
Any tmux window, live, with a proper keyboard. It survives your phone sleeping.
dev@mac-mini ~/Projects/api %
✓ 48 tests passed (2.1s)
Two apps. One Mac.
1
Chill Server on your Mac
Keeps every session alive.
2
Scan once to pair
Encrypted, device to device.
3
Pick up anywhere
Same session, every screen.
Everything the desktop tools do.
On every device.



Private by design
No cloud
No cloud
in the middle.
Your code, transcripts and keys stay on your Mac. Nothing of yours is uploaded to us.
- No account to create
- No transcript ever uploaded
- End-to-end encrypted, per-device keys
- Open protocol, open gateway source
Get Chill.
Chill Server on the Mac that runs your agents. Chill on everything else.
Mac · server
Chill Server
Menu-bar app. Needs claude or codex signed in.
Every device
Chill
The app you actually use.
Download for MaciPhone & iPad · TestFlightApp Store once approved