shellshare

Live terminal broadcast

npx -y shellshare curl -sLo shellshare https://get.shellshare.net/?os=mac && chmod +x shellshare && ./shellshare wget -qO shellshare https://get.shellshare.net/?os=linux && chmod +x shellshare && ./shellshare iwr https://get.shellshare.net/?os=windows -OutFile shellshare.exe; .\shellshare.exe

What is it?

Shellshare allows you to broadcast your terminal live with a single command. Read-only, end-to-end encrypted, great for teaching and presentations.

How to use?

Open a terminal and write:

$ npx -y shellshare$ curl -sLo shellshare https://get.shellshare.net/?os=mac
$ chmod +x shellshare
$ ./shellshare$ wget -qO shellshare https://get.shellshare.net/?os=linux
$ chmod +x shellshare
$ ./shellsharePS> iwr https://get.shellshare.net/?os=windows -OutFile shellshare.exe
PS> .\shellshare.exe
Sharing terminal in https://shellshare.net/r/EPbZJ7VZNakS9vwUlS#59a4b6ba0447dd63268724ff49a61cabf45af81f9b8f539bda953df9ac65314e
$ # Everything you do now will be broadcast live on the URL above.
$ # When you're done, hit CTRL+D
$ exitPS> # Everything you do now will be broadcast live on the URL above.
PS> # When you're done, hit CTRL+D
PS> exit
End of transmission.

Frequently asked questions

Can someone control my terminal through shellshare?

No. All communication is just one-way: from your terminal to shellshare. There's no way someone could send commands to your terminal. If you'd like to allow it, try screen or tmux (especially with tmate).

How secure is it?

Broadcasts are end-to-end encrypted. The decryption key lives in the part of the share link after the #, which your browser never sends to the server, so only the people you give the full link to can watch. Neither the server nor your network can read your terminal.

Can I save the broadcast?

No. Shellshare was made only for live broadcasts. If you'd like to save your terminal, try asciinema.org.

Can I broadcast to a custom room name?

Yes. You can broadcast to a named room secured with a password by calling shellshare as:

$ npx -y shellshare --room MY-ROOM --password MY-PASS$ curl -sLo shellshare https://get.shellshare.net/?os=mac
$ chmod +x shellshare && ./shellshare --room MY-ROOM --password MY-PASS$ wget -qO shellshare https://get.shellshare.net/?os=linux
$ chmod +x shellshare && ./shellshare --room MY-ROOM --password MY-PASSPS> iwr https://get.shellshare.net/?os=windows -OutFile shellshare.exe
PS> .\shellshare.exe --room MY-ROOM --password MY-PASS
Sharing terminal in https://shellshare.net/r/MY-ROOM#5baafc7eedf22a42e13a2c760323912f655e06b996c26ed6b3f7655fb6ca5abc
$ # ...
$ exitPS> # ...
PS> exit
End of transmission.

If you don't set a password, shellshare will use your network card's MAC address to uniquely identify your computer. This means you'll be able to transmit to the same room later only if you're using the same computer. The share link is reproduced too: broadcasting to the same room from the same computer prints the same link (decryption key included), so a link you've already shared keeps working.

Can I change the colors viewers see?

Yes. Start shellshare with --theme (e.g. ./shellshare --theme dracula) and viewers will see your broadcast in that color scheme. We support the same themes as asciinema: asciinema, dracula, gruvbox-dark, monokai, nord, seti, solarized-dark, solarized-light and tango.

Can AI agents or scripts use shellshare?

Yes, shellshare is built for it. Add --json and the first line on stdout is a machine-readable event whose url field is the share link: {"event":"sharing", ..., "url":"https://shellshare.net/r/..."}. Use shellshare exec --json -- npm test to share a single command live and exit with its exit code, or pipe anything into shellshare --stdin --json. Machine-readable docs live at shellshare.net/llms.txt.

Can I recover the password to a custom room?

No. However, the rooms are deleted after a day of inactivity, so you can recreate it in 24 hours.

Can I run shellshare on Windows?

Yes. We have pre-built binaries for Linux, macOS (Intel and Apple Silicon), and Windows. When you download from https://get.shellshare.net, we automatically detect your operating system and give you the correct binary.

You can also pass the os query parameter to explicitly download a specific binary. The options are linux, windows, mac and mac-arm. For example, if you want to download the Linux binary regardless of your operating system, access https://get.shellshare.net/?os=linux.

Can I self-host shellshare?

Yes. The shellshare binary also includes the server. You can start it by running shellshare serve and accessing the server at http://localhost:3000. No data leaves your computer. To let other people access your server, add --tunnel (e.g. shellshare serve --tunnel): it uses cloudflared (which you need installed) to create a public link for your broadcast.

End-to-end encryption only works over HTTPS or localhost. If your viewers reach a self-hosted server over plain HTTP, for example a teacher sharing their terminal with students on a lab's local network, broadcast with --disable-encryption to send in plaintext instead.

I found a problem! What do I do?

Please, open an issue at our issues page describing what the problem was, your shellshare version, and your operating system.

How can I help?

Great! Any help is appreciated. Check out the code on GitHub and the issues page. If you find anything that could be improved, go ahead, create an issue and send me a pull request.