vmux
AppsvmuxWatch

Input on Watch

Type into a session from your wrist using dictation, the mini keyboard, and tmux shortcuts.

Input on a tiny screen

Typing on a watch is hard. vmuxWatch does not pretend otherwise. Instead, it gives you four input paths, each tuned for a different situation:

PathBest forNotes
Dictation (Cmd mode)tmux moves and shell controlRecognizes spoken phrases like "control b", "next window", "detach".
Dictation (Text mode)Short prose: a commit message, a search querySent as plain text.
Mini keyboardA few characters: a y, a q, a ^C follow-upFull QWERTY with symbols, arrows, and editing keys.
Tmux shortcut barOne-tap tmux moves^B, :, Det, n, p, %, ".
Repeat (Rpt)Re-running the last commandAppears once you have sent something dictation-like.

Everything goes to the iPhone, which is the one actually pushing keystrokes into the SSH session. There is no path that bypasses the iPhone.

Dictation

Dictation is the fastest input path on a watch. Tap the microphone button in the control row.

watchOS shows its standard text-input controller. Speak, then tap Done. The recognized text comes back to vmuxWatch, which decides what to do with it based on your current voice mode:

Cmd mode

When the toggle reads Cmd, the watch tries to interpret your phrase as a control instruction first.

You sayThe iPhone receives
control b, ctrl b, prefix, tmux prefixtmux prefix (Ctrl-B)
colon, command prompt, prompt, tmux commandtmux command prompt (:)
detach, tmux detachtmux detach
next window, window nexttmux next-window
previous window, prev window, window previoustmux previous-window
split vertical, vertical splittmux split-window vertical
split horizontal, horizontal splittmux split-window horizontal
control cCtrl-C
escapeEsc
Anything elseThe phrase, sent as keystrokes via the voice command parser

The fallback path (anything else) runs your phrase through the same voice command parser used elsewhere in vmux, which understands phrases like tab, enter, up arrow, home, and so on, and turns them into the matching control byte sequences. If your phrase is plain prose, it is sent as text.

The watch shows pre-built suggestion phrases in the dictation prompt to remind you of the common commands.

Text mode

When the toggle reads Text, dictation is treated as prose. Whatever the recognizer hears is sent as text. This is the right mode for git commit -m "Fix login race" or for typing a search term into less.

Switch between modes by tapping the Cmd / Text button. The yellow MIC CMD / cyan MIC TXT indicator next to it tells you the current mode at a glance.

Repeat

Whenever you dictate a real shell command in Cmd mode (something the parser does not classify as a pure control sequence), vmuxWatch remembers it per host. A small Rpt button appears in the control row. Tap it to re-send the same command without dictating again. This is built for "run the deploy", "run the tests", or "tail the log" muscle memory.

The remembered command is stored on the watch only. It is per host, not global, so the Rpt button always reflects the last meaningful thing you sent to this host.

The mini keyboard

Tap the Keys button to bring up the mini keyboard. It is a four-row QWERTY:

  • Three rows of letters or symbols, with Shift on the bottom-left of the third row and Backspace on the bottom-right.
  • A bottom row with 123 / ABC (toggles between letters and symbols), Esc, Tab, a wide space key, and Return.
  • An arrow row with left, up, down, right.

In symbol mode, the same row layout shows numbers and common shell punctuation: - / : ; ( ) $ & @ " and . , ? ! ' # % * +. Shift is hidden in symbol mode.

The keys are intentionally small. Tap accuracy on the watch is best with the side of your fingertip; the Digital Crown does not scroll the keyboard, but you can dismiss it with Done at the top to return to the terminal page.

Each tap sends the corresponding text or special key to the iPhone, which forwards it to the active window. Shift auto-resets after one character (so you do not have to un-shift after each capital letter), unless you are in symbol mode where shift does not apply.

Tmux shortcut bar

Below the main control row, the terminal page has a row of one-tap tmux buttons:

ButtonSends
^Btmux prefix (Ctrl-B)
:prefix + : (tmux command prompt)
Detprefix + d (detach)
nprefix + n (next window)
pprefix + p (previous window)
%prefix + % (split vertical)
"prefix + " (split horizontal)

These buttons always send the full sequence including the prefix, so a single tap does the entire move. They are the fastest way to navigate tmux on the watch.

If you have rebound your tmux prefix away from Ctrl-B on your remote tmux, the buttons still send Ctrl-B and your tmux will not interpret them. Either change tmux back to the default prefix on hosts you use from the watch, or use dictation phrases — those go through the iPhone's voice parser and respect your tmux config.

Special keys

Besides the keyboard's own special keys, the dictation path can encode any of these as control sequences via voice command:

Spoken phraseSent
escape, escEsc
tabTab
enter, returnCR
backspaceBackspace
up arrow, down arrow, left arrow, right arrowArrow keys

The mini keyboard exposes the same set on its dedicated keys.

Reconnect from the watch

The reload icon (arrow.clockwise) in the control row toggles the iPhone-side connection for the current window. If the session has dropped, tap it to reconnect; if it is connected, tap to disconnect. This is the same action as the iPhone's reconnect button — the iPhone is the one doing the work.

What the watch cannot send

  • The full set of macOS-style keyboard shortcuts (Cmd+anything). The watch has no Cmd modifier.
  • Function keys F1–F12. They are not on the mini keyboard and are not parsed by dictation.
  • Mouse events. The watch has no terminal mouse mode.
  • Bracketed paste from the watch clipboard. There is no clipboard exchange across the relay.

For any of those, switch to vmuxPhone, vmuxMac, or vmux on visionOS.