Last updated: 2026-05-24
Shortcut Panel
The shortcut panel lets you operate the terminal efficiently from your phone โ no need to remember complex key combinations. Double-tap anywhere on the terminal screen to open it, then tap shortcuts to send them instantly.
How to Open
Double-tap anywhere on the terminal screen to open the shortcut panel:
โโ Shortcuts โโโโโโโโโโโโโโโโโโ
โ [Claude] [Codex] [Gemini] โ โ Tabs grouped by AI tool
โ โ
โ Ctrl+C Interrupt โ
โ Ctrl+C,Ctrl+C Force quit โ โ Comma = send sequentially
โ Ctrl+L Clear screen โ
โ UP/DOWN Navigate โ
โ Enter Send โ
โ โ
โ โโ Commands โโ โ
โ /clear Clear chat โ
โ /compact Compress โ
โ /model Switch model โ
โ /quit Exit โ
โ โ
โ [Dismiss] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- Top Tabs: Grouped by AI tool (Claude / Codex / Gemini / Opencode)
- Shortcuts Section: Common key combinations, tap to send
- Commands Section: Common slash commands, tap to input
- History Section: Recently executed commands
- Tap outside or press back to close
tmux Session Naming Rules
The panel automatically switches to the corresponding AI tool tab based on your tmux session name.
Rule: The session name must contain a coding agent keyword (case-insensitive).
| AI Tool | Keywords | Valid Names | Invalid Names |
|---|---|---|---|
| Claude | claude / anthropic |
backend-claude, claude-project |
my-session |
| Codex | codex / openai |
codex-frontend, frontend-codex |
my-session |
| Gemini | gemini / google |
gemini-backend, backend-gemini |
my-session |
| Opencode | opencode |
opencode-main, main-opencode |
my-session |
Examples
# โ
Valid โ name contains "gemini", "claude", or "codex"
tmux new -A -s backend-gemini
tmux new -A -s claude-frontend
tmux new -A -s codex-refactor
# โ
Also supports "anthropic", "openai", "google"
tmux new -A -s anthropic-backend
tmux new -A -s google-api
# โ Invalid โ no keywords, panel won't auto-match
tmux new -A -s my-session
tmux new -A -s dev
How it works: When the panel opens, it checks if the current tmux session name contains keywords (e.g.,
gemini). If matched, it automatically switches to that tab, saving you manual switching.
shortcuts.json โ Configuration File
The shortcut panel is controlled by a JSON configuration file located on your PC:
~/.hiterm/shortcuts.json
This file is auto-created when you first run hiterm pair. It contains default shortcuts and commands for Claude, Codex, Gemini, and Opencode.
File Structure
{
"tools": [
{
"name": "Claude",
"keywords": ["claude", "anthropic"],
"shortcuts": [
"Shift+Tab",
"Ctrl+C",
"Ctrl+C,Ctrl+C",
"Ctrl+L",
"UP/DOWN",
"Enter",
"Ctrl+Enter"
],
"commands": [
"/init",
"/help",
"/clear",
"/compact",
"/model",
"/quit"
]
}
]
}
Field Reference
| Field | Type | Description |
|---|---|---|
name |
string | Tool name shown on the tab |
keywords |
string[] | Keywords to match tmux session names (case-insensitive) |
shortcuts |
string[] | Key combinations, tap to send to terminal |
commands |
string[] | Slash commands, tap to input to terminal |
Customizing Shortcuts
Edit ~/.hiterm/shortcuts.json on your PC to customize. After saving, simply open the panel again in the app to see changes.
Comma Separator โ Sequential Execution
Use commas to send the same shortcut multiple times consecutively:
"shortcuts": [
"Ctrl+C", // Send 1 Ctrl+C
"Ctrl+C,Ctrl+C", // Send 2 Ctrl+C in a row (force quit)
"Ctrl+C,Ctrl+C,Ctrl+C" // Send 3 Ctrl+C in a row
]
Comma separation works for any shortcut:
"shortcuts": [
"Ctrl+D,Ctrl+D", // Send 2 Ctrl+D (double exit confirmation)
"Esc,Esc" // Send 2 Esc
]
Customization Examples
Adding a New Tool Tab
Add a new object to the tools array:
{
"name": "Cursor",
"keywords": ["cursor"],
"shortcuts": [
"Ctrl+K",
"Ctrl+L",
"Ctrl+Shift+P",
"Esc"
],
"commands": [
"/edit",
"/chat"
]
}
Modifying Existing Shortcuts
Find the tool object and modify the shortcuts or commands array:
{
"name": "Gemini",
"keywords": ["gemini", "google"],
"shortcuts": [
"Ctrl+C",
"Ctrl+L",
"Ctrl+Z",
"Alt+Enter"
],
"commands": [
"/init",
"/clear",
"/model",
"/docs"
]
}
Removing a Tool
Remove the corresponding object from the tools array. The tab will no longer appear in the panel.
How the App Fetches Shortcuts
Auto-Refresh
Each time you double-tap to open the shortcut panel, the app fetches the latest configuration from your PC:
- App connects to your PC via SSH
- Runs
cat ~/.hiterm/shortcuts.jsonremotely - Parses JSON and renders the panel
This means: After editing
shortcuts.jsonon your PC, simply close and reopen the panel (double-tap again) to see changes. No app restart or re-pairing needed.
Offline Fallback
If there's no active connection (network down or SSH unavailable), the panel uses cached configuration from the last successful fetch instead of showing blank.
Default Shortcuts Reference
The default configuration created by hiterm pair includes the following shortcuts and commands.
Claude
Keywords: claude, anthropic
| Shortcut | Description |
|---|---|
Shift+Tab |
Switch focus |
Ctrl+C |
Interrupt |
Ctrl+C,Ctrl+C |
Force quit (double tap) |
Ctrl+L |
Clear screen |
UP/DOWN |
Navigate history |
Enter |
Send message |
Ctrl+Enter |
New line |
Ctrl+X / Ctrl+V |
Cut / Paste |
Ctrl+A/E |
Start / End of line |
Ctrl+Left/Right |
Jump by word |
Ctrl+W/U/K |
Delete word / to start / to end |
Esc |
Exit edit mode |
Ctrl+T |
Swap characters |
Ctrl+G |
Cancel |
Ctrl+Z / Ctrl+Y |
Suspend / Resume |
Commands: /init /help /chat save/resume /clear /compact /skill /login /memory /model /quit /stats /theme /tools /vim /docs !
Codex
Keywords: codex, openai
| Shortcut | Description |
|---|---|
Ctrl+C |
Interrupt |
Ctrl+C,Ctrl+C |
Force quit |
Ctrl+L |
Clear screen |
Enter / Ctrl+Enter |
Send / New line |
UP/DOWN |
Navigate history |
Tab |
Complete |
@ |
File reference |
Esc |
Exit |
Ctrl+Z / Ctrl+Y |
Undo / Redo |
Ctrl+A/E |
Start / End of line |
Ctrl+Left/Right |
Jump by word |
Ctrl+W/U/K |
Delete |
Commands: /init /help /login /clear /compress /copy /model /memory /quit /stats /theme /tools /vim /docs ! /config
Gemini
Keywords: gemini, google
| Shortcut | Description |
|---|---|
Shift+Tab |
Switch focus |
Ctrl+Y |
Redo |
Ctrl+L |
Clear screen |
Ctrl+C |
Interrupt |
Ctrl+C,Ctrl+C |
Force quit |
Enter / Ctrl+Enter |
Send / New line |
Ctrl+X / Ctrl+V |
Cut / Paste |
Alt+M |
Menu |
Ctrl+T / Ctrl+G |
Swap chars / Cancel |
Esc |
Exit |
UP/DOWN |
Navigate history |
Ctrl+A/E |
Start / End of line |
Ctrl+Left/Right |
Jump by word |
Ctrl+W/U/K |
Delete |
Commands: /init /help /chat save/resume /clear /compress /copy /docs /editor /mcp /memory /model /quit /stats /theme /tools /vim !
Opencode
Keywords: opencode
| Shortcut | Description |
|---|---|
Shift+Tab |
Switch focus |
Ctrl+C |
Interrupt |
Ctrl+C,Ctrl+C |
Force quit |
Ctrl+L |
Clear screen |
UP/DOWN |
Navigate history |
Enter / Ctrl+Enter |
Send / New line |
Ctrl+X / Ctrl+V |
Cut / Paste |
Ctrl+Z / Ctrl+Y |
Undo / Redo |
Ctrl+T |
Swap characters |
Ctrl+W |
Delete word |
Esc |
Exit |
Ctrl+A/E |
Start / End of line |
Ctrl+Left/Right |
Jump by word |
Commands: /init /help /model /login /clear /compress /copy /quit /status /memory /tools /vim /docs ! /config /generate /review /plan
Troubleshooting
Panel shows blank
- Check if
~/.hiterm/shortcuts.jsonexists on PC:cat ~/.hiterm/shortcuts.json - If missing, run
hiterm pairto regenerate - Verify JSON is valid:
python -m json.tool ~/.hiterm/shortcuts.json
tmux session doesn't match correct tab
- Confirm the tmux session name contains the right keyword (e.g.,
gemini,claude,codex) - Matching is case-insensitive โ
Backend-Geminiworks the same asbackend-gemini - If you modified the
keywordsfield, reopen the panel in the app
Changes to shortcuts.json don't appear
- Close the panel and double-tap again โ it fetches fresh each time
- If still not updating, check if phone and PC Tailscale connection is working