Playground · Shared terminal

Your shell. On their screen. With your permission.

A real terminal in a browser tab — bash, cmd, PowerShell, or an SSH host you keep in an address book — with a file explorer and an editor beside it. Then hand one tab to somebody in a room: they watch it live, read-only, and they only get the keyboard if you say so. That permission is checked on your machine, not theirs.

Read-only by default Per-tab, per-person Revocable in one click

Shared terminal · a local bash session xterm.js in the page, a real PTY behind it
The shared terminal running a real bash session: a tab bar, a sidebar of shells, and a shell prompt with the output of ls and git log.

In the app: toolbar → Bash (or CMD / PowerShell — the ones your machine does not have are greyed out).

3 + SSH shells bash, cmd, PowerShell, plus saved SSH hosts
20 tabs, and they come back live sessions re-attach after a reload
2 permission levels read-only or read-write, and per person
44 file types highlighted in the editor that opens beside the shell
How it works

The page is the screen and the keyboard. The shell is yours.

There is no shell on our servers, and this page does not have one either. It talks to a small helper you run on your own machine — the SDK Local Service — which spawns the real process and streams it back. That is the honest shape of it, and it is why the terminal can open your files and your SSH hosts without anything of yours leaving your computer except what you deliberately share.

Step one

Start the helper

One command on your own machine. Until it answers, the page says so plainly and offers the two things that still work without it: joining somebody else's shared session, and reading how to set it up.
Step two

Open a shell

The toolbar offers only the shells your operating system actually has; the rest are greyed out and say why. Twenty tabs, each a real process, each with its own working directory and history.
Step three

Hand one over

Right-click a tab → Share Session. Everything after that is on this page: who can watch, who can type, and how you take it back.

Without the helper you can still watch. Joining a room somebody has shared a session into needs nothing installed at all — the terminal appears in your browser and you read it. What the helper unlocks is your own shells, your own files, and being the person who shares.

Sharing

One tab, not your whole machine

Sharing is per session. The tab you share is the tab they see; the other nineteen are yours. While a session is shared, a strip sits across the top of it saying so — how it is shared, how many people are watching, and a Stop sharing button that ends it and closes the session on every screen it was open on.

  • The banner is on the terminal itself, not three levels down a sidebar. You cannot forget you are sharing.
  • Stopping clears every permission you granted, per person, in one action.
  • If you disconnect, the people watching are told — rather than left looking at a frozen prompt.
The owner's sidesharing live · read-only
A shared terminal from the owner's side: a banner across the top reads 'Sharing live, read-only, one watching' with a Stop sharing button, and the Sharing sidebar lists the connected viewer.

In the app: right-click a tab → Share Session. Watchers appear under the sidebar's Sharing tab.

Who can type

Read-only is the default, and it is enforced on your machine

A viewer's keystrokes travel to you and are checked there before they reach the shell — first against that person's own permission, then against the session's. Anything that is not read-write is dropped. The gate is on the side that owns the process, which is the only side where a gate means anything.

The viewer's 'Shared with You' panel: one invitation reading 'Local (Bash), amina, Read-Only' with a Watch button beside it.

An invitation, not a tab that appears

Somebody sharing a session in your room does not open a terminal on your screen. It lands in Shared with You with the owner's name and its permission on it, and you press Watch if you want it.

Consent

Asking for the keyboard

A read-only viewer right-clicks their tab and chooses Request Write Access. The owner gets the request with the person's name on it and answers yes or no; every badge in the room updates when they do.

Type into a session you may only watch and the terminal tells you why, once, with the way to ask — rather than silently swallowing what you typed.

RequestGrantDeny

Per person, not per room

The Sharing tab lists every share and everyone connected to it. Right-click one of them and set that person read-only or read-write on their own — one pair may drive while the rest of the room watches.

File operations from viewers are checked the same way, against an explicit list of what counts as reading and what counts as writing, and a blocked attempt tells the owner it happened.

Per viewerRevocable
Getting people in

Three ways, matched to how people actually ask for help

A link, with a QR code

For pasting into a chat, or pointing a phone at. Opening it asks the new arrival for a display name once and then puts them in the room.

A code you can read out

Because half the time somebody is asking for help on a call. The code is minted on the server with an expiry and a number of people it will let in — "good for ten minutes, and for two people" — and it is the first field the joiner sees, not the last.

The Invite button

Once you are in a room it appears in the top bar and goes straight to the sharing panel with the link and the QR already made.

Fileslocal disk, or SFTP on an SSH tab
The file explorer open in the sidebar beside a live shell, listing a directory with a path bar and a toolbar.

In the app: open a shell, then the sidebar's Files tab.

Files

The disk the shell is standing on

A file explorer per session — the local disk for a local shell, SFTP for an SSH tab, and for a viewer with write access, the owner's disk proxied through the same room. Drag files in to upload; download comes back in 64 KB chunks with a progress bar you can cancel.

  • Click a file and it opens in an editor — as a window, or pinned beside the terminal with a handle to drag.
  • Ctrl+S saves. If somebody else saves the same file under you, the editor says so instead of quietly losing one of you.
  • Markdown notes live in the same editor, saved two seconds after you stop typing.
  • Every file a viewer opens or saves is announced to the owner.
Shortcuts

What the keyboard does

Everything not listed here goes to the shell, where it belongs — Ctrl+C interrupts your program, it does not copy.

Ctrl+⇧+T New tab
Ctrl+⇧+W Close this tab
Ctrl+PgUp / PgDn Previous / next tab
Ctrl+= / - Bigger / smaller type
Middle-click a tab Close it
R Reconnect a disconnected session
Ctrl+S Save, in the editor
Esc Close whatever is open
Right-click the terminal Copy, paste, select all, clear, type size
Right-click a tab Rename, duplicate, share, permissions, close
Right-click a viewer Set that person read-only or read-write

What it does not do. There is no search across the scrollback, no light theme, and no dragging tabs into a new order. Somebody joining a live share sees the session from that moment on — what scrolled past before they arrived is not replayed. And read access is room membership: anyone in the room you shared into can watch, so treat the room password as the thing that matters.