awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
crossterm-rs avatar

crossterm-rs/crossterm

0
View on GitHub↗
4,098 stars·371 forks·Rust·MIT·20 views

Crossterm

Crossterm is a cross-platform Rust library for terminal manipulation, providing a low-level interface for controlling terminal state, cursor movement, and text styling. It acts as a cross-platform TTY interface that handles raw mode, alternate screen buffers, and terminal window metadata across different operating systems.

The library includes an ANSI text styling engine for applying RGB colors and text attributes to console output, as well as a terminal input event handler for capturing keyboard presses, mouse movements, and terminal resize events in real time. It also provides system clipboard integration for copying and pasting text.

The project covers broad capability areas including terminal state management, asynchronous input streaming, and cursor control. It provides tools for environment manipulation, such as clearing lines and updating window titles, and supports terminal state querying to retrieve window size and TTY status.

Features

  • Cross-Platform CLI Builders - Provides a cross-platform foundation for building consistent command line tools across Windows, macOS, and Linux.
  • Keyboard and Mouse Event Capture - Converts raw byte streams from the terminal into structured keyboard and mouse events.
  • Terminal Escape Sequences - Translates high-level commands into ANSI and VT100 escape sequences for terminal control.
  • Terminal State Accessors - Retrieves terminal window metadata, including size, pixel dimensions, and TTY status.
  • Terminal Mode Managers - Provides APIs for toggling raw mode and managing terminal modes to control display and input processing.
  • Cross-Platform TTY Interfaces - Provides a low-level interface for handling raw mode and alternate screen buffers across operating systems.
  • Low-Level Terminal Control - Provides precise control over raw mode, alternate screen buffers, and cursor positioning.
  • ANSI Escape Sequence Formatting - Implements a system for applying RGB colors and attributes to console output via ANSI escape sequences.
  • Terminal Manipulation Libraries - A comprehensive Rust library for controlling terminal state, cursor movement, and text styling.
  • Alternate Screen Management - Provides the ability to toggle between primary and alternate terminal screen buffers to isolate application UI.
  • Raw Mode Input Handlers - Disables line buffering and echo at the OS level to capture raw keyboard and mouse input.
  • Terminal Text Styling - Applies colors and text attributes to terminal output to improve visual hierarchy.
  • Terminal User Interfaces - Enables the construction of full-screen interactive terminal user interfaces with custom layouts and mouse support.
  • Terminal Text Attributes - Applies RGB/ANSI colors and text attributes like bold or italic to terminal output.
  • Terminal Environment Manipulation - Provides tools to clear lines, scroll the view, and update the terminal window title.
  • TTY Detection - Checks if the output stream is a terminal to decide between interactive features and plain text fallback.
  • Backend Abstractions - Uses a trait system to separate generic terminal operations from platform-specific backend implementations.
  • Terminal Event Handlers - Provides an event system for capturing real-time keyboard presses, mouse movements, and resize events.
  • Concurrent Terminal Output Coordination - Coordinates output updates to prevent visual flickering and overlapping during screen refreshes.
  • Cursor Position Mapping - Calculates absolute and relative screen positions to manage character placement and cursor visibility.
  • Cursor Visibility & Positioning - Moves the terminal cursor to specific coordinates and toggles its visibility.
  • Asynchronous Input Handlers - Produces asynchronous sequences of input events to process user interactions without blocking the main thread.
  • Real-time Input Capture - Captures keyboard and mouse events asynchronously for responsive command line interfaces.
  • Terminal Window Titles - Allows dynamically updating the terminal window title and other metadata using standard escape sequences.

Star history

Star history chart for crossterm-rs/crosstermStar history chart for crossterm-rs/crossterm

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does crossterm-rs/crossterm do?

Crossterm is a cross-platform Rust library for terminal manipulation, providing a low-level interface for controlling terminal state, cursor movement, and text styling. It acts as a cross-platform TTY interface that handles raw mode, alternate screen buffers, and terminal window metadata across different operating systems.

What are the main features of crossterm-rs/crossterm?

The main features of crossterm-rs/crossterm are: Cross-Platform CLI Builders, Keyboard and Mouse Event Capture, Terminal Escape Sequences, Terminal State Accessors, Terminal Mode Managers, Cross-Platform TTY Interfaces, Low-Level Terminal Control, ANSI Escape Sequence Formatting.

Which projects share features with crossterm-rs/crossterm?

Projects with overlapping indexed features include: cronvel/terminal-kit — Terminal-kit is a Node.js toolkit for building command-line applications and console user interfaces. It provides a… kovidgoyal/kitty — Kitty is a high-performance, GPU-accelerated terminal emulator designed to provide a consistent and extensible… nsf/termbox-go — termbox-go is a Go terminal user interface library and cross-platform terminal emulator abstraction. It provides a… gdamore/tcell — tcell is a Go terminal user interface library and framework for building cell-based applications. It functions as a… chalk/chalk — Chalk is a Node.js console formatter and terminal styling library used to add colors and text modifiers to command… anomalyco/opentui — Opentui is a terminal user interface framework for building interactive command line applications. It provides a…

Projects sharing features with Crossterm

These projects share indexed features with Crossterm. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • cronvel/terminal-kitcronvel avatar

    cronvel/terminal-kit

    3,366View on GitHub↗

    Terminal-kit is a Node.js toolkit for building command-line applications and console user interfaces. It provides a comprehensive suite of utilities for console text styling, terminal graphics rendering, input parsing, and interactive interface construction. The library features a cell-based text grid model, a component document tree for hierarchical layout of interactive widgets, and off-screen pixel buffering for multi-layered image composition and manipulation. It handles direct escape-sequence output control and raw-mode input parsing to manage display regions and capture user interaction

    JavaScript
    View on GitHub↗3,366
  • kovidgoyal/kittykovidgoyal avatar

    kovidgoyal/kitty

    33,462View on GitHub↗

    Kitty is a high-performance, GPU-accelerated terminal emulator designed to provide a consistent and extensible workspace across different operating systems. It leverages graphics hardware to render text, images, and complex layouts with low latency, while providing a robust environment for demanding command-line workflows. The project distinguishes itself through its integrated workspace management and programmable interface. It functions as a tiling window manager that organizes terminal windows, tabs, and layouts into persistent, keyboard-driven sessions. Users can automate complex workflow

    Pythoncgogolang
    View on GitHub↗33,462
  • gdamore/tcellgdamore avatar

    gdamore/tcell

    5,076View on GitHub↗

    tcell is a Go terminal user interface library and framework for building cell-based applications. It functions as a terminal emulator backend and input processor, utilizing a change-based diffing engine to manage screen state and efficiently render updates. The project is distinguished by its pluggable backend abstraction, which allows terminal interfaces to be rendered across physical terminals or compiled into WebAssembly for web browser display. It provides a virtual screen simulation to enable programmatic event injection and output inspection for automated application testing. Its capab

    Go
    View on GitHub↗5,076
  • chalk/chalkchalk avatar

    chalk/chalk

    23,262View on GitHub↗

    Chalk is a Node.js console formatter and terminal styling library used to add colors and text modifiers to command line output. It functions as a tool for formatting strings with foreground colors, background tints, and text styles using ANSI escape sequences. The library includes a terminal color support detector that automatically determines the color depth and capabilities of the current environment. It features an ANSI color downsampler that converts RGB, Hex, or 256-color values to the nearest compatible format based on the detected terminal capabilities. The project provides capabiliti

    JavaScriptansiansi-escape-codeschalk
    View on GitHub↗23,262
Compare all 30 related projects→