Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



13 Commits

Repository files navigation


The tiniest in-browser terminal you've ever seen. Check it out here.


tinyterm can be installed using npm, bower, or included from jsdelivr:

npm install tinyterm
bower install tinyterm
<link rel="stylesheet" href="//">
<!-- ... -->
<script src="//"></script>

The library uses a universal module definition, so it should work with whatever system you're using.


Creating a TinyTerm

Initialize a TinyTerm with:

var term = new TinyTerm(container);

If a DOM element is passed in as container, the TinyTerm element is appended to it. Otherwise, TinyTerm appends to document.body.

Adding commands

Add commands with the register method:

term.register('echo', {
  // required
  fn: function (arg1, arg2, arg3, /* ... */) {
    print(, ' '));
  // required
  desc: 'Write arguments to the standard output.',
  // optional, enables tab autocomplete
  arguments: ['foo', 'bar'],
  // optional alternate names for the command
  aliases: ['print', 'log']

The methods autocomplete, done, flash, help, print, process, realign, run, startLoading, and stopLoading are also exposed... you probably won't need to use them.


Pull-requests to the /app directory are welcome. Please create an issue if you plan on adding features, as it might be better suited as a plugin.

Please squash changes down to a single commit before making a pull-request.

Building the library

If you don't have gulp, you'll have to install it:

npm install -g gulp

After running

npm install

in the main directory, running


will watch the /app directory and build any changes to /dist.


Pull requests must adhere to the following code style guidelines, influenced heavily by idiomatic.js:

  • Put a space before the parens following if (), else if (), for (), while (), try (), and function () statements. Do not add padding spaces within these parens.
  • Put a space between closing braces ) and opening curly braces {.
  • Add padding spaces to curly braces that self-close on a single line: var littleObject = { name: 'tiny' };. Empty object literals do not require a space: {}.
  • Function definitions go at the top of their scope, followed immediately by vars.
  • If multiple lines are required for variable declarations, each new line should have its own var statement.
  • Indent using spaces.
  • Indentation width of 2.
  • No trailing whitespace.
  • Line-length limit of 80 characters.
  • If statements have to be broken across lines, end lines with an operator:
// example
var reallyLongVariableName = [1, 2, 3];
reallyLongVariableName = reallyLongVariableName.length > 4 ?
  reallyLongVariableName.slice(-4) :
  • Gulp will automatically lint everything through jshint. Don't make it complain.


Licensed under MIT. Created by rileyjshaw.


📟 The tiniest in-browser terminal you've ever seen.






Sponsor this project