An open source key tap app for macOS. Like Fitbit, but for words.
Swift
0
3 commits
updated Oct 10, 2026
Fun keyboard stats in your Mac menu bar. Private by construction: it counts key presses, never what you type, and never touches the network.
Requires macOS 14+ and the Xcode command line tools (xcode-select --install).
git clone https://github.com/andreasaez/shakespeare.git
cd shakespeare
make install
make install is a guided installer. It runs the privacy audit, builds, signs, copies the app to ~/Applications, launches it, and opens the macOS page where you grant the one permission it needs. Then:
macOS ties the Input Monitoring permission to the app's code signature.
If the app is running, shows no warning, but isn't counting, the permission has gone stale: run make install again, or tccutil reset ListenEvent io.github.andreasaez.shakespeare and re-allow it.
Other commands: make run (debug run), make test, make audit, make app (build only, into dist/), make clean. Environment options: BUNDLE_ID=com.you.shakespeare for your own identifier, SIGN_ID="Apple Development: …" to choose a certificate.
Short version: only per-day counters are stored, in ~/Library/Application Support/Shakespeare/stats.json (owner-only permissions). Full details and limits in PRIVACY.md; security notes in SECURITY.md. CI enforces the promises via Scripts/audit-privacy.sh.
Typeset in Inter v4.1 (SIL Open Font License; see Resources/Fonts/Inter-OFL.txt), bundled in the app so nothing is fetched at runtime. The font's SHA-256 is recorded in Resources/Fonts/SHA256SUMS and checked at build time.
Sources/ShakespeareCore logic: key classification, WPM, stats, storage (unit-tested)
Sources/Shakespeare SwiftUI menu bar app, key monitor, share cards
Scripts/ build-app.sh (bundle + sign), install.sh, audit-privacy.sh,
make-icon.swift (redraws Resources/AppIcon.icns in code)
See CONTRIBUTING.md. MIT licensed.
An open source key tap app for macOS. Like Fitbit, but for words.
Swift
0
3 commits
updated Oct 10, 2026
Fun keyboard stats in your Mac menu bar. Private by construction: it counts key presses, never what you type, and never touches the network.
Requires macOS 14+ and the Xcode command line tools (xcode-select --install).
git clone https://github.com/andreasaez/shakespeare.git
cd shakespeare
make install
make install is a guided installer. It runs the privacy audit, builds, signs, copies the app to ~/Applications, launches it, and opens the macOS page where you grant the one permission it needs. Then:
macOS ties the Input Monitoring permission to the app's code signature.
If the app is running, shows no warning, but isn't counting, the permission has gone stale: run make install again, or tccutil reset ListenEvent io.github.andreasaez.shakespeare and re-allow it.
Other commands: make run (debug run), make test, make audit, make app (build only, into dist/), make clean. Environment options: BUNDLE_ID=com.you.shakespeare for your own identifier, SIGN_ID="Apple Development: …" to choose a certificate.
Short version: only per-day counters are stored, in ~/Library/Application Support/Shakespeare/stats.json (owner-only permissions). Full details and limits in PRIVACY.md; security notes in SECURITY.md. CI enforces the promises via Scripts/audit-privacy.sh.
Typeset in Inter v4.1 (SIL Open Font License; see Resources/Fonts/Inter-OFL.txt), bundled in the app so nothing is fetched at runtime. The font's SHA-256 is recorded in Resources/Fonts/SHA256SUMS and checked at build time.
Sources/ShakespeareCore logic: key classification, WPM, stats, storage (unit-tested)
Sources/Shakespeare SwiftUI menu bar app, key monitor, share cards
Scripts/ build-app.sh (bundle + sign), install.sh, audit-privacy.sh,
make-icon.swift (redraws Resources/AppIcon.icns in code)
See CONTRIBUTING.md. MIT licensed.