iPhone app
In development. The iPhone app is not released. It is not in the App Store yet. It will be published there later, so do not look for it there now. This page describes how it will work.
The iPhone app shows the canvas of a Mac that runs infiniterm. Its main use is to answer or prompt a Claude Code agent when you are away from the Mac.
What it does
Section titled “What it does”- Lists the Mac’s workspaces and cards with their agent state: waiting on you, working, failed or done.
- Opens one terminal card. You see its output and its history, and you can send it text and keys. A Yes and No bar shows while a card is waiting for you.
- Shows the canvas, so you can move cards.
- Uses the snippets from the Mac.
- Opens a page served on the Mac’s
localhost, such as a dev server, in a browser inside the app. The page goes through the ssh connection to the Mac. - Has an app lock, and shows English or Turkish.
The app is an ssh client. It reaches the Mac through Tailscale, to the Mac’s own ssh server, and runs ift proxy join, the same protocol as ift join. There is no account. The app uses the Mac’s own ssh and starts no server of its own. When Tailscale SSH is on, ift phone add also sets up a Tailscale port forward to the Mac’s ssh, as Pairing the iPhone app says.
What you need
Section titled “What you need”- Tailscale on the Mac and on the phone, in the same tailnet.
- Remote Login on in macOS: System Settings, General, Sharing, Remote Login.
- infiniterm running on the Mac, and the Mac awake. The phone cannot wake it.
- infiniterm 0.6.13 or newer on the Mac, which has
ift phone add.
Pair the phone with the Mac
Section titled “Pair the phone with the Mac”-
On the Mac, in a terminal card, run:
Terminal window ift phone add iphone-12The name is yours: letters, digits,
-and_, up to 32 characters. The command makes a key for that phone and prints a QR code. -
On the phone, open the app. On the host list, tap “Scan the Mac’s code” and point the camera at the code. The iPhone Camera app also works.
-
The Mac appears in the host list, ready to connect.
ift phone list shows the paired phones. To take a phone’s access back, run:
ift phone remove iphone-12The key stops working at once.
What to know about the QR code
Section titled “What to know about the QR code”- The code holds the phone’s private key. Anyone who sees it can use it, until you run
ift phone remove. - The code stays in that terminal card’s saved output. Show it only to the phone.
- A paired key can run only a short list of infiniterm commands on the Mac. It cannot open a shell.
How the key is made and limited, the options --host and --port, and what happens when Tailscale SSH is on are in Pairing the iPhone app.
You can also add a Mac by hand, without a QR code:
- In the app’s Settings, make an ssh key and copy its public line.
- On the Mac, add that line to
~/.ssh/authorized_keys. - In the app, add the host: a name, the Mac’s Tailscale name, the port, the user, and the path of
ifton the Mac. For the app bundle, the path is/Applications/infiniterm.app/Contents/MacOS/ift.
ift phone add limits its key to infiniterm commands. A key you add by hand has only the limits you write in authorized_keys. With none, it can run a shell.
Notifications
Section titled “Notifications”Notifications while the app is closed are optional. They go through one relay that is run by the app’s signer. The relay sees card and workspace names while it passes them on, and keeps them for up to 24 hours. It is used only for notifications and widget updates. Without notifications, the app works as above and nothing goes through the relay.