Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Playwright
  3. xterm.js

xterm.js

MITTypeScript6.0.0

A frontend component that enables fully-featured terminal emulation in web browsers.

Visit WebsiteGitHubGitHub
20.7k stars1.9k forks0 contributors

What is xterm.js?

Xterm.js is a frontend JavaScript library that enables developers to embed fully-featured terminal emulators in web applications. It provides a component that mimics traditional terminal behavior, allowing users to interact with command-line processes directly in the browser. It solves the problem of bringing terminal functionality to web-based IDEs, SSH clients, and development tools without requiring native applications.

Target Audience

Developers building web-based IDEs, SSH clients, coding platforms, or any application that requires interactive terminal access in the browser. It's particularly useful for projects like VS Code, Tabby, and Hyper that need embedded terminal emulation.

Value Proposition

Developers choose Xterm.js for its high performance, zero dependencies, and extensive compatibility with terminal applications. Its modular addon system and well-documented API make it highly customizable, while its accessibility features ensure inclusive user experiences.

Overview

A terminal for the web

Use Cases

Best For

  • Embedding terminals in web-based IDEs like VS Code
  • Building SSH web clients for remote server access
  • Creating interactive coding platforms with live terminal output
  • Developing educational tools that teach command-line skills
  • Adding terminal emulation to cloud development environments
  • Integrating shell access into DevOps and container management UIs

Not Ideal For

  • Applications needing a standalone, downloadable terminal app for desktop use without web integration
  • Projects that only require displaying static command output without interactive terminal emulation
  • Environments with mandatory support for legacy browsers like Internet Explorer
  • Use cases lacking a backend server to handle pseudoterminal processes (e.g., node-pty)

Pros & Cons

Pros

Blazing Fast Performance

Includes an optional GPU-accelerated WebGL renderer for smooth scrolling and rendering, making it ideal for high-output terminals in IDEs like VS Code.

Zero Dependencies Core

The main library has no external dependencies, ensuring lightweight integration and minimal bundle size for web applications.

Extensive Unicode Support

Supports CJK characters, emojis, and IMEs out of the box, with experimental addons for advanced features like grapheme clustering.

Modular Addon System

Well-documented API allows extending functionality with maintained addons for links, search, theming, and more, enabling customization without bloat.

Built-in Accessibility

Features screen reader mode and minimum contrast ratio support in the core CSS, promoting inclusive design with minimal setup.

Cons

Backend Dependency Required

Cannot function standalone; must be connected to a server-side process like node-pty via WebSockets, adding deployment complexity and overhead.

Addon Fragmentation

Essential features such as web links, image support, or ligatures require separate addon installations, increasing setup steps and potential bundle size.

Limited Legacy Browser Support

Officially only targets modern evergreen browsers (Chrome, Firefox, Safari, Edge), excluding users in environments with older or niche browsers.

Beta Build Instability

Beta releases are continuously published and used by projects like VS Code, but they can contain breaking changes or bugs, posing risks for production stability.

Frequently Asked Questions

Quick Stats

Stars20,694
Forks1,894
Contributors0
Open Issues137
Last commit2 days ago
CreatedSince 2014

Tags

#terminal-emulator#developer-tools#unicode#ssh-client#terminal#tty#pty#xterm#accessibility#development#frontend#typescript#console#javascript-library#vt100#webgl#web-component#ssh

Built With

T
TypeScript
N
Node.js
n
npm

Links & Resources

Website

Included in

Playwright1.4k
Auto-fetched 20 hours ago

Related Projects

VS CodeVS Code

Visual Studio Code

Stars186,062
Forks40,379
Last commit19 hours ago
Elastic APM JS agentElastic APM JS agent

The Elastic APM Real User Monitoring (RUM) JavaScript agent is an open-source library that collects performance metrics and error data from end-user browsers. It integrates with the Elastic APM ecosystem to provide insights into frontend application performance, helping developers identify and resolve issues affecting user experience. ## Key Features - **Performance Monitoring** — Tracks page load times, resource timings, and user interactions to measure frontend performance. - **Error Tracking** — Captures JavaScript errors, including unhandled exceptions and promise rejections, with stack traces. - **Distributed Tracing** — Correlates frontend requests with backend services by propagating trace context across service boundaries. - **Custom Metrics** — Allows developers to instrument custom transactions and spans for specific application workflows. - **Browser Support** — Works across modern browsers and provides polyfills for broader compatibility. ## Philosophy The agent is designed to be lightweight and non-intrusive, prioritizing minimal performance overhead while delivering comprehensive observability data for web applications.

Stars301
Forks155
Last commit4 days ago
playwright-examplesplaywright-examples

Playwright Examples is a repository showcasing various testing scenarios using the Playwright framework. It provides practical, runnable examples that help developers understand how to implement effective end-to-end tests for web applications. ## Key Features - **Cross-Browser Testing** — Examples for testing across Chromium, Firefox, and WebKit with a single API. - **UI Mode** — Demonstrates using Playwright's built-in UI for visually running and debugging tests. - **Automation Scenarios** — Includes examples for common web automation tasks like form filling, navigation, and interactions. - **Visual Testing** — Shows how to implement visual regression testing and screenshot comparisons. - **Network Mocking** — Examples for intercepting and mocking network requests to test different conditions. ## Philosophy Playwright Examples follows a hands-on, practical approach to teaching testing best practices through working code that developers can run and modify immediately.

Stars129
Forks79
Last commit7 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub