Skip to main content

Term Timer

Practice your speed cubing skills on your terminal, for a full 80's vibe.

image

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:

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)

Source distribution for term-timer 0.1.0
File Size Uploaded
term_timer-0.1.0.tar.gz 42.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for term-timer 0.1.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page