Terminal recorder: Record your termial session into HTML

Overview

terminal-recorder Dependency Status

NPM

Terminal recorder allows you to record your bash session, and export it to html so then you can share it with your friends.

Installation

NPM

$ [sudo] npm install -g terminal-recorder

Usage

$ terminal-recorder --help

  Usage: terminal-recorder [options]

  Options:

    -h, --help            output usage information
    -V, --version         output the version number
    -o, --outpath [path]  Add the specified [path] to place the folder
                            that will contain the recorded html files

# Start recording
$ terminal-recorder

# recording...
[type your stuff and then hit Ctrl+c]

# Notice a new folder was created

$ tree terminal-recorder-html/ -L 1
terminal-recorder-html/
├── bower_components
├── bower.json
├── css
├── index.html
└── js

# Just open the index.html with your favourite browser
$ firefox terminal-recorder-html/index.html &

# See the magic ;)

Final output looks like this Demo Pic

Features

  • Records all keystrokes sent to stdin
  • Saves stdout in a log file logs.txt
  • Export actions to html
  • Timeline indicator
  • Rollback actions

Comming soon

  • More templates
  • Define starting cmd (Other than bash)
  • Add param for picking cancelling key (Ctrl+c, Ctrl+d)
  • Specify terminal size

Experimenting

Open a terminal:

$ tail -f logs.txt

Open a second terminal:

$ terminal-recorder

Start typing in the second console, and look how the first one is mimicking your moves.

Known issues

  • Record all keys, including passwords. So be careful with that.

Cool Stuff

Cool things that you can do:

$ filget awesomeness # Impress your friends
$ nethack # Play nethack
$ vim # Teach your friends with vim
$ htop # Show server state
$ tmux # Open the terminal multiplexor
$ cmatrix # feel like neo :)

Credits

@cortezcristian

You might also like...

Terminal task list

Terminal task list

listr Terminal task list Install $ npm install --save listr Usage const execa = require('execa'); const Listr = require('listr'); const tasks = new

Jan 3, 2023

Display images in the terminal

Display images in the terminal

terminal-image Display images in the terminal Works in any terminal that supports colors. In iTerm, the image will be displayed in full resolution, si

Dec 25, 2022

:rainbow: Beautiful color gradients in terminal output

:rainbow:  Beautiful color gradients in terminal output

gradient-string Beautiful color gradients in terminal output Install $ npm i gradient-string Usage const gradient = require('gradient-string'); cons

Jan 3, 2023

Create clickable links in the terminal

Create clickable links in the terminal

terminal-link Create clickable links in the terminal Install $ npm install terminal-link Usage import terminalLink from 'terminal-link'; const link

Dec 31, 2022

Reliably get the terminal window size

term-size Reliably get the terminal window size Because process.stdout.columns doesn't exist when run non-interactively, for example, in a child proce

Oct 11, 2022

Truncate a string to a specific width in the terminal

cli-truncate Truncate a string to a specific width in the terminal Gracefully handles ANSI escapes. Like a string styled with chalk. It also supports

Oct 10, 2022

Execute shell commands in terminal

Execute shell commands in terminal

Execute shell commands in terminal

Dec 11, 2021

Just a minimal library to do some terminal stuff.

Just a minimal library to do some terminal stuff.

Termctl A simple library to do some basic terminal stuff. Usage const termctl = require("termctl"); Note: We have tested this on Linux Mint and Window

Sep 28, 2021

A terminal for a more modern age

A terminal for a more modern age

Downloads: Latest release Repositories: Debian/Ubuntu-based, RPM-based Latest nightly build This README is also available in: Korean 简体中文 Tabby (forme

Dec 30, 2022
Comments
  • Add Support for OSX

    Add Support for OSX

    • OSX pty.js is not working ok on Mac because of a header misconfiguration. More info:
      • https://github.com/chjj/pty.js#todo
      • http://stackoverflow.com/a/24981514/467034
      • https://github.com/chjj/pty.js/issues/93

    TODOs

    • pty.js v3.0 works on OSX now
    • update unsecure handlebars dep
    opened by cortezcristian 0
  • Bump handlebars from 4.0.14 to 4.7.6

    Bump handlebars from 4.0.14 to 4.7.6

    Bumps handlebars from 4.0.14 to 4.7.6.

    Changelog

    Sourced from handlebars's changelog.

    v4.7.6 - April 3rd, 2020

    Chore/Housekeeping:

    Compatibility notes:

    • Restored Node.js compatibility

    Commits

    v4.7.5 - April 2nd, 2020

    Chore/Housekeeping:

    • Node.js version support has been changed to v6+ Reverted in 4.7.6

    Compatibility notes:

    • Node.js < v6 is no longer supported Reverted in 4.7.6

    Commits

    v4.7.4 - April 1st, 2020

    Chore/Housekeeping:

    Compatibility notes:

    • No incompatibilities are to be expected

    Commits

    v4.7.3 - February 5th, 2020

    Chore/Housekeeping:

    • #1644 - Download links to aws broken on handlebarsjs.com - access denied (@Tea56)
    • Fix spelling and punctuation in changelog - d78cc73

    Bugfixes:

    • Add Type Definition for Handlebars.VERSION, Fixes #1647 - 4de51fe
    • Include Type Definition for runtime.js in Package - a32d05f

    Compatibility notes:

    ... (truncated)
    Commits
    Maintainer changes

    This version was pushed to npm by erisds, a new releaser for handlebars since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Owner
Cristian Cortez
Crazy web developer ;)
Cristian Cortez
Uses marked-terminal to render a README.md for any npm module in the terminal.

modhelp Uses marked-terminal to render a README.md for any npm module in the terminal. Now with built-in pager! Page up/down, arrow keys to scroll lin

Jason Livesay 23 Feb 8, 2022
Terminal ui for discord with interactive terminal

dickord why No fucking clue i was bored or something. why does it look dogshit Try and find a node module that supports terminal functions like trauma

Hima 3 Nov 7, 2022
📜 Create mutable log lines into the terminal, and give life to your logs!

Because Logging can be pretty and fun Installation $ npm install draftlog What it does It allows you to re-write a line of your log after being writt

Ivan Seidel 1.2k Dec 31, 2022
Translations with speech synthesis in your terminal as a node package

Normit Normit is an easy way to translate stuff in your terminal. You can check out its Ruby gem version termit. Installation npm install normit -g Us

Paweł Urbanek 234 Jan 1, 2023
Add a hungry turtle to your terminal and feed it every time you mistype 'npm' as 'nom'

Nom Does this ever happen to you? You happily code away on a project, navigating the command line like a pro, testing, error logging, installing packa

Meike Hankewicz 5 Apr 26, 2022
DataENV is a cli tool that allows you to save data temporarily using your terminal.

DataEnv CLI Instllation npm install -g dataenv Usage Table of Contents LocalStorage npx dataenv save Parameters npx dataenv show Parameters npx dataen

PGamerX 2 Feb 5, 2022
Sublime-like terminal-based text editor

slap ?? slap is a Sublime-like terminal-based text editor that strives to make editing from the terminal easier. It has: first-class mouse support (ev

slap 6.1k Jan 1, 2023
rtail(1) - Terminal output to the browser in seconds, using UNIX pipes.

rtail(1) Terminal output to the browser in seconds, using UNIX pipes. rtail is a command line utility that grabs every line in stdin and broadcasts it

Kilian Ciuffolo 1.6k Jan 6, 2023
Pipeable javascript. Quickly filter, map, and reduce from the terminal

Pipeable JavaScript - another utility like sed/awk/wc... but with JS! Quickly filter, map and reduce from the command line. Features a streaming API.

Daniel St. Jules 410 Dec 10, 2022