The agents run on your computer. moshterm is the window.
An SSH and Mosh terminal for iPhone, iPad and Android, made for the coding agents you leave running in tmux, Zellij or Herdr. It tells you when one of them is waiting, and you can answer from the lock screen.
01 connection
Lock the phone. Change networks. Come back to the same shell.
moshterm speaks Mosh, so a session rides out the walk from Wi‑Fi to cellular and the time your phone spends in a pocket. Where the host has no mosh-server it tries Eternal Terminal, then plain SSH, without asking you to pick. If iOS or Android kills the app, opening it again puts you back in the tmux, Zellij or Herdr session you left.
Passwords and keys stay in the iOS Keychain or Android Keystore and go only to your own machines.
| time | network | transport | what you see |
|---|---|---|---|
| 09:12 | home Wi‑Fi | mosh | attached to api on studio |
| 09:40 | cellular | mosh | the same session; nothing reconnects |
| 09:41 | phone locked | — | the agent keeps working on studio |
| 11:02 | office Wi‑Fi | mosh | same window, same prompt, nothing to retype |
02 sessions
It opens what is already running.
When you connect, moshterm lists the host's tmux, Zellij and Herdr sessions. Pick one and you are attached; skip and you get a shell. Swipe sideways to move between panes.
Jump To moves between windows and tabs. In tmux it moves only your phone's client, so the window on your desk stays where you left it.
03 approvals
When an agent stops to ask, it shows up on the lock screen.
The companion on your computer sees the agent's permission prompt and sends it to your phone with the command it wants to run. Deny it from there. Approve asks you to unlock first, so a phone left on a table approves nothing.
Approving types the answer into the agent's own dialog, but only after the companion checks the dialog on screen is still the one you were shown. If it has changed, nothing is typed and the phone tells you. A prompt it can't answer safely says Answer in terminal
and takes you there.
- iPhoneWhile an agent works, its session sits on the Lock Screen as a Live Activity.
- quietBy default a finished turn only buzzes when the reply needs you: a question, a decision, a problem. Everything else waits in the Inbox.
04 inbox
One list of who is waiting.
The Inbox gathers the agent sessions on every computer you have paired and sorts them three ways: Needs you, Working, Done. Each session keeps one row that updates in place, so ten turns from one agent are one line, not ten notifications.
A computer you are not connected to keeps showing what it last reported, marked as such, until you connect again.
05 chat view
Read the conversation, not the redraw.
Agent TUIs repaint constantly, which is hard to follow on a small screen. Chat View shows the same session as a conversation: your prompts, the agent's replies, each tool call folded to one line, read from the agent's own transcript on your computer.
A prompt you send from it goes to the same pane. Close it and the terminal is exactly where it was.
06 dictation
Or say it.
Hold the keyboard key and talk, in the terminal or in Chat View. Speech can stay on the phone, with the system recognizer or a Whisper model you download, or go to a cloud service using an API key you bring. Your dictations are kept in a history on the phone.
07 keys
Nine keys a phone keyboard forgot.
The bar above the keyboard holds what a terminal actually needs. Every key fires when your finger lifts. Flick a key up for the symbol in its corner. Hold ctrl for the chords agents use.
- tap
- Return 0d
- flick up
- a newline the agent accepts 0a — ⌃J in Claude Code, Codex and pi
| key | tap | flick up |
|---|---|---|
| esc | Escape 1b | ⌃C 03 |
| tab | Tab 09 | ⇧⇥ 1b 5b 5a |
| ctrl | Ctrl for the next key; tap twice to lock it | Alt for the next key |
| ◉ | The Stick: push for one arrow, hold to repeat; tap for the arrow pad | — |
| ⏎ | Return 0d | a newline the running agent accepts |
| / | 2f | @ 40 |
| ✳ | The agent's own keys. The key shows who is running: ✳ Claude Code, ◎ Codex, π pi, $ the shell | ⇧⇥, to cycle the agent's mode |
| paste | The clipboard, as a bracketed paste | — |
| ⌨ | Show or hide the keyboard; hold to dictate | paste |
- ⌃Cstop
- ⌃Dexit
- ⌃Lclear
- ⌃Rsearch
- ⌃Aline start
- ⌃Eline end
- ⌃Ukill ←
- ⌃Kkill →
- ⌃Wdelete word
- ⌃Zsuspend
- ⌃Otranscript
- ⌃Jnewline
08 companion
One small program on your computer.
moshterm is a complete terminal with nothing installed on the host. The companion, moshterm-hook, adds the agent layer: approvals, the Inbox, Chat View, notifications and Jump To. It runs as your user, listens only on 127.0.0.1, and the phone reaches it through the SSH connection it already has.
curl -fsSL https://mickmosh-relay.mick-fb5.workers.dev/install.sh | shmoshterm-hook install- Claude Code
- Codex
- OpenCode
- Cursor
- Grok Build
- Kimi Code
- Hermes
- Pi
- OMP
Then connect from the phone. It pairs on that first connection; there is nothing to copy. More about the companion
09 privacy
Your terminal sessions never pass through us.
What you type and see goes directly between your phone and your computer. There is no account to make.
- on your phone
- Passwords, SSH keys and pairing tokens, in the Keychain or Keystore. They are sent only to your own machines.
- on your computer
- The companion and its state, under your own user.
- through the relay
- Only if you turn on push. It hands notification text to Apple or Google for delivery and stores none of it. Inbox snapshots and approval decisions are sealed before they leave your devices, so the relay can't read them.
Without push, everything else keeps working over your own connection. Privacy policy
10 pricing
Free, with one optional subscription.
| Freeno account, no trial timer |
|
|---|---|
| moshterm Prolive previews |
$1.99a week
$5.99a month
$49.99a year · 14 days free first
US prices; your store shows yours. Billed by Apple or Google, cancel there any time. Pro never takes anything away from Free. Terms |