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:
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 cubing.js scramble generation for WCA events (instead of the built-in random generator).
To install with WCA scrambles support:
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:
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.