Get Paid Support

Summary

jQuery Terminal is Open Source JavaScript library for creating command line interpreters in your applications.

You can use this JavaScript Terminal library to create interactive web-based terminal application on your website. Where commands are defined by you. You can define them on the server or in browser's JavaScript.

It can automatically call JSON-RPC service, when the user types commands. Alternatively, you can provide an object with methods; each method will be invoked on the user's command (python command can create python interpreter). An object can have nested objects which will create a nested interpreter (you can create interactive menu of advanture game with this).

You can also use a function in which you can parse user commands by yourself (you have full control of what user type into terminal).

It's ideal if you want to provide additional functionality for power users. It can also be used as debugging tool or you can use it to create cool looking interactive portfolio website, that look like GNU/Linux, MacOSX or Windows WSL terminal.

You can use it to very create fast, debugger for your REST API, before you start writing your Front-End code. Or you can add eval on Back-End of your application and debug the app while it's running, this in this R/shiny shell.

Your interactive web based terminal application, will work the same as native terminal emulator, but the code for commands is provided by you and it will work in a browser and on mobile.

How you can help?

I've never charged anything for this project, even did a lot of support for free. I'm still willing to help even if I offer paid support. Not everyone can afford paying me money. You can help by leaving meaningful comment or by starting a discussion, even negative feedback is valuable. I will know that people like this web based terminal. Visitor statistics don't tell everthing.

Thanks

I want to thanks a few services that provided free accounts for this Open Source project:

Here are statuses of those services on master branch:

And devel branch:

jQuery Terminal Features

JavaScript Terminal Demo

This is a simple demo, using a JavaScript interpreter. (If the cursor is not blinking, click on the terminal to activate it.) You can type any JavaScript expression, there is debug function dir (like in Python).

You can use jQuery's "$" method to manipulate the page. You also have access to this terminal in the "term" variable. Try dir(term) or demo() for demo typing animation.

NOTE: for unknow reason this demo doesn't work on Mobile, but I assure you that the library do works on mobile. Check full screen version. The issue with the demo is tracked on GitHub issue.

JavaScript code:

// ref: https://stackoverflow.com/q/67322922/387194
var __EVAL = (s) => eval(`void (__EVAL = ${__EVAL}); ${s}`);

jQuery(function($, undefined) {
    $('#term_demo').terminal(function(command) {
        if (command !== '') {
            try {
                var result = __EVAL(command);
                if (result !== undefined) {
                    this.echo(new String(result));
                }
            } catch(e) {
                this.error(new String(e));
            }
        }
    }, {
        greetings: 'JavaScript Interpreter',
        name: 'js_demo',
        height: 200,
        prompt: 'js> '
    });
});

You can also try JavaScript REPL Online, with Book about JavaScript and Terminal on 404 Error page (with a lot of features like chat and games).

Download

Complete source with few examples from github

Or just the files:

Installation

You can download files locally or use:

Bower:

bower install jquery.terminal

NPM:

npm install --save jquery.terminal

Then you can include the scripts in your HTML

:
<script src="https://cdn.jsdelivr.net/npm/jquery"></script>
<script src="js/jquery.terminal-2.41.2.min.js"></script>
<!-- With modern browsers, jQuery mousewheel is not actually needed; scrolling will still work -->
<script src="js/jquery.mousewheel-min.js"></script>
<link href="css/jquery.terminal-2.41.2.min.css" rel="stylesheet"/>

You can also grab the files using a CDN (Content Distribution Network):

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.terminal/2.41.2/js/jquery.terminal.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jquery.terminal/2.41.2/css/jquery.terminal.min.css" rel="stylesheet"/>

or

<script src="https://cdn.jsdelivr.net/npm/jquery.terminal/js/jquery.terminal.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/jquery.terminal/css/jquery.terminal.min.css" rel="stylesheet"/>

And optional but recomended:

<script src="https://unpkg.com/js-polyfills/keyboard.js"></script>
<script src="https://cdn.jsdelivr.net/gh/jcubic/static/js/wcwidth.js"></script>

If you always want the latest version, you can grab the files from unpkg without specifying version number

<script src="https://unpkg.com/jquery.terminal/js/jquery.terminal.js"></script>
<link href="https://unpkg.com/jquery.terminal/css/jquery.terminal.css" rel="stylesheet"/>

License

The jQuery Terminal Emulator plugin is released under the MIT license.

It contains:

Comments

You can use the terminal below to leave a comment. Click to activate. If you have a question, you can create an issue on github, ask on stackoverflow (you can use the "jquery-terminal" tag). You can also send email with SO question or jump to the chat.

If you have a feature request, you can also add a GitHub issue.

If you've found an issue with this website, you can add issue to the jquery.terminal-www repo.

If you'll ask question in Comments, you can subscribe to comments RSS to see reply, when it's added.