Repolode
gyscos

gyscos/cursive

A Rust library for building rich text user interfaces (TUI) in terminal applications, with a crossterm backend by default.

Stars
4,857
Forks
272
Open issues
207
Last commit
27 days ago

What is it?

Cursive is a Text User Interface library for Rust that lets developers build interactive terminal applications with windows, dialogs, menus and layouts. It uses the crossterm backend by default, and other backends are available.

Applications are assembled from ready-made views such as dialogs, text views, and selection lists, and the library runs an event loop that dispatches keyboard input and callbacks. Its stated goals include ease of use for simple apps and enough flexibility for complex real-time programs or games, with most features working on a plain Linux TTY.

The project also has a third-party ecosystem of extra views, such as tables, tabs, trees, markup rendering, and a Vim-like key wrapper.

Key features

  • 01Builds terminal UIs from ready-made views such as dialogs, text views and lists.
  • 02Uses the crossterm backend by default, with other backends available.
  • 03Provides an event loop that handles keyboard input and callbacks.
  • 04Supports basic colors and UTF-8 output, with initial wide-character support.
  • 05Has a set of third-party view crates for tables, tabs, trees and more.

Use cases

  • Writing interactive command-line tools that need menus, forms or dialogs.
  • Building terminal dashboards or configuration tools similar to menuconfig or nmtui.
  • Creating simple terminal games in Rust.

Quick start

  1. 1

    Add the cursive crate to your Cargo.toml

    cargo add cursive
  2. 2

    Create a root and run a simple dialog app in main.rs

Things to know

  • Cursive expects a UTF-8 locale, so raw Linux TTYs may have limited support.
  • Right-to-left text support is still very early.

Topics

FAQ

What is cursive?
A Rust library for building rich text user interfaces (TUI) in terminal applications, with a crossterm backend by default. Cursive is a Text User Interface library for Rust that lets developers build interactive terminal applications with windows, dialogs, menus and layouts. It uses the crossterm backend by default, and other backends are available.
Is cursive free to use? What license does it have?
cursive is open source under the MIT license. Check the license terms before using it in commercial products.
Is cursive still maintained?
Actively maintained. The last commit to cursive was on Sep 25, 2026.
What can I use cursive for?
Writing interactive command-line tools that need menus, forms or dialogs. Building terminal dashboards or configuration tools similar to menuconfig or nmtui. Creating simple terminal games in Rust.
How do I install cursive?
Add the cursive crate to your Cargo.toml: cargo add cursive Create a root and run a simple dialog app in main.rs
Where can I get cursive?
The source code and installation instructions are on GitHub: https://github.com/gyscos/cursive

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects