Skip to content

beorn/vterm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vterm

VT terminal emulator monorepo. Pure TypeScript, zero dependencies.

Packages

Package npm Description
vt100.js vt100.js VT220-era baseline — 8 colors, cursor, scroll regions, DA1/DSR
vterm.js vterm.js Modern terminal emulator — 100% of terminfo.dev features

Why two packages?

vt100.js is small and focused — it implements what a VT100/VT220/xterm terminal does, which covers ~90% of real-world terminal usage. It's the default backend for Termless test suites.

vterm.js is comprehensive — it targets 100% coverage of the terminfo.dev feature matrix: every SGR attribute, every cursor mode, every DEC private mode, every OSC/DCS sequence, device attribute responses, mouse tracking, synchronized output, text reflow, and Unicode rendering (emoji ZWJ, regional indicators, variation selectors).

Use vt100.js when you want fast and simple. Use vterm.js when you need everything.

Install

npm install vt100.js    # VT100-era emulator
npm install vterm.js    # Modern full-featured emulator

Quick Start

import { createVt100Screen } from "vt100.js"

const screen = createVt100Screen({ cols: 80, rows: 24 })
screen.process(new TextEncoder().encode("Hello, \x1b[1mBold\x1b[0m World!"))
console.log(screen.getText()) // "Hello, Bold World!"
import { createVtermScreen } from "vterm.js"

const screen = createVtermScreen({ cols: 80, rows: 24 })
screen.process(new TextEncoder().encode("\x1b[1;4:3;38;2;255;100;0mStyled\x1b[0m"))
const cell = screen.getCell(0, 0)
// cell.bold === true, cell.underline === "curly", cell.fg === { r: 255, g: 100, b: 0 }

Development

npm install
npm test          # Run all tests
npm run typecheck # TypeScript check

Ecosystem

  • Termless — headless terminal testing (uses vt100.js as default backend)
  • Terminfo.dev — terminal feature support tables (tests both packages)
  • Silvery — React TUI framework

License

MIT

About

Pure TypeScript VT100 terminal emulator. Zero dependencies, headless, fast.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors