TermiPort

Cross-platform

A terminal that keeps the vault on your machines.

macOS available now. Android in development. Windows, Linux, and iOS builds planned.

TermiPort is a terminal and SSH client. Hosts, keys, known hosts, serial profiles, and port forwards live in an encrypted vault on the device. Sync is optional. When it is on, the server stores ciphertext only.

TermiPort
Hostsedge
  • Terminal
  • Serial
  • SFTP
  • edge user@edge
  • db via edge ⇄
  • Keys
  • Known Hosts
Sketch of the Hosts tab, not a screenshot. A session opens in its own tab.
On the deviceThe vault is the source of truth. Sync can stay off.
Ciphertext onlyThe server does not see host names, logins, keys, or device names.
Your serverSync runs through termiport-server, which you host.

What it does

The menus and buttons in the app are in English. The list below is what the current app actually implements.

  • SSH

    Saved hosts and nested groups, password and keyboard-interactive sign-in, file keys, jump hosts, known hosts, and reconnect after a drop.

  • Keys and an agent

    Ed25519, ECDSA, and RSA keys in the vault. On a Mac, Secure Enclave keys with Touch ID and FIDO2 security keys. A built-in agent can forward chosen keys.

  • Port forwarding

    Local, remote, and SOCKS rules on each host. Start them with the connection, or open a tunnel with no terminal.

  • SFTP

    A two-pane tab: this computer and the host. One queue, a choice when names collide, and drag and drop on macOS.

  • Local terminal

    The machine’s own shell in a tab. On a Mac it can receive the agent socket. On Android it is the app’s /system/bin/sh.

  • Serial

    Quick connect and saved profiles, USB identity so a device can be found again, session logs, and reconnect when the cable comes back.

  • Import and backup

    OpenSSH, PuTTY, KiTTY, SecureCRT, Tabby, MobaXterm, CSV, and, on macOS, Termius. An encrypted backup file of the vault.

  • Sync and a license

    End-to-end encrypted sync. Through 2028 (the development and testing period), free licenses for unlimited devices and unlimited duration are issued on request.

How a session is kept

  1. Unlock the vault

    A master password derives a key with Argon2id. Each record is encrypted on its own with XChaCha20-Poly1305. On a Mac you can also unlock with Touch ID. On Android 12 and later, with a fingerprint. Neither replaces the password as something you can look up later: a forgotten master password cannot be recovered.

  2. Open a tab

    A tab is a session: an SSH channel, the local shell, or a serial port. SFTP uses its own connection to the same host. Port forwards live in the SSH tab, or in a tunnel tab that has no shell. The terminal is drawn with xterm.js.

  3. Sync only if you want to

    Records leave the device already encrypted with an account key that only your devices hold. That key is not derived from the master password or the account password. A new device signs in with the account password and a second factor, if you turned one on.

The documentation walks through install, the first connection, and each of these workflows.

Platforms

WhereStatus
macOS 13.3 or later Available now (Apple silicon and Intel). Secure Enclave, FIDO2, the full SFTP panes, drag and drop, and the agent socket for local programs.
Android 9 or later Under development — not a finished release. arm64 phones and tablets; SSH, vault, sync, and related features are being built out. Fingerprint unlock needs Android 12.
Windows, Linux, and iOS Planned. TermiPort is meant to be cross-platform; desktop and iOS builds are future work. No release dates yet.
A server you run termiport-server for sync: install from deb.yukh.net (Debian 12 and 13) or alt.yukh.net (ALT p11 and Sisyphus). That is the sync daemon, not a Linux desktop app. See Your own server.

Sync uses a server you run. The app still installs its own updates from the developer, whether sync is on or not.

Download

Current macOS release 26.10.30.55 — also on GitHub.

Android is under development. There is no polished public APK on the release page yet; builds are for testing as the app matures. Windows, Linux, and iOS downloads are not available yet.

The macOS build is ad-hoc signed and not notarized. The first launch needs Open Anyway under System Settings → Privacy & Security.

Inside the app, Check for Updates… installs only a build signed by the key built into TermiPort. A build made without an update server does not receive updates.

License

Until 2028 there is a development and testing period. During this period all licenses are free, for unlimited duration and unlimited number of devices. Licenses are issued on request. Get in touch via yukh.net.

Install the file in Settings → License → Install License…. It belongs to the account email and works on any TermiPort server. Without a license, an account can sync on 3 active devices; revoked devices do not count. After a timed license’s end date it keeps working for 14 days. Then the free limit applies again: the oldest devices keep full sync, the others become read-only, and nothing is deleted. This site does not sell licenses and does not list a price.