A frontend component that enables fully-featured terminal emulation in web browsers.
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.
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.
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.
A terminal for the web
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes an optional GPU-accelerated WebGL renderer for smooth scrolling and rendering, making it ideal for high-output terminals in IDEs like VS Code.
The main library has no external dependencies, ensuring lightweight integration and minimal bundle size for web applications.
Supports CJK characters, emojis, and IMEs out of the box, with experimental addons for advanced features like grapheme clustering.
Well-documented API allows extending functionality with maintained addons for links, search, theming, and more, enabling customization without bloat.
Features screen reader mode and minimum contrast ratio support in the core CSS, promoting inclusive design with minimal setup.
Cannot function standalone; must be connected to a server-side process like node-pty via WebSockets, adding deployment complexity and overhead.
Essential features such as web links, image support, or ligatures require separate addon installations, increasing setup steps and potential bundle size.
Officially only targets modern evergreen browsers (Chrome, Firefox, Safari, Edge), excluding users in environments with older or niche browsers.
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.