Terminal recording and playback.
Terminal recording and playback, written in Go. All terminal recordings are currently saved as secret Gist postings.
Note: If Go is already installed, will use the currently installed version to install
termbacktime
. There is now an install script for Linux, Darwin, and Windows 10 using WSL. This will attempt to install the latest version of Go, defaulting back to 1.14. For other distributions please see the releases page. Go will be installed in$HOME/.goroot
as$GOROOT
and$GOPATH
is set to$HOME/go
.
curl -s -L https://termbackti.me/install.sh | bash
To install a different version of Go:
wget https://termbackti.me/install.sh
./install.sh <version>
For example, 1.19.0
would be ./install.sh 1.19.0
If you already have Go installed, you can manually install:
go get -u louist.dev/termbacktime
cd $GOPATH/src/louist.dev/termbacktime
make install
In order to submit recordings to Gist you must first authorize TermBackTime with GitHub.
We request access to the read:user
and gist
scopes. For more information, please see available scopes.
You can request an auth token from ~/auth or by running the following terminal command:
termbacktime auth
After authorizing TermBackTime with GitHub simply run termbacktime record
to start recording!
Please see termbacktime --help
for more options.
To start sharing your terminal over the web via WebRTC, simply run termbacktime live
and give the provided link to someone. Please see termbacktime live --help
for more options.
For now TermBackTime uses Google's STUN servers unless changed at compile time.
STUNServerOne = "stun:stun1.l.google.com:19302"
STUNServerTwo = "stun:stun2.l.google.com:19302"
A STUN server is used to detect network addresses. Please see https://en.wikipedia.org/wiki/STUN for more information.
termbacktime live
termbacktime live --turn <username>:<password>@<server>[:<port>]
termbacktime live --user <username> --password <password> --addr <server>[:<port>]
termbacktime live --no-turn
A TURN server is used to relay WebRTC data between clients. Please see https://webrtc.org/getting-started/turn-server for more information.
Please feel free to open a PR or an issue on GitHub. Convention for this repository is to fork it, create a branch feature/<feature name>
in your fork based on master
branch, and commit changes there. Once your changes are ready to merge back into this repository, squash your feature
branch into one commit and open a PR from your repository's feature branch into the dev
branch of this repository. Please make sure your master
branch is up to date with master
in this repo, and rebase your feature onto the tip of master
.
Please do not report security related issues, vulnerabilities or bugs to the issue tracker, or elsewhere in public. Instead report sensitive bugs by email to [email protected].
possible-bug
.termbacktime --version
string.
go version
, termbacktime version located in the VERSION
file, and the revision with git rev-parse --short HEAD
.You can build your own development builds via make build-dev
or make build-crosscompile-dev
.
I provide development server endpoints for playback + live terminal, login, and WebRTC signaling at:
Please note that these endpoints are under active development and may change or be unavailable at any time.