Get Moshi
input

Keyboard and shortcuts

Toolbar controls, hardware keyboard shortcuts, Option-as-Meta, custom shortcuts, advanced multi-step bindings, and the D-pad.

updated 1 week ago4 min readpage 16 / 37

Moshi has three input layers: the terminal toolbar, custom shortcuts, and hardware keyboard support.

Built for thumbs, not just keyboardsA customizable on-screen toolbar, a D-pad with Interrupt and Backspace slots, and bindable gestures — tuned for answering an agent one-handed.

Terminal toolbar

The toolbar provides terminal actions that are tedious on a phone keyboard:

  • Enter and Backspace.
  • Paste.
  • Keyboard show/hide.
  • Shortcut panel.
  • Command or transcription history.
  • D-pad movement controls.

Open Settings -> Input to choose which toolbar items are visible and reorder them.

Custom shortcuts

Shortcuts can send common terminal sequences or text snippets. Use them for commands, tmux prefixes, editor chords, shell fragments, and agent prompts you reuse often.

Open the shortcut builder from a category under Settings → Shortcuts, from a long-press on a panel button, or when binding a gesture or D-pad slot. Most people only need the simple path: pick Ctrl / Opt / Shift, pick a key (or custom text), save.

Key sequences (simple builder)

With a modifier selected, a multi-character custom key applies the modifier to the first character and sends the rest literally — Ctrl + b1 sends Ctrl+B then 1, a tmux chord. To apply the modifier to every key, separate them with commas: Ctrl + a,b sends Ctrl+A then Ctrl+B. Double the comma (,,) to send a literal comma. Without a modifier, the text is sent verbatim, commas included.

That model covers common chords, but it cannot express different modifiers on different steps — for example tmux prefix then Shift+T, or a Herdr prefix on F12 then h. For those, use Advanced bindings.

Panels for tmux, zellij, and agentsLong-press a shortcut to edit it; combine Ctrl with custom text to send chords. Build the panel that matches your muscle memory.
tip

Keep shortcuts small. A command like git status or a tmux prefix is easier to trust from a phone than a long destructive shell pipeline.

Advanced bindings

For multi-step chords that the simple builder cannot express, open the shortcut builder and tap Advanced binding…. You write a short binding string; Moshi parses it into keystrokes and sends each step with a small delay between them (the same idea as the multiplexer prefix delay).

Grammar

TokenMeaning
C- / Ctrl+Control
M- / Opt+ / Alt+Meta / Option / Alt
S- / Shift+Shift
F1F12Function keys
Named keysTab, Enter, Esc, Space, BSpace, arrows, Home, End, PageUp, PageDown
dash / plusLiteral - and + (because - separates modifiers)
Comma or spaceNext keystroke
text:…Whole binding is literal text (optional auto-Enter)

Short and long modifier names both work: C-b and Ctrl+b are the same. Case on a bare letter is preserved — T is capital T.

Examples

BindingWhat it sends
C-cCtrl+C
C-b, Ttmux/Herdr-style prefix, then capital T
C-b, S-tPrefix, then Shift+t (same bytes as capital T for letters)
F12, hFunction key F12, then h (custom Herdr / multiplexer prefixes)
S-TabShift+Tab (back-tab)
C-dashCtrl+-
text:/clearTypes /clear as text (use when you want a slash command, not a chord)

When to use advanced vs simple

  • Simple — one keystroke with modifiers (Ctrl+C), or a same-modifier sequence (Ctrl + a,b), or plain text / slash commands via Custom Key / Text.
  • Advanced — per-step modifiers (C-b, S-t), function-key prefixes (F12, h), or anything you would write as a chord list in tmux/Emacs notation.
tip

Multiplexer default panels still use the prefix configured under Settings → Shortcuts → tmux or Herdr. Advanced bindings are for your extra chords; they are not rewritten when you change the category prefix.

Tips

  • Mistyped modifiers (Contrl-b) and out-of-range keys (F13) are rejected instead of being sent as literal text.
  • Multi-step advanced shortcuts show their full label (e.g. Ctrl+b, Shift+t) in the panel; re-edit opens Advanced with the original string.
  • Free-tier custom shortcut limits still apply — advanced bindings count as one shortcut each.

D-pad controls

The D-pad gives you arrow keys, plus two configurable corner slots in the top-left and top-right. It is useful for shells, editors, REPLs, and agent UIs where arrow keys and cursor movement are frequent. The corner slots and every other touch gesture in the terminal are configured in Gestures.

Hardware keyboard shortcuts

When a hardware keyboard is connected, Moshi supports common app shortcuts:

CmdK
Show shortcuts.
Cmd1-9
Switch to a numbered session.
CmdO
Open the session switcher.
CmdN
New connection.
CmdW
Close the current session.
CmdV
Paste.

Option as Meta

Enable Option as Meta in keyboard settings if your terminal tools expect Meta/Alt key chords. This is mostly useful with hardware keyboards and terminal editors.

Auto-hide toolbar

The toolbar can hide automatically when a hardware keyboard is connected. Turn this off if you still want touch controls available while using an external keyboard.