Portty
Free · End-to-end encrypted · Zero-config

Your terminal,
in your pocket.

A zero-config terminal to any of your machines, from anywhere — with AI agents getting safe, tap-to-approve oversight on top. No open ports, no VPN, no SSH keys.

Hosts onmacOSLinuxWindowsRaspberry Pi

Phone app: Android on Google Play (Android 10+) · iPhone coming soon

9:41
porttylive
macbook · build
~/portty $
CClaude wants permissionagent
git push --force
▣⌘⇄⚙
Claude Code◆Codex◆OpenCode◆Goose◆Claude Code◆Codex◆OpenCode◆Goose◆
$ portty share›$ cargo build›$ git push --force›$ tail -f app.log›$ docker compose up›$ npm test›$ kubectl get pods›$ portty-host serve›$ claude --resume›$ pnpm dev›$ psql -h prod›$ git status›$ portty share›$ cargo build›$ git push --force›$ tail -f app.log›$ docker compose up›$ npm test›$ kubectl get pods›$ portty-host serve›$ claude --resume›$ pnpm dev›$ psql -h prod›$ git status›

Why now

Two needs, one moment.

A brand-new problem landed on top of an old, badly-served one. Nobody serves both cleanly yet — that's the opening.

A A new need

Agents pause and ask permission constantly.

AI coding agents like Claude Code, Codex and Goose don't just run — they stop and ask "can I run this command?" over and over. And you're rarely at the desk when they do. Approving-an-agent-from-afar is a genuinely new problem, born with the agent era.

B An old need

Terminals-from-elsewhere is still painful.

Wanting a terminal to your box from elsewhere is ancient — SSH, tmux + mosh, Termius. But it's open ports, port-forwarding, dynamic DNS, VPNs, key juggling. Most people give up and stay at the desk. Portty collapses all of it to a scan and a code check.

The shape of it

A floor you live on.
A ceiling that sets it apart.

Two layers on one secure pipe. The floor is the everyday product; the ceiling is what no plain-SSH tool can do.

01 · daily driver

The Floor — a terminal to any machine

Any terminal on any machine, streamed live to your phone, switchable, workable. tmux-style: sessions keep running when you close the app.

~/portty $ cargo build
Compiling portty
Compiling portty
✓ Finished in 12.4s
Building100%
  • → Watch a build finish
  • → Tail logs & migrations
  • → Run the command you forgot
  • → Reach your home server
02 · differentiator

The Ceiling — tap-to-approve agents

When an AI agent is in the terminal, that session upgrades to rich Approve/Deny cards, diffs and summaries — not scrolling text.

CClaude · permission
git push --force
ApproveDeny
4
AI coding agents supported
0
open ports, VPN, or SSH keys
One secure pipe ·Any agentAny terminalAny machineZero-configE2E encrypted

Scenarios

From the daily to the “wow.”

THE FLOOR

Watch a build finish

Kicked off cargo build, npm test or a deploy and stepped away. Open your phone — that terminal is live in your hand. Catch the break the second it happens.

Tail logs & migrations

A dev server, tail -f, a DB migration in flight. Glance at it from the couch without re-establishing an SSH session.

Run the command you forgot

In bed and remember you didn’t git push? Tap the terminal, fire the one-liner (or a saved snippet), done in 10 seconds.

Reach your home server

Pair once with a QR, then your Pi / NAS / home box is just there over P2P. No dynamic DNS, no port-forwarding, no networking degree.

Resume a REPL with state

Sessions persist on the host, tmux-style. Detach, reattach, type the next line from your phone — your Python/psql/vim state survives.

Fire a script on demand

11pm, you remember the backup or cleanup script. Tap, run, read the result, sleep.

THE CEILING

Approve a risky action

Agent wants git push --force, rm -rf, or to install a package. A card with the exact command lands on your phone. Tap Approve or Deny from anywhere.

Review the diff

Agent finished editing files. See a clean red/green diff — not a git diff text wall — spot the wrong line, tap Request changes.

Answer without typing

Agent asks “Postgres or SQLite?” Get a question card with tappable options. One tap, no phone-keyboard decoding of scrollback.

See “stuck or working?”

A clean activity feed — “editing users.rs”, “running tests (12/40)”. Skimmable, no terminal noise. Confirm it’s healthy, put the phone away.

Stop a runaway agent

One Stop button → a clean interrupt, not Ctrl+C roulette into raw bytes. Session and state survive.

A fleet of agents

Three agents on two machines, one dashboard: Frontend working · Backend waiting on you · Docs done. Jump straight to the blocked one.

The whole pitch in one moment

You start Claude Code refactoring a module on your laptop, then walk to lunch. Mid-soup, it wants to rungit push --force. Your phone buzzes — a card: “Approve / Deny?” You tapDeny. You stay at lunch.

Freedom and control — walk away from your desk, but nothing happens without your say-so.

One command

portty share
opens a portal from the terminal you’re already in.

Don’t rewire your workflow. Type portty share in the terminal you’re sitting in and that terminal is suddenly on your phone — watch it and control it from anywhere, mid-work.

  • ◇From-birth portal. portty install adds a shell hook so every terminal is portal-ready the moment it opens — share even works mid-agent-run.
  • ◇Clean detach. Close the portal and the shell keeps running, tmux-style. Reattach on any device.
  • ◇Every session, one fleet. Spawned or adopted, on one machine or many — all just tabs in your phone.
~/work/frontend — zsh
$ claude "refactor auth module"
✶ refactoring auth module …
✶ running tests (8/20) …
$ portty share
✓ portal opened · live on phone
⇄ live on phone · session keeps running
terminal→portty relay→shell↘ phone

How it works

Zero config. Under a minute.

01

Install on your machine

Run the host daemon on a Mac, Linux box, Windows PC, or Raspberry Pi. It owns the terminals — your phone never runs a shell.

02

Pair with a QR + a code check

Run portty pair, scan the QR, and confirm both screens show the same 6-digit code. Devices reach each other over encrypted P2P — LAN direct, NAT-punched, or relayed. No open ports, no VPN, no SSH keys.

03

Open any terminal; approve with a tap

Switch between many live sessions, or type a quick command. When an agent asks permission, get a clean Approve / Deny card.

How it compares

One app for all of it.

Not Claude-only. Not agent-only. Not paid-only. Not “just SSH.”

Any agentAny terminalFree + self-hostZero-configE2E encrypted
Portty✓✓✓✓✓
Anthropic Remote ControlClaude-only———✓
Happy Coder✓—✓—✓
Omnara✓—$9/mo—plaintext
Termius / Blink (SSH)—✓——✓

Security

A remote shell is high-stakes.
We treat it that way.

A bug in pairing or a stolen unlocked phone hands over the whole machine. So Portty is built like it: signed binaries, least-privilege defaults, and a strict P2P-only posture by default.

Read the full security model →
Encrypted P2PEnd-to-end sealedDevice identity keysDirect first

End-to-end encrypted by default

Every keystroke and every line of output is sealed between your devices — only they hold the keys. A relay only ever passes along data it can’t read.

Real device identity

Every device has its own identity key. A stolen QR can’t pair on its own — you confirm a 6-digit code on both screens before any phone is added.

Direct first, smallest surface

Devices connect directly whenever they can, and fall back to an encrypted relay only to get through. No open ports, no accounts, no server of ours in the middle.

Instant revoke + biometrics

Drop a stolen phone in ~2 seconds with portty-host revoke <id>. Biometric lock on the app. Structured commands by default; raw shell only on request.

Get Portty

Up and running in a minute.

Two binaries: portty (share a terminal) and portty-host (the daemon).

1. Get the phone app

Free on Google Play for Android 10 and newer. The iPhone app is coming soon.

Get it on Google Play

2. Install Portty on the computer you want to reach

v0.1.3 · beta

via Homebrew

brew install mrtechnoo/tap/portty

Then start the host and pair your phone — scan the QR in the app, check both screens show the same code, and answer y:

portty-host
portty pair
portty share

Portal the terminal you’re in to your phone.

portty install

Make every new terminal portal-ready from birth.

Also on Scoop · direct downloads · source code · install & service guide →

Free and open source

Free for everyone. From Corvux Mindware.

Portty is free and open source — built by Corvux Mindware to put a safer terminal in every developer’s pocket. Install it on your own machines, reach any box from anywhere, and keep your agents on a short leash with tap-to-approve.

What you get
FreeOpen sourceApache-2.0Self-hostableNo telemetry
Status
Floor shipped · ceiling in active development

FAQ

Questions, answered straight.

Does Portty need a relay or a server?
No server of ours. Your phone and computer connect directly whenever they can — on the same network, or through a punched-through link. To find each other, and to carry the link when no direct path exists, they use free public relay servers run by n0, the company behind the open-source iroh networking library. Relays only pass along encrypted data: they see IP addresses and a random device ID, never your keystrokes or output. The privacy policy lists exactly what they see.
Which AI agents are supported?
Agents that speak the open Agent Client Protocol (ACP): Claude Code, Codex, OpenCode, and Goose. One app, no per-agent setup.
Can my phone be the machine I’m connecting to?
No — and that’s structural, not “not yet.” A host needs to spawn a real shell and open a PTY, which sandboxed mobile apps (iOS/Android) can’t do. The phone is always the viewer and approver; the host is always a real machine (Mac, Linux, Windows, or Pi).
Where do I get the phone app?
Android: Portty is free on Google Play (search “Portty”, Android 10 or newer). iPhone: coming soon. The phone app is only the remote control — install the free Portty program on the computer you want to reach, then pair the two.
Is the agent approval layer finished?
Yes, in the Android app: start Claude Code, OpenCode or Codex on your computer, follow them in a chat view, allow or deny each step, set “always allow” rules and look back at what you decided. Push alerts are not in this version yet — approvals show while the app is open.
How is it different from Termius, Blink, or SSH?
Those are just remote shells — open ports, SSH keys, VPNs. Portty is zero-config P2P (scan a QR, confirm a code) and adds the agent-approval layer on top. It’s a terminal and a safe remote control for your agents in one app.
What about “from anywhere” if my laptop is closed?
A closed laptop is unreachable — that’s physics. The killer use cases target always-on machines: a desktop, a server, a home box, or a Pi. Portty is honest about that rather than overselling.

Put a terminal in your pocket.

Watch builds, reach any machine, and approve your agents with a tap — all from your phone. Free to use.