crossterm_cursor 0.2.4

A cross-platform library for moving the terminal cursor.

Crossterm Cursor | cross-platform cursor movement.

Lines of Code Latest Version MIT docs Join us on Discord

This crate allows you to move the terminal cursor cross-platform. It supports all UNIX and windows terminals down to windows 7 (not all terminals are tested see Tested Terminals for more info)

This crate is a sub-crate of crossterm to move the cursor, and can be use individually.

Other sub-crates are:

When you want to use other modules as well you might want to use crossterm with feature flags.

Table of contents:

Getting Started

This documentation is only for crossterm_cursor version 0.2. Also, check out the examples folders with detailed examples for all functionality of this crate.

Add the crossterm_cursor package to your Cargo.toml file.

crossterm_cursor = "0.2"

Import the crossterm_cursor modules you want to use.

extern crate crossterm_cursor;

pub use crossterm_cursor::{cursor, TerminalCursor};

Useful Links


These are the features of this crate:

  • Cross-platform
  • Multithreaded (send, sync)
  • Detailed Documentation
  • Few Dependencies
  • Cursor
    • Moving n times (up, down, left, right)
    • Position (set/get)
    • Store cursor position and resetting to that later
    • Hiding/Showing
    • Blinking Cursor (only some terminals are supporting this)


The examples folder has more complete and verbose examples.

use crossterm_cursor::cursor;

let mut cursor = cursor();

/// Moving the cursor
// Set the cursor to position X: 10, Y: 5 in the terminal

// Move the cursor up,right,down,left 3 cells.

/// Safe the current cursor position to recall later
// Goto X: 5 Y: 5
// Safe cursor position: X: 5 Y: 5
// Goto X: 5 Y: 20
// Print at X: 5 Y: 20.
// Reset back to X: 5 Y: 5.
// Print 'Back' at X: 5 Y: 5.

// hide cursor
// show cursor;
// blink or not blinking of the cursor (not widely supported)

Tested terminals

  • Windows Powershell
    • Windows 10 (pro)
  • Windows CMD
    • Windows 10 (pro)
    • Windows 8.1 (N)
  • Ubuntu Desktop Terminal
    • Ubuntu 17.10
  • (Arch, Manjaro) KDE Konsole
  • Linux Mint

This crate supports all Unix terminals and windows terminals down to Windows 7 but not all of them have been tested. If you have used this library for a terminal other than the above list without issues feel free to add it to the above list, I really would appreciate it.


  • Timon Post - Project Owner & creator


This project is licensed under the MIT License - see the file for details