Build terminals in the browser
Getting Started
First you need to install the module, we ship exclusively through npm so you need that installed and then add xterm.js as a dependency by running:
To start using xterm.js on your browser, add the xterm.js and xterm.css to the head of your html page. Then create a <div id="terminal"></div> onto which xterm can attach itself. Finally instantiate the Terminal object and then call the open function with the DOM object of the div.
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="node_modules/xterm/css/xterm.css" />
<script src="node_modules/xterm/lib/xterm.js"></script>
</head>
<body>
<div id="terminal"></div>
<script>
var term = new Terminal();
term.open(document.getElementById('terminal'));
term.write('Hello from \x1B[1;3;31mxterm.js\x1B[0m $ ')
</script>
</body>
</html>
Real-world uses
Xterm.js is used in several world-class applications to provide great terminal experiences.
- SourceLair: In-browser IDE that provides its users with fully-featured Linux terminals based on xterm.js.
- Microsoft Visual Studio Code: Modern, versatile and powerful open source code editor that provides an integrated terminal based on xterm.js.
- ttyd: A command-line tool for sharing terminal over the web, with fully-featured terminal emulation based on xterm.js.
- Katacoda: Katacoda is an Interactive Learning Platform for software developers, covering the latest Cloud Native technologies.
- Eclipse Che: Developer workspace server, cloud IDE, and Eclipse next-generation IDE.
- Codenvy: Cloud workspaces for development teams.
- CoderPad: Online interviewing platform for programmers. Run code in many programming languages, with results displayed by xterm.js.
- WebSSH2: A web based SSH2 client using xterm.js, socket.io, and ssh2.
- Spyder Terminal: A full fledged system terminal embedded on Spyder IDE.
- Cloud Commander: Orthodox web file manager with console and editor.
- Codevolve: Online platform for interactive coding and web development courses. Live container-backed terminal uses xterm.js.
- RStudio: RStudio is an integrated development environment (IDE) for R.
- Terminal for Atom: A simple terminal for the Atom text editor.
- Eclipse Orion: A modern, open source software development environment that runs in the cloud. Code, deploy and run in the cloud.
- Gravitational Teleport: Gravitational Teleport is a modern SSH server for remotely accessing clusters of Linux servers via SSH or HTTPS.
- Hexlet: Practical programming courses (JavaScript, PHP, Unix, databases, functional programming). A steady path from the first line of code to the first job.
- Selenoid UI: Simple UI for the scallable golang implementation of Selenium Hub named Selenoid. We use XTerm for streaming logs over websockets from docker containers.
- Portainer: Simple management UI for Docker.
- SSHy: HTML5 Based SSHv2 Web Client with E2E encryption utilising xterm.js, SJCL & websockets.
- JupyterLab: An extensible computational environment for Jupyter, supporting interactive data science and scientific computing across all programming languages.
- Theia: Theia is a cloud & desktop IDE framework implemented in TypeScript.
- Opshell Ops Helper tool to make life easier working with AWS instances across multiple organizations.
- Proxmox VE: Proxmox VE is a complete open-source platform for enterprise virtualization. It uses xterm.js for container terminals and the host shell.
- Script Runner: Run scripts (or a shell) in Atom.
- Whack Whack Terminal: Terminal emulator for Visual Studio 2017.
- VTerm: Extensible terminal emulator based on Electron and React.
- electerm: electerm is a terminal/ssh/sftp client(mac, win, linux) based on electron/node-pty/xterm.
- Kubebox: Terminal console for Kubernetes clusters.
- Azure Cloud Shell: Azure Cloud Shell is a Microsoft-managed admin machine built on Azure, for Azure.
- atom-xterm: Atom plugin for providing terminals inside your Atom workspace.
- rtty: Access your terminals from anywhere via the web.
- Pisth: An SFTP and SSH client for iOS.
- abstruse: Abstruse CI is a continuous integration platform based on Node.JS and Docker.
- Azure Data Studio: A data management tool that enables working with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.
- FreeMAN: A free, cross-platform file manager for power users.
- Fluent Terminal: A terminal emulator based on UWP and web technologies.
- Hyper: A terminal built on web technologies.
- Diag: A better way to troubleshoot problems faster. Capture, share and reapply troubleshooting knowledge so you can focus on solving problems that matter.
- GoTTY: A simple command line tool that shares your terminal as a web application based on xterm.js.
- genact: A nonsense activity generator.
- cPanel & WHM: The hosting platform of choice.
- Nutanix: Nutanix Enterprise Cloud uses xterm in the webssh functionality within Nutanix Calm, and is also looking to move our old noserial (termjs) functionality to xterm.js.
- SSH Web Client: SSH Web Client with PHP.
- Shellvault: The cloud-based SSH terminal you can access from anywhere.
- Juno: A flexible Julia IDE, based on Atom.
- webssh: Web based ssh client.
- info-beamer hosted: Uses xterm.js to manage digital signage devices from the web dashboard.
- Jumpserver: Jumpserver Luna project, Jumpserver is a bastion server project, Luna use xterm.js for web terminal emulation.
- LxdMosaic: Uses xterm.js to give terminal access to containers through LXD
- CodeInterview.io: A coding interview platform in 25+ languages and many web frameworks. Uses xterm.js to provide shell access.
- Bastillion: Bastillion is an open-source web-based SSH console that centrally manages administrative access to systems.
- PHP App Server: Create lightweight, installable almost-native applications for desktop OSes. ExecTerminal (nicely wraps the xterm.js Terminal), TerminalManager, and RunProcessSDK are self-contained, reusable ES5+ compliant Javascript components.
- NgTerminal: NgTerminal is a web terminal that leverages xterm.js on Angular 7+. You can easily add it into your application by adding
<ng-terminal></ng-terminal>into your component. - tty-share: Extremely simple terminal sharing over the Internet.
from Hacker News https://xtermjs.org/
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.