vmux
AppsvmuxKeyboardExtension

Using with vmuxPhone

When to use vmuxKeyboardExtension versus vmuxPhone's built-in keyboard, and how they interact with the accessory bar.

Two different keyboards in the same app

vmuxPhone ships with its own embedded keyboard view. It is a custom UIView, not a system keyboard, so it is always available inside the app without anything to install — and it sits under the terminal in portrait, beside it in landscape. The vmuxPhone keyboard manual covers it in detail.

vmuxKeyboardExtension is a separate, system-wide keyboard. After you install it once, it shows up in the iOS keyboard picker for every text-entry surface across the OS — Mail, Messages, Notes, Slack, the GitHub app, every other SSH client, and yes, also vmuxPhone.

Both can technically be active at different moments inside vmuxPhone. The difference is who decides which one shows up:

  • The embedded keyboard is what vmuxPhone draws by default. It is always there in portrait or landscape, with no globe key needed.
  • The system extension only shows up when you tap into a system text field. vmuxPhone does not use a system text field for terminal input — it uses its own custom view — so the system keyboard (and therefore your installed third-party keyboards) does not appear over the terminal in normal use.

When to use which

Most of the time, when you are inside vmuxPhone and using its terminal, stick with the embedded keyboard. It is faster to load, perfectly tuned for the terminal display, supports voice dictation that the extension does not, and integrates with the accessory bar without any handoff.

Switch to vmuxKeyboardExtension when:

  • You want the same layout outside vmuxPhone. Composing a multi-line shell command in Notes, replying to a GitHub issue with code blocks, pasting a tmux config snippet into Slack — the extension gives you Esc, Tab, brackets, pipe, slash, tilde, and the F-row everywhere.
  • You are using a third-party SSH client (Termius, Blink, Prompt 3, ish) that does not have its own custom terminal keyboard. The extension turns those clients into something usable.
  • You want a single muscle-memory layout across every app on your phone, including web forms, code editors like Working Copy, and IDE-like tools.

You probably do not need it inside vmuxPhone unless you have a specific reason — the embedded keyboard already has all of these features and more.

Three keyboards, one accessory bar

vmuxPhone has a strip across the top of the keyboard area called the accessory bar. It is not a keyboard — it is a separate UIKit input accessory view that sits above whatever keyboard is active. It contains:

  • One-shot Ctrl, Alt, Shift, and CapsLock toggles.
  • An Esc key, a Tab key, four arrows, and the common shell symbols (|, /, ~, -).
  • A button for the command palette and one for the menu.

The accessory bar appears regardless of which keyboard sits below it:

Below the accessory barSource
The vmuxPhone embedded keyboardDefault.
vmuxKeyboardExtensionIf you used the globe key or have it set as your default keyboard.
iOS system keyboardIf you switched away from vmux on purpose.
Hardware keyboardIf something is plugged in over USB / Bluetooth — the on-screen layer disappears and only the accessory bar remains.

The accessory bar does not duplicate the extension's modifiers. If you have vmuxKeyboardExtension active and you tap Ctrl on the accessory bar, then tap c on the extension, the result is Ctrl+C — the modifier state is shared at the input-handling layer.

Comparison

CapabilityEmbedded keyboardvmuxKeyboardExtension
Available inside vmuxPhone terminalYes (default)Yes if you switch to it
Available in other apps (Mail, Slack, third-party SSH)NoYes
Esc, Tab, F-row, arrows, brackets, pipe, tildeYesYes
Sticky one-shot modifiersYesYes
Theme follows vmux terminal themeYesYes
Voice dictation (Cmd / Prose modes)YesNo
Swipe to typeYesYes
Trackpad mode on spacebarYesYes
Layout switches in landscape (left half / right half)Yes (lives on both rails)No (single keyboard, full width)
Liquid Glass background (iOS 26+)YesNo
Works without Allow Full AccessN/A — it is part of the appYes

Making vmuxKeyboardExtension your phone-wide default

If you want the extension to be your main keyboard everywhere on iOS:

  1. Install it (see Installing the keyboard).
  2. Open Settings -> General -> Keyboard -> Keyboards.
  3. Tap Edit, drag vmux Keyboard to the top of the list.
  4. Remove English (US) and any other system keyboards you do not need. (Optional — but if you want zero globe-key cycling, this is the way.)

iOS will use vmux Keyboard for every fresh text field. Inside vmuxPhone, the embedded keyboard still shows because vmuxPhone owns its terminal input view directly — system keyboard preference is irrelevant there.

When to switch back to the embedded keyboard

If you set vmuxKeyboardExtension as your default and then want voice dictation in vmuxPhone, you do not need to change keyboards — you are already on the embedded one when you are inside the terminal. The microphone button on the embedded keyboard kicks off iOS speech recognition the same as it always does. See Keyboard and input for the dictation modes.

If for some reason you want to use the iOS system keyboard inside vmuxPhone (we cannot think of a good reason, but iOS allows it through accessibility settings), you would have to switch in the system keyboard picker, and even then vmuxPhone draws its own input view by default.

See also