cube-tui 0.1.6

Terminal UI timer and session manager for speedcubing, with optional web dashboard and BLE (GAN) timer support.
cube-tui-0.1.6 is not a library.

cube-tui

Crates.io

A terminal UI timer and session manager for speedcubing.

teaser

Out of the box, it's a lightweight TUI timer that lets you time solves, scramble, and check basic stats directly from your terminal. All your session data is saved locally.

Requirements

Installation & Features

You can install the app globally using Cargo. By default, it installs the core terminal app without any heavy dependencies:

cargo install cube-tui

If you want extra functionality, you can enable specific features during installation depending on your setup.

Dashboard

Spins up a local web server (localhost) with a companion app. This web UI can be used to look at your solve history and advanced statistics.

To install with the dashboard included:

cargo install cube-tui --features dashboard

Note: The build script will automatically use Bun to install dependencies and build the web frontend, embedding it directly into the executable.

WCA Scrambles

Uses cubing.js scramble generation for WCA events (instead of the built-in random generator).

To install with WCA scrambles support:

cargo install cube-tui --features wca-scrambles

When this feature is enabled, cube uses WCA API scrambles by default. If the local scrambles app cannot be started, it automatically falls back to the built-in random generator.

Bluetooth

Allows the app to connect directly to Bluetooth Low Energy (BLE) timers. Right now, only the GAN timer is supported.

To install with Bluetooth support:

cargo install cube-tui --features bluetooth

All Features

If you want dashboard, Bluetooth timer support, and WCA scramble API support:

cargo install cube-tui --all-features

Usage

Run the terminal app:

cube

To see all the commands run

cube --help

If you installed from source, you can also run it directly from the project root:

cargo run --release

If you installed with the dashboard feature, the command:

cube dashboard

will start the app with dashboard support enabled.

Use a custom port if needed:

cube dashboard --port 8080

The default port is 7799.