The terminal
A shell on the server you are browsing, in the same window. It uses the SSH connection that is already open, so it needs no second login and no second password.
It starts in the folder you are looking at. Opened from a server's row, with none of its folders on screen, it starts in the server's Initial path. A folder that cannot be entered ends the session, with the reason on screen.
If the server has a Remote command, that runs instead of your login shell, in the same folder.
A size of your own
By default the terminal fits the screen. On a phone held upright that is about 33 columns, which is too narrow for tmux, htop or anything with a table (see Size in Servers).
Fixed, on the server's Terminal tab, keeps a set number of columns and rows
(80×24, 100×30 and 132×43 are a tap away). Programs are never told another
size, and the header shows it beside the host (a floating header leaves
both out, below). So if a program does not
reflow when you resize the window, the setting is working. The screen is a
window onto that fixed-size terminal:
- Two fingers pan, and a pinch changes the type size. That changes how much of the terminal is on screen, never the size programs see. On the on-screen keyboard those two fingers stay keys — both thumbs typing, or a chord on Laptop keys or Coder keys — until they spread into a pinch or slide into a pan. On those two, a finger held on Ctrl, Alt, Shift or Fn keeps the pair a chord however it moves. The extra keys' Ctrl and Alt apply to the next key rather than being held, so there a pinch that starts on one simply leaves it off.
- You can pan and zoom anywhere while your fingers are down. When you let go, a pinch past the smallest or largest size glides back to it, and an edge let go close to the edge of the screen (or of the header, or the status bar) settles onto it; with both edges close, the type size changes a little so the terminal meets both. And if there is empty screen on one side while the terminal runs off the other, or it is pushed off altogether, it glides back until an edge meets the screen's edge or it is wholly on screen. Wholly on screen, or covering it, it stays where you left it.
- One finger goes to the shell: a drag scrolls the history, a tap brings the keyboard back, and where a program has asked for a mouse, a tap is a click (see below).
- Start by decides how the terminal first opens: Fit (the whole grid in view, small type), Fill (the screen covered, one side cropped), or a Type size in pixels (pan both ways). Position says where it rests: Top, Middle or Bottom, and Left, Center or Right. With Fixed columns the rows fill the screen, so up and down only places what is left below one row. Neither limits where you can pan.
- Any type size, on the keyboard menu, lets Fit and Fill meet the screen's edges exactly. Without it the type is drawn at a sharp size, which can stop short of an edge by up to a character; with it the type is scaled a little to close the gap, and may look slightly soft. It is off by default, and set per device.
- Follow the cursor moves the view after you type, for about a second and a half, so you see the answer. A cursor a program moves on its own — a clock in a tmux bar — leaves the view where you put it. It waits two seconds after you pan, and typing ends that wait. When it is off, the view stays where you put it.
- Reset the view by holding two fingers still on the terminal. After a moment a note at the top says Keep holding to reset view; a moment later it says Release to reset view, and when you lift your fingers the view resets, placed by the server's Position. After you have panned or zoomed, that means back to how the terminal opens (its Start by). With nothing moved since the last reset, or since it opened, it steps on instead: between Fit (the whole grid in view) and Fill (the screen covered, one side cropped), and from a Type size to Fit, then Fill, then back to the type size. None of this changes the size programs see: that is the server's columns × rows, whatever the type size on screen. With Fixed columns there is no Fill: from Fit every reset fits the columns again, and from a Type size it turns between that size and Fit. Programs are told how many rows that makes. Moving your fingers before you lift them makes it an ordinary pinch or pan. It works over Laptop keys and Coder keys too, with both fingers on the keys or one on the keys and one on the terminal, and types nothing — unless one of them is on Ctrl, Alt, Shift or Fn, which makes it a key combination. On the extra keys two fingers are keys, as above.
- The terminal fills the whole screen, including around the camera cutout. A row hidden under the cutout can be dragged back into view, and the terminal never puts the cursor there.
On a desktop Ctrl+drag (Cmd+drag on a Mac) pans the terminal (across only with Fixed columns) and Ctrl+wheel zooms it; the type size is settled when you let go of Ctrl. A link opens with a click, or with Ctrl+click (Cmd+click on a Mac) where a program has taken the mouse; a Ctrl+click that does not move is still a click. A plain wheel scrolls the history. Ctrl+double-click or Ctrl+0 (Cmd on a Mac) resets the view the way two fingers held do on a phone: back to how it opens after a pan or zoom, otherwise on to the next size of its cycle. A Ctrl+double-click on a link opens the link as well.
The keyboard
The keyboard stays up while you use the buttons, and what you type goes to the shell. If it does go away, tap the terminal to bring it back.
Send taps to programs that ask for a mouse, on the Terminal tab, decides what one finger does where a program is listening for clicks: tmux, vim and htop can take a tap as a click and a drag as a scroll wheel. When it is off, one finger always selects and scrolls. The extra keys send keys either way, never clicks. On the extra keys, Laptop keys and Coder keys, a tap in the gap between keys, or on the margin beside them, does nothing: it types no key and does not reach the shell.
The extra keys
Fourteen keys a phone keyboard lacks: Esc, Tab, Ctrl, Alt, the arrows,
Home, End, PgUp, PgDn, Ins and Del. Where there is room for two
rows, they are laid out like a keyboard:
Esc Tab Home ↑ End PgUp Ins
Ctrl Alt ← ↓ → PgDn Del
The arrows are an inverted T, and Ctrl and Alt are bottom left, where a keyboard has them. Where the width allows a single row, the modifiers are on the left and the arrows on the right:
Ctrl Alt Esc Tab Ins Del PgUp PgDn Home ← ↓ ↑ → End
Ctrl and Alt apply to the next key when tapped: press Ctrl, then C.
Held, they work as on a real keyboard: hold Ctrl and tap ← to move a word. An
arrow or Del held down repeats. In the header, where the keys sit among the
page's own buttons, each is a single press. Arrows work in the shell and in
vim alike. Del is not
Backspace: Backspace deletes the character before the cursor, Del the one under
it. Ins is there for vi.
The keys show signs rather than names, the same on the extra keys and on All keys:
| Sign | Key |
|---|---|
| a circle with an arrow leaving it | Esc |
| an arrow into a bar (pointing left while Shift is on) | Tab (Shift+Tab) |
| a key shape with a cross, pointing left or right | Backspace, Del |
| a text cursor with a plus | Ins |
| a bar and a triangle | Home, End |
| two stacked triangles | PgUp, PgDn |
| a caret; the Option sign | Ctrl; Alt |
| three bars | the keyboard key, on Laptop keys and Coder keys |
You choose which keyboard you use and where the extra keys sit. The Keys button in the header puts the keyboard away and brings it back; a long press on it, or the small arrow beside it, opens the On-screen keyboard menu:
- None: no on-screen keyboard.
- System keyboard, with the extra keys in one of three places:
- No extra keys: the keys go in the header, on a window wide enough for the whole row. On a desktop, or once a real keyboard has been used, the keys start off; the Keys button brings them back.
- Extra keys, floating: two rows over the shell, see-through so the text under them stays readable. Drag the tab to move them anywhere, or tap the tab to move them round the edges and corners. The default in landscape on a phone, at the top right, since the prompt is at the bottom.
- Extra keys, above it: one or two rows above the system keyboard, or at the bottom edge when it is down. They cover nothing; the shell gets fewer rows instead. The default in portrait on a phone, as in Termux.
- Our own keyboards, which hide the system keyboard: The 14 extra keys alone, floating, or Laptop keys or Coder keys (below).
Your choice is remembered on this device, separately for portrait and landscape on a phone or tablet; a desktop window has one shape however you drag it. The same menu has Header floats: when it is on, the header floats see-through over the top row, so a short screen spends none of its height on it. Floating, it shows icons rather than words and the server's name without the host or size, in amber so it is not taken for keys. Either keyboard of ours may be dragged up over it; a key over one of its buttons is the key. It is remembered per orientation like the rest of this menu, and is on by default in landscape on a phone.
Leaving the terminal from the keyboard
Tab and Esc go to the shell, so they cannot also move you out of it. Press
Ctrl+Shift+Tab to go back to the header, or Ctrl+Tab to go on to the keys at
the bottom. Nothing you had typed is lost. Tab from the header, Shift+Tab
from the first key, or a click puts you back where you were.
Copying and pasting
Ctrl+C and Ctrl+V belong to the shell (one stops a program, the other types
the next key literally), so copy and paste use the keys other terminals use:
Ctrl+InsertorCtrl+Shift+Ccopies the selection.Shift+InsertorCtrl+Shift+Vpastes, and so does a middle click.- On a Mac,
Cmd+CandCmd+V.
Copy what I select, on the keyboard menu, copies a selection as soon as you let go, as PuTTY and iTerm2 do. It is on by default. Turn it off if you want to keep something on the clipboard while you read.
In a program that uses the mouse, such as tmux, zellij or an editor, the selection belongs to that program, so what it copies reaches your clipboard. Hold Shift while you drag to select in the terminal instead, as in any terminal.
With a finger, a quick drag scrolls, so selecting starts with a hold:
- Hold, then drag selects, the way a mouse drag does. In a program that uses the mouse, the drag goes to that program, and its copy reaches your clipboard.
- Tap twice and keep the second tap down, then drag always selects in the terminal, even in such a program: the finger's Shift+drag.
- Tap anywhere on the shell to clear a selection.
On a phone there is no Ctrl or Insert key. Hold a finger on the shell without
moving and a small menu offers Paste, and Copy when something is selected.
Held on a link the program printed, it also offers Open link, which opens
it in your browser, and Copy link. The Ins key
among the extra keys pastes when you hold it, and copies when you press Ctrl
first. On Laptop keys and Coder keys, Ctrl+Ins and Shift+Ins work as they do anywhere.
It is the device's normal clipboard, shared with every other app.
Finding in what the shell printed
The magnifier in the header, or Ctrl+Shift+F (Cmd+F on a Mac), opens
Find under the header. Type, and every match is marked, the newest first.
Case counts only when you type a capital. Text you had selected is the search
to begin with.
Whichever keyboard is up types into the box: the system keyboard, or Laptop keys and Coder keys. Tap the shell to type there with Find still open; tap the box to go back to it.
Nothing changes size while Find is open, so a program never redraws under it. In a program with a screen of its own, such as tmux, vim or less, only that screen is searched, because the program keeps its own history. The box shows ⓘ there; tap it for the program's own search keys. The box moves out of the match's way.
Laptop keys and Coder keys
A phone in landscape with the system keyboard up has three or four rows of shell left. Laptop keys, under Our own keyboards on the menu, hides the system keyboard and shows the app's own: a number row, the letters, Esc, Tab, Del, the arrows and the modifiers, laid out like a laptop's. It is offered where the screen is wide enough: a phone turned sideways, or a tablet. On a phone held upright there is no room for it, so the menu says Too narrow, and on a screen with the width but not the height, Too short. In portrait the extra keys over the system keyboard fit better.
It is drawn over the shell and see-through, so the text underneath stays readable, and a coloured status line keeps its colour through the keys.
Coder keys, the row below Laptop keys, is a second keyboard of the same kind for
typing code: a row on top holds ~ ! @ # $ % ^ & * ( ) _ +, and the sides add
PgUp, PgDn, { } < > ? : " |, Ins, Home and End, each on a key of its own.
There is no Fn key. Shift on a digit is an F-key (Shift+1 is F1, Shift+=
is F12), and Shift on a symbol above it is Shift and that F-key. Programs see
the keys a real keyboard would send. It needs a little more width than Laptop
keys, so a screen that fits one may grey the other. The settings below are
shared between the two.
Five settings on the menu go with both:
- Keys chooses the shape of the keys: Short, Square or Tall. Short gives the shell the most rows, for a phone on its side. Where the shape you chose does not fit, the next shorter one is drawn instead.
- Ink — −−, −, Tuned, + or ++ — sets how solid it looks, from half to twice as strong as tuned. The extra keys have the same setting.
- Size: five steps, XS to XL. M is the standard size, the same on every screen with room for it, since a thumb is the same size on a phone and a tablet; L and XL are for tablets. A size this screen cannot quite give is drawn as large as it can, and one it cannot give at all is greyed out.
- Split puts half the keyboard at each edge of the screen, one under each thumb, with the shell between them. Auto splits it on a wide screen.
- Colors tints the keys by kind so you can find one at a glance: Base is one color; Plain gives digits, letters, symbols, modifiers, the arrow and page keys, and the editing keys a color each; Fingers adds two shades by finger column on the letters and digits; Math shades the primes and i–m and leaves 0, 1, a b c and x y z plain. The colors follow the base hue you tune.
The keyboard opens a row or two above the bottom of the screen, so the line you are typing is never under it. Drag it by either keyboard key — the keys with three bars — to move it up or down; a tap on one still does what it always did. How far up it opens is set per server, as Keyboard opens this many rows up on the Terminal tab, so a status line at the bottom stays visible on every device.
On this keyboard Ctrl, Alt, Shift and Fn work as real modifier keys: hold one and tap another key, or tap it alone to apply it to the next key. Backspace, Delete, the arrows and Space repeat while held, when no other key is down beside them but a modifier: Shift+→ held keeps selecting. Shift works on Tab and the arrows too — Shift+Tab steps back through completions — and Alt+Backspace deletes a word.
Fn reaches the keys a laptop hides behind it:
| Fn and | sends |
|---|---|
1 … 0, -, = |
F1 … F12 |
| ↑ / ↓ | PgUp / PgDn |
| ← / → | Home / End |
| Del | Ins |
| ⌫ | Del |
It combines with the others, so Ctrl+Fn+↓ is Ctrl+PgDn and Shift+Fn+Del is Shift+Ins, the paste.
A program that asks for the kitty keyboard protocol gets it from these keys, so Shift+Enter starts a new line in Claude Code rather than sending, and Esc answers at once in helix and zellij.
Shift locks with two quick taps, or when held on its own: it then stays on for every key, symbols included, and the Shift keys show a thicker ring. One more tap lets it go.
The keys are labelled with what they will send: capitals and the shifted symbols while Shift is on, and F1–F12 and the signs for PgUp/PgDn, Home/End and Ins while Fn is. A tap on the keyboard key (three bars) brings back the system keyboard for anything this one cannot type; the Keys button in the header brings this one back.
System keyboard floats, also on the menu, asks the system keyboard to sit over the terminal instead of pushing it up, so a floating or one-handed keyboard works over a fixed-size shell. It is off by default, and shows N/A where the device cannot do it, which includes Android.
Passwords and passphrases
When a password or key passphrase is needed, the box asking for it appears over whatever is on screen, in the same window. On a phone that is the only place it can go, and on a desktop it keeps the box from opening behind another window.
Keeping a terminal
Keep, in the header, keeps the terminal running when you leave it. Go to the files or to Servers and come back, and it is there as you left it, with what it printed meanwhile. Tap Keep again to turn it off; the terminal then closes when you leave it, as any terminal does without Keep.
- A server's terminal icon, in the sidebar or on the start page, brings back the terminal you last saw on it. Terminal in the file tree's header always opens a new one, in the folder on screen.
- The arrow beside Keep opens a list of the terminals you left open, with the one you are in ticked. It shows when Keep is on here or another terminal is left open, and always on a desktop. Choose a terminal to switch to it; × closes one. New terminal on ⟨server⟩ opens another on the same server, in the folder its files are open at, with Keep on or off as that server's Terminal tab says. Switching away from a terminal with Keep off closes it, and the list warns you first.
- On a narrow phone the arrows beside Keep and beside Keys are hidden; hold Keep or Keys instead. A small mark under the button shows when holding it opens a menu.
- On the Servers page, a server's row lists the terminals you left open on it, under Open terminals, as numbered chips — green running, amber ended — each a way back to it. The row's New terminal button opens another.
- Keep new terminals running when you leave them, on a server's Terminal tab, turns on Keep for every new terminal on that server. Keep, in a terminal's header, still changes it for that one terminal.
- When the shell in a terminal you left open has ended, the list and the Servers page say ended, and the terminal shows Reconnect, which starts a new shell under what the old one printed. The bar, and the last line of the terminal, say why: The shell exited (with its status when it is not 0), The connection was lost, or The session ended for anything else — Disconnect, or a shell killed from elsewhere. On a narrow screen, tap the bar to read it in full. Close terminals that have ended, in the list, closes them all.
- Disconnect ends the shells in the server's terminals; they stay in the list, ready to reconnect. Deleting the server closes them.
- On a desktop, Show in a separate window, in the list, moves the terminal into a window of its own, and the main window goes back to the files or the start page. In the terminal's window, Main window brings the main window forward. Closing the terminal's window is leaving the terminal: with Keep on it goes back into the main window's list; otherwise it closes. While it has a window of its own, the list says in its own window, and choosing it brings that window forward — as does its chip on the Servers page, and a server's terminal icon when that is the terminal it would go back to. A password asked for in that window, for a Reconnect say, is asked there.
- The number beside a server's green dot is how many terminals you left open on it. The tooltip says, for example, Connected · 2 terminals left open.
- On a desktop, quitting asks first when terminals are left open, or when a terminal has a window of its own: Quit Telechore? The 2 terminals you left open will close., or …The terminal in its own window will close.
- On a phone, a terminal can end while the app is in the background. When you
come back, one that lost its connection reconnects on its own, once, under
what it printed; one you ended with
exitor Disconnect does not. - The free edition keeps as many terminals running as it saves servers. When you reach the limit, Keep offers Get Pro right there, where your store sells it (see Servers).
What it does not do yet
- Leaving a terminal with Keep off ends its shell — turn on Keep (above) if you want to come back to it. The SSH connection stays open, so coming back starts a new shell without logging in again.
- A connection that drops while you watch is not reconnected for you. Only a terminal with Keep on that lost its connection while you were away reconnects on its own, once. Otherwise, when the session ends, Reconnect takes the place of the keys in the header and opens a new shell under what the old one printed. A dropped session also shows greyed out in the sidebar; tapping it reconnects too. Disconnect, on the server's settings, closes the connection and ends the shell in any terminal using it.
- Pasting a very large amount of text is slow.
- On Android the terminal needs Android System WebView 111 or newer, the part of the phone that draws it. On an older one it says so, and asks you to update it from Google Play, rather than showing a blank screen.
- The type size a pinch sets lasts only for the session; the next time, the terminal opens with the Terminal tab's setting.