miaobo5 downloadsMinimalist lightweight real-time wpm monitor for Obsidian with stats dashboard
a minimalist lightweight real-time wpm monitor for Obsidian with stats dashboard.
Clastic Flow is a lightweight Obsidian plugin that shows your typing speed in real time while you're editing your notes. Additionally for thou scholarly goblins, Clastic Flow aggregates your typing statistics per document using a more sophisticated method than the naive troglodyte pea-sized homoheidelbergensis chaff filled brain approach, actively monitoring only the active typing sessions. Review your aggregate statistics across all notes and individual notes.
Clastic Flow adds a wpm: N item to Obsidian's status bar and tracks typing speed from actual editor changes. The stats view shows the current document, global totals, and per-note history.
Clastic Flow measures typing from CodeMirror editor transactions rather than from wall-clock time in a note. That means it only reacts when the document actually changes, so moving the cursor, using arrow keys, switching panes, opening command palette actions, or sitting on a note without typing will not count as typing time.
Live WPM uses a short rolling window:
seconds = clamp(now - first_change_in_window, min = 1.0s, max = rolling_window)
characters_per_second = inserted_characters_in_window / seconds
wpm = characters_per_second * 60 / average_word_length
The default rolling window is 2000ms and the default average word length is 4.8 characters. This keeps the status bar responsive without letting a single keypress create absurd instant WPM spikes.
Aggregate stats use active typing time. When you type in a note, Clastic Flow compares the new edit to the previous edit for that note:
5000ms, so short thinking pauses are included, but long idle periods do not dilute your average.This avoids the naive calculation of total words divided by total time spent with a document open. A note can sit open for hours without damaging its average WPM; only active typing bursts matter.
The plugin also ignores edits that are unlikely to represent normal typing:
Once Clastic Flow is accepted into the community plugin directory:
Settings -> Community plugins in Obsidian.Clastic Flow.Download the latest release files from GitHub:
main.jsmanifest.jsonstyles.cssCreate this folder in your vault:
YourVault/.obsidian/plugins/clastic-flow/
Put the three release files in that folder, then reload Obsidian and enable Clastic Flow from Settings -> Community plugins.
npm install
npm run build
For Nix users:
nix develop path:.
npm install
npm run build
To install a local build into a vault:
scripts/install-obsidian-plugin /path/to/YourVault
Releases are built by GitHub Actions so the uploaded assets have artifact attestations.
manifest.json, package.json, and package-lock.json.manifest.json's version.gh release create 0.1.5 --title "0.1.5" --notes "Release notes here."
Do not upload main.js, manifest.json, or styles.css manually. The release workflow builds, attests, and uploads those files.