crossterm-rs/crossterm

Cross platform terminal library rust

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 4 minutes ago
Added to GitGenius on September 16th, 2026
Created on January 3rd, 2018
Open Issues & Pull Requests: 246 (+0)
GitHub issues: Enabled
Number of forks: 423
Total Stargazers: 4,224 (+0)
Total Subscribers: 23 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 19.8 hours
Mean response time: 148.6 days
90th percentile: 537.9 days
Tracked items: 85

Most active contributors

Sign in to see contributor activity.

How this project is maintained

95% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 56% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 75
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 678 days
Stale 30+ days: 68
Stale 90+ days: 48

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 1

Top labels

  • enhancement (4)
  • difficulty: easy (2)
  • help wanted (2)
  • bug (1)
  • good_first_issue (1)
  • in_progress (1)

Most active issues this week

Detailed Description

Crossterm is a cross-platform terminal manipulation library for Rust that provides unified abstractions for terminal control across Windows, macOS, and Linux.

The library solves the problem of platform-specific terminal APIs by offering a single interface for common terminal operations. It abstracts away differences in how each operating system handles terminal input, output, cursor positioning, and styling. Developers can write terminal applications once and run them on any platform without conditional compilation or platform-specific code paths. The tool handles low-level details like raw mode input, event handling, color output, and cursor control through a consistent API.

Crossterm suits projects that need reliable cross-platform terminal interaction, from simple CLI tools to complex text user interfaces. It is particularly valuable for developers building terminal applications in Rust who want to avoid the fragmentation of platform-specific libraries. The library provides both synchronous and asynchronous event handling, making it adaptable to different application architectures. Projects that require fine-grained control over terminal behavior, such as custom input handling or precise cursor positioning, will find the granular API useful.

The project maintains active engagement with its user base through issue responses and pull request reviews. Development includes regular updates to handle edge cases and improve compatibility across platforms. The maintainers respond to bug reports and feature requests, indicating ongoing stewardship of the codebase. The project accepts community contributions and integrates improvements from external developers. Documentation is kept current to reflect the library's capabilities and usage patterns.