Skip to content

tmtv

share your terminal over SSH. that's it.

Get started

curl -fsSL https://tmtv.se/install.sh | sh
$ tmtv
# share the SSH token with your pair
$ ssh TOKEN@tmtv.se

Linux and macOS. Or brew install sa3lej/tap/tmtv on macOS. Or build from source.

View a session in the browser

Or open a direct link: /s/TOKEN

tmtv terminal sharing session — SSH pair programming with optional web viewer

How it works

Share

Run tmtv. You get two SSH tokens: read-write for your pair, read-only for spectators. Add a password if you want to lock the door.

Connect

Your pair runs ssh TOKEN@tmtv.se and lands in your session. No plugins, no accounts, no browser.

Or use the browser

Open the web viewer if you don't have a terminal handy. Watch, or type along with a read-write token. Zero install.

SSH sharing
read-write + read-only
Session security
password protection
Built on
tmux 3.6a
Web viewer
view or interact, zero install
Self-hosting
docker compose up

Debug CI failures

Drop sa3lej/action-tmtv@v1 into your GitHub Actions workflow. When a job fails, SSH in and debug it live. Drop-in replacement for action-tmate.

- name: Debug via SSH
  uses: sa3lej/action-tmtv@v1

What it looks like

tmtv default theme showing terminal output
Default theme
tmtv viewer showing a normal tmux session with split panes
Normal session
tmtv TV theme with rounded corners and CRT effect
TV theme

Try it: add ?theme=tv to any viewer URL

Why tmtv?

I loved tmate but it was stuck on tmux 2.4 from 2017. Nine years of tmux improvements — popup menus, extended keys, sixel graphics — all missing.

So I rebased it on tmux 3.6a and shipped it. Same SSH-based terminal sharing you know, with a modern tmux underneath. The web viewer is a bonus — handy when someone just wants to watch without opening a terminal.

No IDE plugins. No accounts. No Electron app. Just SSH.

What's new

v2.0.1 Latest

Exit means exit.

Server now exits cleanly when you close the last session — no stale processes, no orphaned symlinks, no lingering SSH tunnels. Test suite hardened: 192 tests, zero skipped, zero failures.

v2.0.0 The server that never gives up.
v1.9.3 The server that sleeps when it should.
v1.9.2 Good neighbors don't crash each other.

Full changelog on GitHub

Built by Lars-Erik Jonsson (SA3LEJ) with Claude Code.