Mobile SSH apps have multiplied over the last few years. Some, like Mosh-based clients (including Moshi), promise a better terminal experience over flaky connections. Others layer on proprietary protocols, cloud relays, or custom daemons that need installing on your host. But there is a simpler starting point that often gets overlooked: SSH is already on your machine. Every major Linux distribution ships with OpenSSH. macOS has shipped with it for over a decade. You do not need to install anything on the server side to get started.
This post looks at why that pre-installed foundation matters, how tools like Moshi diverge from it, and why Codeusse was built to embrace it.
The silent advantage of built-in SSH
Open a terminal on any Linux box or Mac. Type ssh. It is there. No package manager, no Homebrew, no compilation required. The protocol that secures remote access for millions of servers, cloud instances, and development machines is already baked into your operating system.
That means:
- Zero server-side setup. If you have enabled the SSH server (
sshd) on your host, you are ready. No extra daemons, no additional ports to open, no new attack surfaces. - Universal key management. Your
~/.ssh/authorized_keys,ssh-agent, and hardware security keys all work as expected. Nothing to duplicate or migrate. - Proven security. OpenSSH has been battle-tested for over two decades. It is audited, patched, and trusted by every major OS vendor.
- Ecosystem compatibility. Git, rsync, scp, VS Code Remote, Ansible — the entire DevOps toolchain speaks SSH natively.
Moshi and Mosh: a different path
Moshi is a well-made Mosh client for iOS. Mosh (Mobile Shell) was designed to improve SSH on high-latency or intermittent connections by using UDP and local echo. It works by installing a mosh-server binary on your remote host, which sits alongside (or replaces) your SSH session.
Mosh solves a real problem — typing lag and dropped connections over cellular — but it comes with trade-offs that matter for a development workflow:
What Mosh adds
| Capability | How Mosh handles it |
|---|---|
| Roaming and reconnection | UDP-based session that survives IP changes |
| Local echo | Types appear instantly before the server confirms |
| Predictive rendering | Smart reduction of terminal redraw traffic |
What Mosh gives up
| Limitation | Impact on development |
|---|---|
| No scrollback | Once output scrolls off screen, it is gone. No tmux scrollback, no terminal buffer. |
| No agent forwarding | Your SSH agent (ssh -A) does not work through Mosh. No key forwarding for Git operations inside the session. |
| No port forwarding | -L and -R tunnels are unavailable. No tunneling a database or dev server through your connection. |
No sshd integration | Mosh bypasses the SSH server after authentication. Audit logging, ForceCommand, and server-side sshd_config policies do not apply. |
| Server-side binary required | You must install mosh-server on every host you connect to. Not available by default on any OS. |
| Extra firewall ports | Mosh uses a range of UDP ports (60000–61000 by default). Each connection needs a firewall opening. |
For SSH administration — restarting a service, checking logs — Mosh can be a nice upgrade. But for a development environment where you run AI coding agents, use tmux for session persistence, forward ports, and audit access? The trade-offs start to hurt.
Why Codeusse stays on standard SSH
Codeusse connects over vanilla SSH. No UDP layer, no custom protocol, no server-side binary you need to install. The same sshd that ships with Ubuntu, Debian, Fedora, Arch, and macOS is the only requirement.
What you get with standard SSH in Codeusse
| Feature | Moshi (Mosh) | Codeusse |
|---|---|---|
| Server-side requirements | Install mosh-server | Enable SSH (already installed) |
| Protocol | UDP + SSH bootstrap | Standard SSH (TCP) |
| Session persistence | No (stateless) | Automatic tmux sessions |
| Scrollback | None | Full tmux scrollback |
| AI coding agents | Not supported | First-class support |
| Code editor | No | Built-in touch editor |
| File manager | No | Full file browser |
| Agent forwarding | No | Yes |
| Port forwarding | No | Yes (-L / -R) |
| Firewall ports | 1 SSH + UDP range | 1 SSH port |
| Audit logging via sshd | No (bypasses sshd) | Yes |
| Works on a Pi, VPS, or old laptop | Needs mosh-server | Works out of the box |
tmux is the persistence story
Mosh sells itself on reconnecting after network changes. That is genuinely useful. But Codeusse achieves the same goal — and more — through tmux, running over standard SSH. If your network drops, your tmux session keeps running on the server. When you reconnect, you attach right back where you left off. No UDP tricks, no port ranges, no extra server binary. Just tmux, which is available on practically every server and trivial to install if missing.
The difference is philosophical. Mosh tries to solve the flaky-network problem at the transport layer. Codeusse solves it at the session layer. The transport layer approach requires everyone to install new software. The session layer approach works with what already exists.
Security stays where it belongs
Because Codeusse uses standard SSH, every connection inherits your host’s existing security posture. Your sshd_config rules apply. Your AllowUsers and AllowGroups restrictions apply. Your audit logs capture every authentication. Your fail2ban or crowdsec rules fire as expected.
Mosh authenticates through SSH initially, then pivots to a UDP channel that bypasses sshd entirely. For teams or organisations that rely on server-side access controls, that gap is significant.
When should you use Mosh?
Mosh has its place. If you are SSH-ing into a server over a spotty 4G connection to check on a long-running process, and you do not need scrollback, agent forwarding, or any of the SSH ecosystem features — Mosh is excellent at what it does. Moshi provides a polished iOS client for that workflow.
But if you are:
- Running AI coding agents like Claude Code, Aider, or OpenCode on a remote machine
- Maintaining long-lived
tmuxsessions for development - Pushing and pulling from Git repositories via SSH
- Tunneling databases or dev servers through your connection
- Writing, reviewing, and editing code from your phone
… then the standard SSH stack with tmux gives you everything that Mosh can, plus the full ecosystem that Mosh cannot.
Getting started
The best part is how little you need to do. On your Linux or macOS host, make sure the SSH server is running:
- macOS:
System Settings→General→Sharing→ enableRemote Login(full guide) - Ubuntu/Debian:
sudo systemctl enable --now ssh - Fedora/RHEL:
sudo systemctl enable --now sshd - Raspberry Pi: Use the Raspberry Pi Imager to pre-configure SSH (full guide)
That is it. No extra packages. No UDP port ranges. No custom daemons. Just ssh, which is already there.
Install Codeusse from the App Store, add your host, and start coding. Your agents get a persistent tmux session, a touch-first code editor, and a file manager — all over the SSH protocol your machine has understood since the day you installed it.