Term Timer
Practice your speed cubing skills on your terminal, for a full 80's vibe.
Main Features
- Valid WCA scrambles
- From 2x2x2 to 7x7x7 cubes
- Free-play and recorded solves
- Colorfull cube display
- Handle Bluetooth cubes
- Detailled statistics and reconstructions
Other Features
- Metronome
- Inspection time
- Easy white cross
- Cube orientation control
- Seed control
- Full offline application
- csTimer and Cubeast import
Short demo
Examples usage
Start timing 3x3x3 solves :
term-timer solve
Start timing in Bluetooth showing the scrambled cube :
term-timer solve -bp
Start timing 2 solves of 4x4x4 in free-play :
term-timer solve -c 4 -f 2
Start timing with an easy white cross, with 15 secs of inspection :
term-timer solve -ei 15
Show statistics on recorded solves :
term-timer stats
Show tendencies graph on recorded solves :
term-timer graph
Show last ten recorded solves of 7x7x7 :
term-timer list 10 -c 7
Installation
pip install -e .
Acknowledgments
I would like to express my sincere gratitude to the developers of the following projects, without which Term Timer would not have been possible:
-
Herbert Kociemba's RubiksCube-TwophaseSolver for the highly efficient Two-Phase algorithm implementation that enables optimal 3x3x3 cube scrambles.
-
trincaog's magiccube for providing an excellent foundation for cube modeling and manipulation.
-
afedotov's gan-web-bluetooth for his clean and well-structured implementation of the GAN Bluetooth cubes.
Their outstanding work and contributions to the Rubik's Cube programming community have been invaluable to this project.
Demos
Help
General
Usage: term-timer [-h]
{solve,sw,t,list,ls,l,stats,st,s,graph,gr,g,cfop,op,c,detail,dt,d,import,im,i,export,ex,e}
...
Speed cubing timer on your terminal.
Positional Arguments:
{solve,sw,t,list,ls,l,stats,st,s,graph,gr,g,cfop,op,c,detail,dt,d,import,im,i,export,ex,e}
Available commands.
solve (sw, t) Start the timer and record solves.
list (ls, l) Display recorded solves.
stats (st, s) Display statistics.
graph (gr, g) Display trend graph.
cfop (op, c) Display CFOP cases.
detail (dt, d) Display detailed information about solves.
import (im, i) Import external solves.
export (ex, e) Export solves in HTML.
Options:
-h, --help Show this help message and exit.
Have fun cubing !
Timer
Usage: term-timer solve [-h] [-b] [-p] [-c CUBE] [-u SESSION] [-f] [-i SECONDS] [-m TEMPO] [-e]
[-n ITERATIONS] [-r SEED]
[SOLVES]
Start the speed cubing timer to record and time your solves.
Positional Arguments:
SOLVES Specify the number of solves to be done.
Default: Infinite.
Options:
-h, --help Show this help message and exit.
Configuration:
-b, --bluetooth Use a Bluetooth-connected cube.
Default: False.
-p, --show-cube Display the cube in its scrambled state.
Default: False.
Session:
-c CUBE, --cube CUBE Set the size of the cube (from 2 to 7).
Default: 3.
-u SESSION, --session SESSION
Name of the session for solves.
Default: None.
-f, --free-play Enable free play mode to disable recording of solves.
Default: False.
Timer:
-i SECONDS, --countdown SECONDS
Set the countdown timer for inspection time in seconds.
Default: 0.0.
-m TEMPO, --metronome TEMPO
Set a metronome beep at a specified tempo in seconds.
Default: 0.0.
Scramble:
-e, --easy-cross Set the scramble with an easy cross.
Default: False.
-n ITERATIONS, --iterations ITERATIONS
Set the number of random moves.
Default: Auto.
-r SEED, --seed SEED Set a seed for random move generation to ensure repeatable scrambles.
Default: None.
Origin Story
While I was diligently working on my personal CFOP databases, which can be accessed at https://cubing.fache.fr/, I encountered the necessity for a high-quality scrambling tool for a 3x3 Rubik's Cube. This tool was essential for the development of an innovative type of computer solver for the 3x3 cube.
Once I successfully developed this scrambler, it occurred to me that it would be a regrettable oversight not to capitalize on this momentum by creating a timing application based on the scrambler's functionality.
Having produced a straightforward prototype and finding the program to be quite satisfactory, I further concluded that withholding such a useful tool from the community would constitute another regrettable oversight.
Metadata
Release files for term-timer 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| term_timer-0.1.0.tar.gz | 42.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| term_timer-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 88.9 kB
Release files / term_timer-0.1.0.tar.gz
| Download URL | term_timer-0.1.0.tar.gz |
|---|---|
| Size | 42.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
15190d3030ab681f224b1bf96f80e11986fee99fe308a11c216962d66be40e36
|
|
BLAKE2b-256 checksum How to use checksums |
6744f302b7ba11e0996445754cf26b5500dffefe47c3c970dc641d510d47f0ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2025.
Transparency logRelease files / term_timer-0.1.0-py3-none-any.whl
| Download URL | term_timer-0.1.0-py3-none-any.whl |
|---|---|
| Size | 46.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
efcd3e7055f9ecf6ed92ea667a49138f36bbc5d49774184c3c37e32438b6b48b
|
|
BLAKE2b-256 checksum How to use checksums |
c1859efb7476c2fad190ec92b49095f7fc8bdd7853b65f62f7b50188703d06f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2025.
Transparency log