{"id":27949666,"url":"https://github.com/fantomas42/term-timer","last_synced_at":"2025-10-12T04:33:19.434Z","repository":{"id":279055919,"uuid":"937592921","full_name":"Fantomas42/term-timer","owner":"Fantomas42","description":"Practice your speed cubing skills on your terminal","archived":false,"fork":false,"pushed_at":"2025-09-30T19:32:28.000Z","size":9487,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-09-30T21:24:58.456Z","etag":null,"topics":["cubing","cubing-timer","terminal","terminal-based"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fantomas42.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-23T12:54:47.000Z","updated_at":"2025-09-30T19:32:32.000Z","dependencies_parsed_at":"2025-03-09T18:23:31.421Z","dependency_job_id":"3f2e3d0a-0fb6-440f-bf03-d63a915fa495","html_url":"https://github.com/Fantomas42/term-timer","commit_stats":null,"previous_names":["fantomas42/term-timer"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Fantomas42/term-timer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fantomas42%2Fterm-timer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fantomas42%2Fterm-timer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fantomas42%2Fterm-timer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fantomas42%2Fterm-timer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fantomas42","download_url":"https://codeload.github.com/Fantomas42/term-timer/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fantomas42%2Fterm-timer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279010259,"owners_count":26084719,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cubing","cubing-timer","terminal","terminal-based"],"created_at":"2025-05-07T15:29:45.784Z","updated_at":"2025-10-12T04:33:19.427Z","avatar_url":"https://github.com/Fantomas42.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Term Timer\n\nPractice your speed cubing skills on your terminal, for a full 80's vibe.\n\n[![image](https://github.com/fantomas42/term-timer/actions/workflows/kwalitee.yml/badge.svg)](https://github.com/fantomas42/term-timer/actions/workflows/kwalitee.yml)\n\n##  Main Features\n\n- Valid WCA scrambles\n- From 2x2x2 to 7x7x7 cubes\n- Free-play and recorded solves\n- Colorfull cube display\n- Handle Bluetooth cubes\n- Detailled statistics and reconstructions\n\n## Other Features\n\n- Metronome\n- Inspection time\n- Easy white cross\n- Cube orientation control\n- Seed control\n- Full offline application\n- csTimer and Cubeast import\n\n## Short demo\n\n![](docs/solve.gif)\n\n## Examples usage\n\nStart timing 3x3x3 solves :\n\n```console\nterm-timer solve\n```\n\nStart timing in Bluetooth showing the scrambled cube :\n\n```console\nterm-timer solve -bp\n```\n\nStart timing 2 solves of 4x4x4 in free-play :\n\n```console\nterm-timer solve -c 4 -f 2\n```\n\nStart timing with an easy white cross, with 15 secs of inspection :\n\n```console\nterm-timer solve -ei 15\n```\n\nShow statistics on recorded solves :\n\n```console\nterm-timer stats\n```\n\nShow tendencies graph on recorded solves :\n\n```console\nterm-timer graph\n```\n\nShow last ten recorded solves of 7x7x7 :\n\n```console\nterm-timer list 10 -c 7\n```\n\n## Installation\n\n``` console\npip install -e .\n```\n\n## Acknowledgments\n\nI would like to express my sincere gratitude to the developers of the\nfollowing projects, without which Term Timer would not have been possible:\n\n* [Herbert Kociemba's RubiksCube-TwophaseSolver][1] for the highly efficient\n  Two-Phase algorithm implementation that enables optimal 3x3x3 cube\n  scrambles.\n\n* [trincaog's magiccube][2] for providing an excellent foundation for cube\n  modeling and manipulation.\n\n* [afedotov's gan-web-bluetooth][3] for his clean and well-structured\n  implementation of the GAN Bluetooth cubes.\n\nTheir outstanding work and contributions to the Rubik's Cube programming\ncommunity have been invaluable to this project.\n\n[1]: https://github.com/hkociemba/RubiksCube-TwophaseSolver\n[2]: https://github.com/trincaog/magiccube/\n[3]: https://github.com/afedotov/gan-web-bluetooth/\n\n## Demos\n\n![](docs/list.gif)\n\n![](docs/detail.gif)\n\n![](docs/stats.gif)\n\n## Help\n\n### General\n\n```console\nUsage: term-timer [-h]\n                  {solve,sw,t,train,tr,w,detail,dt,d,edit,ed,e,delete,rm,r,list,ls,l,stats,st,s,graph,gr,g,cfop,op,c,serve,se,h,import,im,i}\n                  ...\n\nSpeed cubing timer on your terminal.\n\nPositional Arguments:\n  {solve,sw,t,train,tr,w,detail,dt,d,edit,ed,e,delete,rm,r,list,ls,l,stats,st,s,graph,gr,g,cfop,op,c,serve,se,h,import,im,i}\n                        Available commands.\n    solve (sw, t)       Start the timer and record solves.\n    train (tr, w)       Start training your OLL/PLL skills.\n    detail (dt, d)      Display detailed information about solves.\n    edit (ed, e)        Edit solves' flag.\n    delete (rm, r)      Delete solves.\n    list (ls, l)        Display recorded solves.\n    stats (st, s)       Display statistics.\n    graph (gr, g)       Display trend graph.\n    cfop (op, c)        Display CFOP cases.\n    serve (se, h)       Serve solves in HTML.\n    import (im, i)      Import external solves.\n\nOptions:\n  -h, --help            Show this help message and exit.\n\nHave fun cubing !\n```\n\n### Timer\n\n```console\nUsage: term-timer solve [-h] [-p] [-b] [-s] [-t] [-v] [-w] [-c CUBE] [-u SESSION] [-f] [-i SECONDS]\n                        [-m TEMPO] [-e] [-n ITERATIONS] [-r SEED] [-x SCRAMBLE]\n                        [SOLVES]\n\nStart the speed cubing timer to record and time your solves.\n\nPositional Arguments:\n  SOLVES                Specify the number of solves to be done.\n                        Default: Infinite.\n\nOptions:\n  -h, --help            Show this help message and exit.\n  -p, --hide-cube       Hide the cube in its scrambled state.\n                        Default: False.\n\nBluetooth:\n  -b, --bluetooth       Use a Bluetooth-connected cube.\n                        Default: False.\n  -s, --hide-reconstruction\n                        Hide the reconstruction of the solve.\n                        Default: False.\n  -t, --show-time-graph\n                        Show the time scatter graph of the solve.\n                        Default: False.\n  -v, --show-tps-graph  Show the TPS graph of the solve.\n                        Default: False.\n  -w, --show-recognition-graph\n                        Show the recognition graph of the solve.\n                        Default: False.\n\nSession:\n  -c CUBE, --cube CUBE  Set the size of the cube (from 2 to 7).\n                        Default: 3.\n  -u SESSION, --session SESSION\n                        Name of the session for solves.\n                        Default: None.\n  -f, --free-play       Enable free play mode to disable recording of solves.\n                        Default: False.\n\nTimer:\n  -i SECONDS, --countdown SECONDS\n                        Set the countdown timer for inspection time in seconds.\n                        Default: 0.0.\n  -m TEMPO, --metronome TEMPO\n                        Set a metronome beep at a specified tempo in seconds.\n                        Default: 0.0.\n\nScramble:\n  -e, --easy-cross      Set the scramble with an easy cross.\n                        Default: False.\n  -n ITERATIONS, --iterations ITERATIONS\n                        Set the number of random moves.\n                        Default: Auto.\n  -r SEED, --seed SEED  Set a seed for random move generation to ensure repeatable scrambles.\n                        Default: None.\n  -x SCRAMBLE, --scramble SCRAMBLE\n                        Set the scramble to use for solving.\n                        Default: None.\n```\n\n## Origin Story\n\nWhile I was diligently working on my personal CFOP databases, which can be\naccessed at [https://cubing.fache.fr/](https://cubing.fache.fr/), I\nencountered the necessity for a high-quality scrambling tool for a 3x3\nRubik's Cube. This tool was essential for the development of an innovative\ntype of computer solver for the 3x3 cube.\n\nOnce I successfully developed this scrambler, it occurred to me that it\nwould be a regrettable oversight not to capitalize on this momentum by\ncreating a timing application based on the scrambler's functionality.\n\nHaving produced a straightforward prototype and finding the program to be\nquite satisfactory, I further concluded that withholding such a useful tool\nfrom the community would constitute another regrettable oversight.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffantomas42%2Fterm-timer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffantomas42%2Fterm-timer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffantomas42%2Fterm-timer/lists"}