Documentation
Hosts and the local terminal
Shortcuts on this page are the macOS defaults. Android uses the same sections from the side menu and has no keyboard-shortcut editor. The window is a tab strip and the active tab. The Hosts tab is the sidebar: Terminal, Serial, and SFTP above a divider, then Hosts, Keys, and Known Hosts. On a phone the same sections sit in a side menu.
Each session is its own tab. A spinner means it is connecting. A dot means it is waiting for you (a password, a host key, or a touch). means port forwards are running in that tab. marks an SFTP tab. A dim tab has ended or failed to connect. While a hidden tab is waiting, the window title ends with waiting for input.
Rename a tab from its context menu (Rename…) or by double-clicking it. The name lasts until the tab closes. An empty name restores the title the terminal sets. When the tabs do not fit, the row scrolls with the wheel or a trackpad swipe, and the tab you switch to scrolls into view.
A host
+ Host, ⌘N, or Shell → New Host… opens New Host.
| Field | Meaning |
|---|---|
| Label | Name in the list. Empty uses the address. |
| Address | Host name or IP. Pasting user@host:port fills the other fields. |
| Group | A group, or All Hosts. |
| Username / Port | Login and SSH port. An empty port is 22. |
| Keepalive | Seconds between keepalive packets. Default 30. Zero turns it off. |
| Password | Stored in the vault. Saved, Change, and Clear show its state. |
| Keys | Keys TermiPort tries, in order. |
| Jump hosts | The chain used to reach this host. |
| Reconnect | Connect again after a drop. The pause is 1–3600 seconds. |
| Forward agent | Offer keys through the built-in agent. See Keys and the agent. |
| Port forwarding | Rules for this host. See Port forwarding. |
| Notes | Free text. Import puts comments and unused options here. |
From Username through Forwarded keys, an empty field inherits from the nearest group that sets it. The editor shows default or from group NAME. Override sets a value on the host. Reset to inherited clears it. Key lists and jump-host lists are inherited as a whole, not merged. An empty list means none.
Connect saves and opens a tab. Save saves and closes. Cancel drops unsaved edits after a confirmation if you changed something.
Groups
+ Group asks for a Name and a Parent (All Hosts or another group). Groups nest. Open one with a double-click or Enter. Go up with the breadcrumbs or ⌘↑.
A group can set username, port, password, keys, jump hosts, keepalive, reconnect, and agent forwarding for every host under it. Deleting a group does not delete its hosts: they move to the parent, and values that only the deleted group provided stop applying. TermiPort warns about that.
The search field matches name, address, username, notes, the group path, and forward labels. The empty hint is Search or user@host:port. A typed letter goes into the search. Enter connects when one row matches. With several matches, pick one with the down arrow, then Enter. ⌘I edits, ⌘D duplicates, ⌘⌫ deletes. These list keys follow the physical key, so they work on a Russian layout.
A green dot on a row means a tab to that host is connected. means the host has forward rules. forwards agent means agent forwarding is on. route error means the jump chain is broken; hover it for the reason. The row shows user@address:port. Port 22 is omitted. via … appears when jump hosts are set.
Jump hosts
A jump host is an intermediate SSH server, as with ssh -J. TermiPort chains them itself with direct-tcpip channels. No external ssh binary is required. The chain can be up to 8 hops, including the target.
Quick connect
Type user@host:port in the Hosts search field and press Enter when that is the only row. Quick connect does not offer keys from the vault, from ssh-agent, or from ~/.ssh. It signs in with keyboard-interactive or a password and saves only the host key. To use a key, choose Save as Host… on the tab and pick the key in the editor.
Known hosts
The first connection shows the server key fingerprint. Add and Connect stores it. A later change is reported instead of being accepted silently. The Known Hosts section lists what the vault holds. Import from known_hosts can bring existing entries in, including revoked ones, which stay marked.
Reconnect
With Reconnect on for the host or its group, a tab whose session dropped, or was closed by the server, connects again after the pause. It keeps trying until it connects, you press Cancel, or the error is one a retry cannot fix (sign-in, or the host key). Disconnect on an SFTP tab does not count. If Close the tab when its session ends without an error is on, exit status 0 closes the tab instead. The countdown waits while TermiPort is locked.
Forwards that were running start again after an automatic reconnect. Forwards you stopped, and ones that failed, do not.
Local terminal
Terminal, ⌘T, or Shell → New Terminal opens the computer’s login shell on macOS. On Android the tab runs /system/bin/sh as the app’s own user, with the system toybox commands, not a root shell.
On a Mac, if the agent is running and Set SSH_AUTH_SOCK in local tabs is on, the tab gets that socket, so ssh, git, and scp in the tab can use TermiPort’s keys. Android does not expose the agent socket to other apps.
When the shell exits, the tab shows Exited with code N and Reconnect and Close. Copy and paste are ⌘C and ⌘V. Find is ⌘F. Scrollback defaults to 10,000 lines. Font size for the window is ⌘=, ⌘-, and ⌘0. Holding ⌘ highlights https:// links; a command-click opens them.
Import
Shell → Import…, or Import… in the Hosts pane, reads a source, shows a preview, and asks where to put hosts: the top level, an existing group, or a new group. Files are only read.
~/.ssh— hosts fromconfig, private keys, andknown_hosts.ProxyJumpandProxyCommand ssh … -Wbecome jump hosts.LocalForward,RemoteForward, andDynamicForwardbecome forward rules. OtherProxyCommandvalues are not run.- PuTTY and KiTTY session files or a
.regexport. Serial sessions become serial profiles. A.ppkprivate key opens the key sheet. PuTTY key formats 2 and 3 are read. - SecureCRT
Sessionsor a session.ini.Session:firewalls become jump hosts. - A Tabby configuration: SSH and serial profiles, groups, jump hosts, and forwards. Encrypted Tabby configs are refused.
- MobaXterm
MobaXterm.inior.mxtsessions. Gateways become jump hosts. - A CSV with a header row: SSH hosts, groups, key paths, and jump hosts. Password columns are reported and not imported. The preview can read Windows-1252 or Windows-1251.
- On macOS, Termius, if it is installed. Also import saved passwords is off by default. Termius port-forward rules are not imported. Termius snippets go into host notes. Hosts that used a Termius Secure Enclave key come in without that key.
A host that matches a saved one by address, port, and username is skipped by default. You can update it with what the source adds, or import a copy. On Android, import is From file… only: you pick a file. There is no folder picker and no Termius import.
Back Up… writes an encrypted .termiport-backup. The backup password is separate from the master password and is not recoverable either. Secure Enclave keys are not in the file, because they cannot leave the Mac. Restore from Backup… adds records that are missing. It does not delete or overwrite what is already there.
More than one window
On macOS, Shell → New Window (⇧⌘N) opens another window with its own tabs. The vault and Settings are shared. Font size is per window. Closing a window ends its sessions. Android has one window.