pi-cubing

A cstimer-style Rubik's Cube timer overlay for Pi, with scrambles, averages, ratings, and local solve persistence.

Packages

Package details

extension

Install pi-cubing from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-cubing
Package
pi-cubing
Version
0.1.4
Published
May 20, 2026
Downloads
not available
Author
totimorpa
License
MIT
Types
extension
Size
43.6 KB
Dependencies
0 dependencies · 1 peer
Pi manifest JSON
{
  "extensions": [
    "./extensions"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-cubing

A cstimer-style Rubik's Cube timer overlay for Pi.

Features

  • /cubing command opens a modal/overlay timer in the terminal.
  • Ctrl+Shift+C opens the overlay quickly.
  • 3x3 scramble generation.
  • Spacebar timer flow:
    • hold Space for ~500ms until ready/green
    • release Space to start
    • press Space again to stop and save
  • Stable, tabular stopwatch digits so centiseconds do not make the timer wiggle.
  • Solve table with scrolling selection.
  • Stats: mean, mo3, ao5, ao12, ao50, best ao5, best ao12.
  • Per-solve rating: first, PB, great, good, ok, slow.
  • Penalty editing: +2, DNF, delete.
  • Local persistence on your laptop.

Install

From GitHub:

pi install git:github.com/totimorpa/pi-cubing

Or while developing locally:

pi install /absolute/path/to/pi-cubing
# or from this repository's parent directory:
pi install ./pi-cubing

Then restart Pi or run:

/reload

Usage

Open the timer:

/cubing

Controls:

Key Action
Space hold/release Ready and start timer
Space while running Stop and save solve
Esc Reset visible timer to 0.00
Esc twice Close overlay
/ k Select newer solve
/ j Select older solve
h Show help dialog with one shortcut per line
i Show selected solve info
d / Delete / Backspace Confirm delete selected solve
y / n Confirm/cancel delete dialog
p Toggle +2 penalty
x Toggle DNF
n / r New scramble
Shift+C Confirm clear all solves

Persistence

Solves are saved locally to:

~/.pi/agent/cubing/solves.json

If you used the earlier cube-timer version, the extension will also read and migrate:

~/.pi/agent/cube-timer/solves.json

Development

Type-check:

npm install
npm run typecheck

Dry-run npm package contents:

npm run pack:dry

Publishing to GitHub

git init
git add .
git commit -m "Initial pi-cubing package"
git branch -M main
git remote add origin git@github.com:totimorpa/pi-cubing.git
git push -u origin main

Then users can install it with:

pi install git:github.com/totimorpa/pi-cubing

Security note

Pi extensions run with full local system permissions. Review any extension code before installing packages from others.