Skip to content

connerglover/crt

Repository files navigation

CRT icon

Conner's Retime Tool

A desktop app for speedrunners and moderators to time runs accurately — with or without loads.

Latest Release Build Status Downloads License: MIT Platforms

CRT screenshot

✨ Features

  • Time a run by frame, or by pasting a timestamp / YouTube debug string
  • Track individual loads with automatic totals, with and without loads
  • Customizable mod note format (available placeholders)
  • Fully customizable hotkeys for every action
  • Session history — save, reload, and revisit past runs
  • Always-on-top mode and automatic update checks
  • English, Français, Polski, and Español

📦 Installation

Grab the latest build for your platform from Releases and run it.

🐍 Running from Source

Requires Python 3.10+.

pip install -r requirements.txt
python src/main.py

🔨 Building the Executable

Windows, macOS, and Linux binaries are built automatically by the build workflow and attached to a GitHub Release whenever a version tag (e.g. 1.2.2) is pushed. To build locally:

🪟 Windows
pip install -r requirements.txt pyinstaller
cd src
pyinstaller --onefile --windowed --icon=icon.ico --add-data "icon.ico;." --name crt main.py

Output: src/dist/crt.exe

🍎 macOS
pip install -r requirements.txt pyinstaller pillow
cd src
python - <<'PY'
import os
from PIL import Image

im = Image.open("icon.ico").convert("RGBA")
os.makedirs("crt.iconset", exist_ok=True)
for size in (16, 32, 128, 256, 512):
    im.resize((size, size), Image.LANCZOS).save(f"crt.iconset/icon_{size}x{size}.png")
    im.resize((size * 2, size * 2), Image.LANCZOS).save(f"crt.iconset/icon_{size}x{size}@2x.png")
PY
iconutil -c icns crt.iconset -o icon.icns
pyinstaller --onefile --windowed --icon=icon.icns --add-data "icon.ico:." --name crt main.py
hdiutil create -volname CRT -srcfolder dist/crt.app -ov -format UDZO ../crt-macos.dmg

Output: src/dist/crt.app, packaged as crt-macos.dmg

🐧 Linux
pip install -r requirements.txt pyinstaller
cd src
pyinstaller --onefile --name crt main.py

Output: src/dist/crt (the build workflow additionally packages this as an AppImage)

🤝 Contributing

Bug reports, feature requests, and pull requests are welcome — see CONTRIBUTING.md. Please also read our Code of Conduct; project decisions are explained in GOVERNANCE.md. Found a security issue? See SECURITY.md instead of opening a public issue.

🙌 Credits

  • Menzo — French & Polish translation
  • Cris — Spanish translation

📄 License

CRT is licensed under the MIT License.

About

A tool to help with timing of speedruns with load times

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages