wrapper • host • 4J8K2P • local

[wrapper] controls: Ctrl+\ then s share | u unshare | w typing | ? status

~/projects/api ❯ git status

On branch main

Your branch is up to date with 'origin/main'.

 

Changes not staged for commit:

modified: src/relay/p2p.ts

modified: tests/tickets.test.ts

 

no changes added to commit (use "git add" and/or "git commit -a")

~/projects/api ❯

share this session: press ⌃\ then s or nothing leaves the host until you share it

Terminals

0 terminals readyPull to refresh shared sessions
0 active
No active sessions

Start Wrapper on your computer, then share a session to connect.

[wrapper] controls: Ctrl+\ then s share | u unshare | w typing | ? status

~/projects/api ❯ git status

On branch main

Your branch is up to date with 'origin/main'.

 

Changes not staged for commit:

modified: src/relay/p2p.ts

modified: tests/tickets.test.ts

 

no changes added to commit (use "git add" and/or "git commit -a")

~/projects/api ❯

Join a shared terminal

Enter the invitation shown by the host.

Invitation

ABC123XYZ789ABCD-EFGH

The host displays both values after sharing the terminal.

The share code is used only for backend verification and is never written to logs.

ReleaseViewer beta
DistributionTestFlight

The iOS app is a TestFlight viewer. The shell, files, and credentials stay on the host computer.

Privacy and security

Privacy Policy Terms of Service Support
TransportP2P with relay fallback

Direct P2P can reveal peer IP addresses. Relay fallback is encrypted in transit but is not zero knowledge.

Account

Account deletion permanently removes your Wrapper account and associated session metadata.

Your terminal.
On your phone.
Only when you share.

The terminal stays on your computer. Open it from your phone when you share. Other people can watch; they cannot type unless you allow it.

Then wrapper share. Works with Claude, Codex, vim, or whatever is already running.

Direct when possible.
Available when not.

Interactive traffic takes the shortest secure path. Signaling and fallback remain authenticated end to end.

  1. DiscoverEach ticket is checked before a byte moves.
  2. Connect directlyWebRTC data channel, DTLS encrypted.
  3. Fall back safelyAuthenticated WSS through the relay, TLS in transit.
Read the data-flow details

Connection diagram: your viewer and your shell connect directly over WebRTC with DTLS encryption. When a direct path is unavailable, traffic falls back to an authenticated WebSocket through the Fly relay, encrypted with TLS in transit.

Nothing leaves
until you say so.

Your process, filesystem, credentials, and history stay on the host. Sharing takes two keys and ends with two more.

How terminal data moves

Watch, don't type

People you invite see the screen. They don't get the keyboard until you say so.

Two keys to share

Ctrl+\ then s opens the tunnel and prints a code.

Revoke instantly

Ctrl+\ then u closes the share and unused tickets.

Single-use tickets

Viewer tickets are random, stored hashed, and expire after 60 seconds.

Your shell, unchanged

Dotfiles, prompt, plugins, and history behave exactly as before.

Local is free.
Remote is Pro.

Use Wrapper on this machine for free. Upgrade only when a session needs to cross networks.

Install the free CLI

Free

$0forever

Your shell, on this machine.

  • Does not patch your
  • from the same computer
  • Nothing leaves until you
Install Wrapper

Pro Remote access

$99/ year

$8.25/ month

From your phone, or any other device.

  • Everything in Free
  • Attach from
  • Share a session, anytime
  • Host on a remote
  • People you invite can
  • Get iOS viewer (opens in a new tab)
Choose Pro

Sign in to upgrade from the dashboard.

Questions,
answered plainly.

  • Not until you share. Unshared hosts listen on loopback and send no bytes and no session metadata. A share uses WebRTC when it can, else an authenticated relay that keeps nothing.

    How terminal data moves
More answers in the docs (opens in a new tab)

Hear about it when it ships.

Release notes only, one email per release. Confirm from your inbox first.