7 releases
Uses new Rust 2024
| 0.1.6 | Mar 26, 2026 |
|---|---|
| 0.1.5 | Mar 26, 2026 |
#125 in Hardware support
215KB
5.5K
SLoC
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) - One of Node.js, Bun (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:
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.
Dependencies
~9–43MB
~590K SLoC