SSH that stays where you left it
meshTerm is a terminal client built for engineers who care about their sessions. Pair a host once, start a long-running task on the go, walk into the office and continue the same shell from a different device. Your scrollback, your environment, your half-finished command - exactly where you left it.
What's inside
Containers 2.3
See and manage Docker, Podman, nerdctl and Apple container workloads on your own servers, over SSH you already have. An overview of every host, live status, logs and a shell, New Container and New Stack, ready-made Templates, a Vault for secrets, a Topology map, Portainer servers, and Ask an Agent to find out why something is failing. A Pro feature, with a free preview.
Windows hosts 2.3
Install Key now writes to the file Windows' SSH server reads, and with herdr 0.9.4 or later a Windows host can keep sessions running after you disconnect.
Native tmux 2.2
meshTerm talks to tmux directly. Your tmux panes become native panes, side by side with draggable dividers on iPad and one at a time on iPhone, and a tmux page in the palette switches, splits, zooms and resizes them. Reconnects land in the same session at the same size.
herdr, built in 2.2
Keep Claude, Codex, Gemini and other agents running on your host in herdr, and see every session from your phone: what needs you, live status, and approvals you can answer without opening a terminal. Free on your host: one herdr session at a time, with unlimited agents, tabs and workspaces inside it. Pro adds more hosts and parallel sessions.
Roam: persistent sessions (Halo)
A small open-source daemon, mtroamd, runs on your own server and holds your shell open across reconnects, app backgrounding, and device switches. Its persistent ring buffer, Halo, replays your scrollback the moment you reattach. Install it with your server's package manager.
AI agents, native
Run Claude Code, Codex and Gemini on your own hosts, driven from a native in-app chat: streaming replies, per-tool approvals, plan mode, model and thinking pickers, token chips, and file attachments from iOS. Agents survive restarts and network drops, and you can resume any past conversation.
Agent notifications
Know the moment an agent needs you. Get a push when Claude or Codex has questions, needs approval or finishes a turn, or when agy (Gemini) finishes a turn, even with meshTerm closed. Tap it to jump straight back to that session; answer questions in the terminal. Opt in per host and choose which events notify you. See Notifications for setup and supported sessions. Alerts come through Apple Push Notification service (APNs) via our relay, over encrypted connections, and carry nothing that identifies you, your hosts or your work.
Pick your persistence
Choose tmux, mtRoam or None for each host, and let Check persistence show you what is already installed on the server, where, and which version.
iCloud Sync
Your hosts, keys, macros, snippets, tags, Tailscale profiles and preferences sync across your devices, with secrets carried end-to-end by iCloud Keychain. Opt-in, off by default.
Port forwarding
Local (-L) forwards and a dynamic SOCKS5 (-D) proxy, managed per host, with an in-app browser for local web forwards.
Session takeover
Open a session on one device and take it over from another with a single tap. The displaced device drops to read-only.
Retro color modes
True Color plus green, blue and red phosphor and monochrome, with diff-aware brightness so additions stay bright and removals dim.
Named, multi-attach sessions
Run several named sessions per host - exclusive control, read-only watching, or passive tail. Switch between them in one tap.
Predictive echo
Typing feels native even on a slow link. A prompt-aware overlay mirrors keystrokes locally and reconciles them when the daemon's echo arrives.
Shell history at your thumb
Browse the remote host's shell history in a sheet, or accept matching suggestions from the prediction chip strip above the keyboard.
TUI return-to-prompt
A small floating pill detects when you're scrolling away from a Claude Code or Codex CLI prompt and offers a one-tap jump back.
Keyboard palette
A palette above the keyboard: a features page for files, search, snippets, tunnels and agents, a keys page built from your own key groups, a sessions page for one-tap switching, and a tmux page for windows and panes. Minimize it to hand the screen back to your terminal.
Secret Profiles
Bundle your environment variables and keys under one name and inject them into a running session on tap: over plain SSH, mtRoam or tmux, with nothing typed and nothing left on screen. Keychain-backed, optionally gated by Face ID.
Wedge recovery
If a Claude Code TUI gets stuck after a resize, a top banner offers to save context and restart the session with one tap.
Tailscale-first SSH
Sign in with your Tailscale account - no keys to manage - then browse your Tailnet, pick a peer, add it as a host. Tailscale SSH nodes connect without passwords or keys.
SFTP file browser
Browse, upload, download, rename and delete files on any server. Integrates with the iOS Files app for end-to-end drag-and-drop.
Privacy by design
Terminal content never leaves your devices. SSH credentials live in the iOS Keychain. No analytics, no telemetry, no tracking SDKs.
Documentation
User Guide
Setting up hosts, tmux and the Roam daemon, AI agents, port forwarding, the keyboard palette, the macro bar, snippets, SFTP, multi-session attach modes, and troubleshooting.
Read the guideTroubleshooting
Find the message you see, why it happens and the fix: connecting, keys and host keys, tmux and mtRoam, files, agents, notifications, herdr and Containers, with commands for each system.
Fix a problemDocker 101
New to containers on your own server? Docker, Podman and friends, images and stacks, ports and volumes, installing an engine on Ubuntu, Debian, Fedora, Alpine and macOS, and how to run it safely.
Start with DockerTailscale Setup
Sign in with your Tailscale account (or use an auth key) to connect and browse your Tailnet - no API token needed while connected - and enable Tailscale SSH for passwordless access on every device.
Configure TailscalePrivacy Policy
What we don't collect, what stays on your device, and where Roam scrollback lives on your remote host.
Review privacyEnd User Licence Agreement
The legal agreement governing your use of meshTerm on Apple iOS and iPadOS devices.
Read EULAFeedback and feature requests
Report a bug, request a feature or ask a question on our public GitHub repo, or from the app: Settings > Feedback and Feature Requests. The repo is public, so leave out hostnames, IP addresses, keys and logs. Anything private: meshterm@gmail.com.
Give feedback