A terminal you can actually work in
A client you avoid opening is not a secure client. The terminal is the screen you spend your time in, so it gets the same attention as the cryptography.
Rendering
- Full
xterm-256colorsupport, so colours and TUI applications render as they should. - Adjustable font size, and a wrap toggle with horizontal scrolling for output that expects 80 columns.
- Wrapped lines are marked, so a split IP address is not misread as two values.
- Long-press to select and copy any part of the output.
Full-screen programs
vim, less, man and htop run as they would in a desktop terminal. The emulator implements the VT100/xterm screen model these programs rely on — the alternate screen, scroll regions, line insert and delete, saved cursor, origin, insert and autowrap modes, and tab stops — so a program scrolls only the part of the screen it means to, and quitting it puts your shell back exactly as you left it, prompt and scrollback included. Opening or closing the keyboard while vim is up resizes it cleanly instead of damaging the screen underneath.
What the emulator implements, in the terms the standards use:
- Sequence parsing to ECMA-48. Private markers, intermediate bytes and colon sub-parameters are read as part of the sequence, and anything unrecognised is consumed rather than printed. DCS, APC, PM and SOS strings and OSC are swallowed whole, so a query a program sends never ends up on screen as stray text.
- Editing and movement. Scroll regions (DECSTBM), insert and delete line and character (IL, DL, ICH, DCH), erase (ED, EL, ECH), scroll up and down (SU, SD), repeat (REP), index and reverse index, tab stops set, cleared and stepped in both directions, cursor save and restore (DECSC, DECRC), and both soft (DECSTR) and full (RIS) reset.
- Colour and text. The 16 ANSI colours, the 256-colour palette and 24-bit truecolour, in both the semicolon and colon spellings programs emit. Bold, dim, italic, underline, inverse, strikethrough and concealed text are drawn; blink is drawn steadily.
- Line drawing. DEC Special Graphics through G0 and G1 with shift in and out, which is how
mc,htop,dialogandtmuxdraw their borders. UTF-8 is decoded across packet boundaries, so a character split between two reads arrives whole. - Window size.
TERMisxterm-256colorby default and can be changed in Settings. A new size from rotating the phone or opening the keyboard reaches the server as a window-change request, debounced so a keyboard animation sends one resize instead of dozens.
Not implemented yet: mouse reporting, bracketed paste and window titles. Programs that use them still run, without those features.
This is checked against a reference: each program's real output is recorded inside tmux, replayed into the app's emulator, and the screen has to match the one tmux drew.
The recording shows it on a Proxmox host: stty size, the key row switched on from the terminal's menu, an edit to /etc/motd in vi closed with the key row's Esc, dmesg | grep snd, Ctrl-D from the key row to log out, then the same session read back from History.
Session recording (Pro)
Record a session to an asciinema file from the terminal's menu. The recording (.cast, asciicast v2) keeps colours, timing and window-size changes, so it can be played back in any tool that reads asciicast v2 .cast files. A REC indicator with a timer shows while it runs; tap it to add a marker or to stop. A marker is a labelled point saved in the file, which asciicast players that support markers can jump to. Share or save the file from History.
mc and atop on a Proxmox host, played here by asciinema-player. The two IP addresses in it were replaced with documentation addresses.History plays recordings back in the app with their original colours and timing: play and pause, a timeline you can drag to any point, and a full-screen view. Pauses longer than about two seconds are shortened, so an idle stretch does not stall playback. There are no speed controls, and the app's player does not jump between markers. A session can be recorded more than once - each take is listed on its History card with its own Play and Share buttons.
Only what the server prints is recorded — never your keystrokes, so a password typed at a prompt that does not echo stays out. Output is not masked: a token or key a command prints ends up in the file, and the app says so before you start. Recordings stay on your phone until you share or delete them, and a lapsed subscription keeps every recording you already made.
Scrolling that behaves
Scrollback stays where you put it while output continues to arrive above — the view anchors to the content rather than the buffer, so reading history during a noisy build does not drag you around. Fling and drag agree on direction, and sub-line drags accumulate instead of being discarded, so slow scrolling works rather than feeling stuck.
Several sessions at once
Open multiple hosts and switch between them. Sessions keep running in the background with an SSH-level keepalive, so switching apps does not drop them. A session you have not typed into for a while is disconnected by the app after a one-minute warning: after one hour by default, or 15 minutes, 4 hours or never, set for all hosts in Settings > Console and overridden per host. Output alone does not count as activity, so a build you are only watching still ends at the limit unless you tap Keep connected. The tab and its scrollback stay, with Reconnect. Scrollback survives a reconnect.
Files and port forwarding
Every host has an SFTP file browser, with live progress on recursive transfers and an activity log. Port forwards are a library: save a local or remote forward once in Settings > Port forwarding and attach it to as many hosts as you like, each with its own auto-start; start and stop them from the terminal's menu without reconnecting. There is no dynamic (SOCKS) forwarding.
Full screen and tablets
Full screen drops the header, session tabs, key row and system bars for several more rows of terminal. On 7-inch and 10-inch tablets as well as foldables, the app adapts to the width: a navigation rail instead of the bottom bar, two-column Hosts and Snippets lists, and History as list-detail with output side by side.
The key row
An optional row above the keyboard provides Ctrl, Alt, Esc, Tab, arrows, Ctrl-C, Ctrl-R, /, - and paste, with Ctrl and Alt sticky. It is off by default — it takes vertical space, and on smaller screens that space matters more than the shortcuts.
History
Sessions are recorded and searchable. Any session, or the whole history, exports to a file in a location you choose. There is a configurable line limit — set it to 0 for no limit, or to a number to keep only the most recent lines.