# Terminal Keys and the Agent Console

> Everything a physical keyboard lets you do in an agent's terminal, from a phone screen, on a console laid out like the desktop pane so nothing has to be relearnt.

- Area: Mobile app
- Plans: All plans
- Last checked against the product: 2026-09-29
- Web page: https://agentsroom.dev/docs/mobile-terminal-keys

## What it does

Everything a physical keyboard lets you do in an agent's terminal, from a phone screen, on a console laid out like the desktop pane so nothing has to be relearnt.

One **key rail** sits above the input box and changes with what you are doing. Keyboard closed, it is the remote: esc, the four arrows, Enter, Shift+Tab, Ctrl+C and Backspace, the keys an agent CLI asks for in its dialogs. Keyboard open, it is what a physical keyboard would add: **Ctrl** and **Alt** modifiers, Tab, Backspace, the history arrows, Enter and `/`. At its right end, **More keys** replaces the soft keyboard with an eight-row grid of terminal keys (function keys, Home and End, page keys, control chords, brackets, pipe, paste); at its left end, the **Direct** toggle sends every keystroke straight to the terminal.

The input box takes the whole width, like the desktop composer, with its tools under it: attach (**Attach**), **Prompt library**, **Skill library**, the dictation microphone and the Send pill. A long press on Send opens **Send later**.

The console's floating buttons sit where the desktop pane puts them: top right, **Scroll to top** / **Scroll to bottom** and **Fullscreen** (the header folds away, **Exit fullscreen** brings it back); bottom right above the input box, **Show the conversation** / **Show the terminal**, **Ask on the side** and **Listen to the last answer**. Both clusters fold away while the keyboard is up and come back when it closes.

The header mirrors the desktop session header: the avatar with its status dot, the task title with the project logo beside it, the role pill that morphs the agent, then the spec pill (CLI, model, context window) with the token count beside it, on three lines, then **Review changes** (filled with a count while the agent has unreviewed files) and **Agent actions**. A tap on the avatar or the title opens **Agent's card**, a read-only version of the desktop agent card with the role, the session name, the agent prompt and its **Agent stats**.

## Where to find it

- Mobile app > Projects > a project > tap an agent to open its console.
- Key rail above the input box: **Direct** (left end), the contextual keys, **More keys** (right end, **Back to the keyboard** while the grid is up).
- Top right of the output: **Scroll to top** / **Scroll to bottom**, **Fullscreen** / **Exit fullscreen**. Bottom right: **Show the conversation**, **Ask on the side**, **Listen to the last answer**.
- Under the input box: **Attach**, **Prompt library**, **Skill library**, the microphone, Send (long press: **Send later**).
- Header: the role pill (**Morph the agent**), the avatar and title (**Agent's card**), **Review changes**, **Agent actions** (morph, **Live preview**, close session, delete), the **Back** chevron.

## How to use it

1. Open an agent console. With the keyboard closed, the rail shows the remote keys: **Escape**, **Left arrow** / **Up arrow** / **Down arrow** / **Right arrow**, **Enter**, **Shift+Tab, cycle the permission mode**, **Ctrl+C** and **Backspace**. A tap goes straight to the terminal.
2. Tap the input box: the keyboard opens and the rail switches to the typing keys (**Ctrl**, **Alt**, **Tab**, **Backspace**, arrows, **Enter**, **Slash command**).
3. Tap **More keys** to swap the soft keyboard for the extended grid. Byte keys (esc, F1 to F12, home, pgUp, ^C, ^Z...) are sent as is; character keys (`|`, `~`, `{`, `@`...) are typed into the input box, or turned into a chord when a modifier is armed. Tap the field, or the grid button again, to get the keyboard back; a swipe down on the panel closes it too.
4. Chords: tap **Ctrl** then a key (**Ctrl armed, type a key (S sends Ctrl+S)…**), or **Alt** then a key (**Alt armed, type a key (B sends Alt+B)…**). One modifier is armed at a time and is consumed by the next key, from the keyboard or from the grid.
5. Leave the console with the **Back** chevron, or a swipe from the left edge of the screen.

The rail, the extended grid and the modifiers are also available on a dev command terminal and on an SSH terminal opened from the phone; the `/` key and the library buttons are specific to agent consoles. On those shell terminals, the keyboard's Return key (bottom right) runs the line, like Send, and Send works on an empty input box too: that plain Enter is how you run a line **Tab** has just completed.

## Settings

None on the desktop or on the phone.

## Agent tools (MCP)

None. Keys arrive in the desktop terminal exactly as if typed there.

## Providers

All providers, no difference. The pad sends terminal keys, not CLI commands: Escape, Shift+Tab, Enter, the arrows and Ctrl+C are read the same way by Claude Code, Codex, Grok, Kimi and every other CLI.

## Mobile

This is a mobile-only feature: it exists because the phone has no physical keyboard, so the desktop has nothing to port.

## Limits

- Text keys from the grid are typed into the input box, not sent on their own, unless **Direct** mode is on (Direct sends every keystroke immediately).
- The grid is fixed: no custom keys, no stored passwords (secrets have their own door, see [Secret Manager](https://agentsroom.dev/docs/secret-manager.md)).
- **Agent's card** is read-only on the phone: renaming the agent or editing its prompt is done on the desktop. The prompt shown is the agent's custom prompt when it has one, otherwise the description of its role.
- Stats (**Active**, **Idle**, **Sessions**, **Prompts**, **Tokens**, **Cost**) come from the account's project statistics, so they need the desktop to have reported them; a fresh agent shows **No stats for this agent yet.**

## Common questions

- **How do I answer a Claude permission prompt from the phone?** The **Permission Required** card still has **Allow** / **Deny**; for anything the card does not cover, use the remote: arrows and **Enter** pick an option, **Escape** dismisses.
- **How do I cycle Claude's permission mode?** Close the keyboard and tap the **Shift+Tab** key on the rail.
- **Where did the game-pad remote go?** Into the rail: with the keyboard closed, the rail IS the remote, and nothing floats over the CLI's status line any more.
- **How do I get more rows on screen?** Tap **Fullscreen** (top right): the header folds away. **Exit fullscreen** brings it back.
- **Letters went missing when I typed fast in Direct mode.** Fixed on 2026-09-28: the phone now groups a burst of keystrokes into one ordered message to the desktop instead of one per character. Update the phone app.
- **How do I press Enter in an SSH or dev command terminal?** With the keyboard's Return key, bottom right: on a shell it runs the line instead of starting a new one. Typed `--` that the phone turned into a long dash is changed back before it reaches the shell.
- **Can I send Ctrl+Z or a function key?** Yes, from **More keys**: `^Z` and F1 to F12 are on the grid.

## Related

- [Remote Agent Control](https://agentsroom.dev/docs/remote-agent-control.md): the rest of the phone console (composer, permission card, dock).
- [Agent Morphing](https://agentsroom.dev/docs/agent-morphing.md): the role pill of the console header.
- [Project Statistics](https://agentsroom.dev/docs/project-statistics.md): where the numbers of the agent's card come from.
- [Mobile-Desktop Sync](https://agentsroom.dev/docs/mobile-desktop-sync.md): the encrypted channel the keys travel on.
