Xterm.js - A Terminal for the Web

  •        632

Xterm.js is a front-end component written in TypeScript that lets applications bring fully-featured terminals to their users in the browser. It's used by popular projects such as VS Code, Hyper and Theia. Xterm.js is not bash, it can be connected to processes like bash and let you interact with them (provide input, receive output). It works with most terminal apps such as bash, vim, and tmux, including support for curses-based apps and mouse events.

https://xtermjs.org/
https://github.com/xtermjs/xterm.js

Tags
Implementation
License
Platform

   




Related Projects

aminal - A modern cross-platform terminal emulator in Go

  •    Go

Aminal is a modern terminal emulator for Mac/Linux/Windows implemented in Golang and utilising OpenGL. The project is experimental at the moment, so you probably won't want to rely on Aminal as your main terminal for a while.

upterm - A terminal emulator for the 21st century.

  •    TypeScript

Upterm (formerly Black Screen) is an IDE in the world of terminals. Strictly speaking, it's both a terminal emulator and an interactive shell based on Electron. Upterm shows the autocompletion box as you type and tries to be smart about what to suggest. Often you can find useful additional information on the right side of the autocompletion, e.g. expanded alias value, command descriptions, value of the previous directory (cd -), etc.

tty.js - A terminal for your browser, using node/express/socket.io

  •    Javascript

A terminal in your browser using node.js and socket.io. Based on Fabrice Bellard's vt100 for jslinux.For the standalone web terminal, see term.js.

ttyd - Share your terminal over the web

  •    C

ttyd is a simple command-line tool for sharing terminal over the web. ❤ Special thanks to JetBrains for sponsoring the opensource license to this project.

Chalk - Terminal string styling done right

  •    Javascript

Chalk comes with an easy to use composable API where you just chain and nest the styles you want. Chain styles and call the last one as a method with a string argument. Order doesn't matter, and later styles take precedent in case of a conflict. This simply means that chalk.red.yellow.green is equivalent to chalk.green.


term.js - A terminal written in javascript.

  •    Javascript

A full xterm clone written in javascript. Used by tty.js.⚠️ This project is no longer maintained ⚠️. For a maintained fork take a look at sourcelair/xterm.js.

hterm - "HTML Terminal", or hterm, is an xterm-compatible terminal emulator written entirely in JavaScript

  •    

"HTML Terminal", or hterm, is an xterm-compatible terminal emulator written entirely in JavaScript. It is intended to be fast enough and correct enough to compete with native terminals such as xterm, gnome-terminal, konsole and Terminal.app.

terminal

  •    Javascript

Terminal.js is a rendering engine for vt100-like terminals. It is written from scratch and supports most commonly used escape sequences.

tilda - A Gtk based drop down terminal for Linux and Unix

  •    C

Tilda is a terminal emulator and can be compared with other popular terminal emulators such as gnome-terminal (Gnome), Konsole (KDE), xterm and many others. The specialities of Tilda are that it does not behave like a normal window but instead it can be pulled up and down from the top of the screen with a special hotkey. Additionally Tilda is highly configurable. It is possible to configure the hotkeys for keybindings, change the appearance and many options that affect the behavior of Tilda. The screen shots below show some of the options that Tilda provides. Starting with version 1.4 Tilda's keybindings page switches to a new list based layout that is easier to use.

node-pty - Fork pseudoterminals in Node.JS

  •    TypeScript

forkpty(3) bindings for node.js. This allows you to fork processes with pseudoterminal file descriptors. It returns a terminal object which allows reads and writes. node-pty supports Linux, macOS and Windows. Windows support is possible by utilizing the winpty library.

tty-progressbar - A flexible progress bar drawing in terminal emulators

  •    Ruby

A flexible progress bars drawing in terminal emulators. TTY::ProgressBar provides independent progress bars component for TTY toolkit.

tpp - Text Powerpoint

  •    Ruby

tpp stands for text presentation program and is an ncurses-based presentation tool. The presentation can be written with your favorite editor in a simple description format and then shown on any text terminal that is supported by ncurses - ranging from an old VT100 to the Linux framebuffer to an xterm. On the lower left side of your terminal you will notice the current slide number and the total number of slides. Left of that, a ‘*’ will appear when the end of the current slide has been reached. If no ‘*’ appears, pressing space bar the next time will show the next entry on the page (separated by ‘—’). You are also able to go to the next/previous page at this point.

browsh - A fully-modern text-based browser, rendering to TTY and browsers

  •    Javascript

Not all the world has good Internet. If you only have a 3kbps internet connection tethered from a phone, then it's good to SSH into a server and browse the web through, say, elinks. That way the server downloads the web pages and uses the limited bandwidth of an SSH connection to display the result. However, traditional text-based browsers lack JS and all other modern HTML5 support. Browsh is different in that it's backed by a real browser, namely headless Firefox, to create a purely text-based version of web pages and web apps. These can be easily rendered in a terminal or indeed, ironically, in another browser. Do note that currently the browser client doesn't have feature parity with the terminal client.

vim-bracketed-paste - Handles bracketed-paste-mode in vim (aka. automatic `:set paste`)

  •    Vim

Otherwise just copy-paste everything from plugin/bracketed-paste.vim into your ~/.vimrc. You need to be using a modern xterm-compatible terminal emulator that supports bracketed paste mode. xterm, urxvt, iTerm2, gnome-terminal (and other terminals using libvte) are known to work.

tcell - Tcell is an alternate terminal package, similar in some ways to termbox, but better in others

  •    Go

Package tcell provides a cell based view for text terminals, like xterm. It was inspired by termbox, but differs from termbox in some important ways. It also adds substantial functionality beyond termbox. First, it includes a full parser and expander for terminfo capability strings, so that it can avoid hard coding escape strings for formatting. It also favors portability, and includes support for all POSIX systems.

kitty - A cross-platform, fast, feature full, GPU based terminal emulator

  •    C

A cross-platform, fast, feature full, GPU based terminal emulator. It offloads rendering to the GPU for lower system load and buttery smooth scrolling. Uses threaded rendering to minimize input latency. It supports all modern terminal features: graphics (images), unicode, true-color, OpenType ligatures, mouse protocol, hyperlinks, focus tracking, bracketed paste and several new terminal protocol extensions.

Dave's Telnet

  •    C

dtelnet: A Free Telnet Client for Windows 16/32 Emulates terminal types 'linux,xterm,rxvt,vt100,vt320,vt420' (rxvt is the preferred), talks protocols 'telnet' and 'login'.

iTerm.app

  •    Objective-C

iTerm is an enhanced terminal emulator program for MacOS X written in Objective-C. It features VT100/ANSI/XTERM emulation, full i18n support, full-screen, multi-tab and other convenient GUI features. This project is indefinitely on hold, and we recommend that you try http://www.iterm2.com/ instead.

cli-color - Colors and formatting for the console

  •    Javascript

Colors, formatting and other goodies for the console. This package won't mess with built-ins and provides neat way to predefine formatting patterns, see below. Styles will display correctly if font used in your console supports them.

notty - A new kind of terminal

  •    Rust

notty is a virtual terminal like xterm, gnome-vte, sh, or rxvt. Unlike these programs, notty is not intended to emulate a DEC VT-series physical video terminal, or any other physical device. Instead, notty is an experimental project to bring new features to the command-line which would not have been possible for the physical terminals other terminals emulate. Current command-line tools have stagnated (if you prefer, 'stabilized') around the ECMA-48/ISO 6429/ANSI X3.64 escape code protocol, which is defined on the basis of the capabilities of 1980s video terminal devices. Essentially all terminals in use today are virtual terminals being run on devices which are significantly more capable than these ancient machines, and yet the terminal environment has not kept pace with these developments. The last revision of the ANSI escape code protocol was released in 1991.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.