Skip to main content

A tool to share the contents of your terminal over the web

Project description

# termcast

termcast exists to make it absolutely trivial to stream the contents of your current terminal session over the web, so that friends/collaborators/students can follow along as you grep logs, configure a webserver, play nethack, whatever :)

![](https://raw.githubusercontent.com/lampholder/termcast/master/termcast.gif)

## How do I get it?

You can either git clone this repo and run the cli/termcast.py script, or (preferably) use pip. [If you don’t have pip, follow the instructions to get it here](https://pip.pypa.io/en/stable/installing/). You’ll also need to install tmux if you don’t have it already:

$ sudo apt-get install tmux $ pip install termcast –user

## How does it work?

It leverages a bunch of existing unix gubbins (script, tmux, named pipes) + python and websockets and a node js server to plug it all together.

Tmux is in the mix because:

  • It has a status bar that can be configured to show useful things

  • It supports specifying the dimensions of your terminal (independently of the window size)

## Current state:

N.B. If you see errors from tmux about configuration options, it might be that your version of tmux is old. Obviously it would be better if termcast detected and handled this automatically - it doesn’t, but you can try and run it with tmux configuration options compatible with older versions of tmux by running with the –old-tmux flag.

The pip termcast only works on python >= 2.7.9 because earlier versions can’t support SNI :(

termcast is in alpha but the happy path is actually working pretty well. There are still some issues, but they mostly pertain to the running of the server.

Relying on my server running at termcast.me for mission critical procedures is… not recommended. The server is currently a Single Point of Failure, and could go down at any time.

### Running your own server

You can run your own server - a dockerize version of the latest server instance is available at dockerhub, so this should be as simple as:

` docker run -p 80:8080 -d lampholder/termcast.me:v0.1 `

You can specify a host when running the termcast script using the –host flag.

## Usages of the installed script

$ termcast will launch a new session identified with a dictionary word randomly selected

$ termcast –width <width_in_columns> –height <height_in_rows> will initiate a session with specified dimensions

$ termcast –session <session_id> –token <session_token> will reconnect to an existing session

Remember - viewers will see your terminal stretched to fit the size of their browser window, so very small/very large terminals could look pretty ugly.

## Can I see it in action?

(Hopefully) an instance is up-and-streaming on: https://termcast.me/said

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

termcast-0.1a18.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

termcast-0.1a18-py2.py3-none-any.whl (6.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file termcast-0.1a18.tar.gz.

File metadata

  • Download URL: termcast-0.1a18.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for termcast-0.1a18.tar.gz
Algorithm Hash digest
SHA256 97e7a29bec070dcbf921bdcb81f50cab672f25ea8b9927bedea5635a8baf075f
MD5 d4e5b38df98654a53ec26b99d15de874
BLAKE2b-256 2eefc1c1ac674e97c47dd97fc058659efa181faf91c9ec266b0746f7f982d21e

See more details on using hashes here.

File details

Details for the file termcast-0.1a18-py2.py3-none-any.whl.

File metadata

  • Download URL: termcast-0.1a18-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for termcast-0.1a18-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c0dc61d9cd9b5cd5e97b6edb3810205773f99b01f2177538ed4c73cc21dcf80b
MD5 a70ebcf357d8aac1bfe332bdac36e6e2
BLAKE2b-256 995035c4b9ee066ea366c3d23363d52818481adf8152c0eb9e4c51d32491226e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page