• R/O
  • HTTP
  • SSH


No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

A Nix-friendly SQLite-enhanced fork of Flitter, a speedrunning split timer for Unix-style terminals

Recent Commits RSS

Rev. 时间 作者 Message
afe9c57 2023-06-06 02:09:56 Corbin master Fix a SQL query and add cumulative times per attempt.
7fa6e81 2023-06-05 08:11:40 Corbin Make row generation slightly easier.
241d2e0 2023-06-05 08:02:42 Corbin Factor the ability to fetch golds for all segments. Well...
663aca5 2023-06-05 06:31:45 Corbin Add convenience functions for SQL SELECT statements.
5292da8 2023-06-03 02:54:52 Corbin Two new modules for managing queried state.
abd287c 2023-06-02 00:52:52 Corbin Meh.
46bc328 2023-05-31 08:31:09 Corbin Encapsulate prepared statements, caching them. SQLite do...
0300ea5 2023-05-31 07:19:03 Corbin Remove unused custom summary code.
d166d22 2023-05-31 04:03:33 Corbin Remove two more gettimeofday().
30ff584 2023-05-31 03:32:47 Corbin Somewhat factor timer state. I might have to just hack a...


名称 Rev. 时间 作者 Message
master afe9c57 2023-06-06 02:09:56 Corbin Fix a SQL query and add cum...



Flitterite is a Livesplit-inspired speedrunning split timer for terminals, including several command-line tools for managing a database of splits. Flitterite is forked from Flitter.

Animated demo GIF

All screenshots


  • Global hotkeys
  • :rainbow: Animated rainbow best splits
  • 24-bit terminal color
  • Undo / delete split
  • Pause / resume
  • Up to 60 FPS rendering with low CPU usage
  • Robust time computations: float math is mostly avoided

Flitterite-specific features

  • Splits and history are now stored in a SQLite database of splits
  • Import script for migrating from S-expressions to SQLite
  • Statistics for splits
  • Multiple routes and categories per game
  • Nix flake
  • Many bug fixes


Add this git repository to your Nix flake.


Create your database of splits:

$ flitter-new splits.db

Launch Flitter with your splits file:

$ flitter splits.db


Keybindings are all global hotkeys; they will work even when the terminal is not focused.

Keys Action
Space Start / split / save and reset if run finished
J Start / split
K Undo split
D Delete last segment
Backspace Pause / reset (save run if finished and save golds)
Delete Pause / delete run (don't save anything)
Q Quit (if not currently timing)


The flitter-summary tool can be used to quickly extract the minimum (best), average, and standard deviation for an entire database, a single category, or a single run. For example:

$ flitter-summary splits.db
Horizon: Forbidden West (Abs%): min 33:09.354 (attempt 4), avg 38:17.799 ± 4:02.849

$ flitter-summary splits.db 'Horizon: Forbidden West' 'Abs%'
Segment: New Game -> Interlude: min 15:23.983, avg 15:36.073 ± 11.095
Segment: New Game -> Shuttle: min 13:53.595, avg 18:31.488 ± 6:05.001
Segment: Shuttle -> Spire: min 2:13.510, avg 2:35.034 ± 17.954
Segment: Spire -> Embassy: min 14:47.481, avg 18:00.206 ± 1:42.837
Segment: Embassy -> Abs: min 2:14.768, avg 3:09.039 ± 1:06.530

$ flitter-summary splits.db 'Horizon: Forbidden West' 'Abs%' 4
Segment: New Game -> Shuttle: 13:53.595 (cum 13:53.595)
Segment: Shuttle -> Spire: 2:13.510 (cum 16:07.105)
Segment: Spire -> Embassy: 14:47.481 (cum 30:54.586)
Segment: Embassy -> Abs: 2:14.768 (cum 33:09.354)


Feel free to make an issue or a pull request! Also feel free to copy any changes back to Flitter.