cube-tui
A terminal UI timer and session manager for speedcubing.

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
- Rust & Cargo
- Bun (required for the
dashboardfeature) - Java (required for the
wca-scramblesfeature)
Installation & Features
You can install the app globally using Cargo. By default, it installs the core terminal app without any heavy dependencies:
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:
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 tnoodle-lib scramble generation for WCA events (instead of the built-in random generator).
To install with WCA scrambles support:
It uses JNI to call the official WCA scramble library, which is written in Java.
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:
All Features
If you want dashboard, Bluetooth timer support, and WCA scramble API support:
Usage
Run the terminal app:
To see all the commands run
If you installed from source, you can also run it directly from the project root:
If you installed with the dashboard feature, the command:
will start the app with dashboard support enabled.
Use a custom port if needed:
The default port is 7799.