https://github.com/vyrx-dev/toofan
A minimal, lightning-fast typing TUI for your terminal
https://github.com/vyrx-dev/toofan
go minimal monketype termial textual tui-app typing typing-practice
Last synced: 14 days ago
JSON representation
A minimal, lightning-fast typing TUI for your terminal
- Host: GitHub
- URL: https://github.com/vyrx-dev/toofan
- Owner: vyrx-dev
- License: mit
- Created: 2026-04-06T12:31:38.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2026-05-08T07:10:37.000Z (about 1 month ago)
- Last Synced: 2026-05-08T09:16:39.350Z (about 1 month ago)
- Topics: go, minimal, monketype, termial, textual, tui-app, typing, typing-practice
- Language: Go
- Homepage:
- Size: 3.02 MB
- Stars: 233
- Watchers: 2
- Forks: 24
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# toofan
**A minimal, lightning-fast typing TUI**
_Practice with english words or real code snippets. No browser, no account, everything stays local._
Featured on

---
## Features
- **Two Modes:** Practice standard English words or real-world code snippets.
- **Curated Lessons:** Hand-written, topic-based code exercises across multiple languages.
- **Dynamic Themes:** Cycle between multiple aesthetic terminal themes (`ctrl+t`).
- **Live Metrics:** Real-time WPM speed and accuracy tracking.
- **Error Review:** See exactly which words you mistyped after every test.
- **Ranks:** Automated progression system based on your typing speed.
- **Offline & Local:** No browser, no account, zero telemetry.
- **Racing:** Race against your own last 10 tests.
## Profile Dashboard
A personal overview of your typing speed history, personal bests across durations, and a daily activity map to keep you consistent. Press `ctrl+p` to open.
## Installation
⚠️ **Note:** Always take a backup (`ctrl+s`) before updating toofan.
### curl (macOS & Linux)
```bash
curl -fsSL https://raw.githubusercontent.com/vyrx-dev/toofan/master/install.sh | sh
```
### AUR
```bash
paru -S toofan-bin
```
### Go
```bash
go install github.com/vyrx-dev/toofan@latest
```
### Homebrew / Nix / Ubuntu / Fedora
Coming soon.
### Build from Source
If you prefer building manually (requires Go):
```sh
git clone https://github.com/vyrx-dev/toofan.git
cd toofan
go build -o toofan .
mv toofan ~/.local/bin/
```
## FAQ
How are stats calculated?
```text
raw = total_chars / 5 / elapsed_minutes
wpm = (total_chars - uncorrected_errors) / 5 / elapsed_minutes
accuracy = (total_chars - all_mistakes) / total_chars × 100
```
- **wpm** - your net speed. Every 5 characters count as one "word". Uncorrected mistakes are subtracted.
- **accuracy** - counts every wrong keystroke, even if you corrected it with backspace.
- **raw** - your gross speed before any penalty.
- **errors** - press `e` on the results page to see exactly which words you mistyped.
Where are my files stored?
Everything lives in `~/.config/toofan/` as plain text files:
- `config.txt` : Your selected duration, mode, language, and theme
- `results.txt` : Every test result (date, wpm, accuracy, duration, mode)
- `pb.txt` : Your personal bests per mode and duration
Can I backup my data?
Yes. Press `ctrl+s` to save a backup and `ctrl+r` to restore from one. Backups are saved to `~/.config/toofan/backups/` and can be moved between machines.
How do I update toofan?
The update process depends on how you installed it:
**curl (Quick Install):**
Just run the install command again. It will automatically download and replace the old binary.
```bash
curl -fsSL https://raw.githubusercontent.com/vyrx-dev/toofan/master/install.sh | sh
```
**Go:**
```bash
go install github.com/vyrx-dev/toofan@latest
```
**AUR:**
Use your AUR helper to update the package:
```bash
paru -Syu toofan-bin
```
How do I uninstall Toofan?
If you installed via the `curl` Quick Install, simply delete the binary and the configuration folder:
```bash
rm ~/.local/bin/toofan
rm -rf ~/.config/toofan
```
_(If you built it from source and moved it globally, run `sudo rm /usr/local/bin/toofan` instead)._
Does it work offline?
Yes. Everything runs locally and is embedded in the binary. No internet needed.
But there’s currently a pending [PR-50](https://github.com/vyrx-dev/toofan/pull/50) for `toofan-online`, which will add multiplayer support. It’s going to be a separate package from the main branch so the original offline experience stays exactly as promised.
Want more programming languages?
We're always looking to add more. If your favorite programming language isn't supported yet, open a PR with a few lesson files and we'll get it in. Check `AGENTS.md` for the file format.
## Roadmap
- [x] Curl script installation (macOS & Linux)
- [x] Proper documentation for AI and contributors
- [ ] More language support
- [x] Difficulty levels for english words
- [ ] AUR, Homebrew, Nix packages
- [x] Fix top pane alignment to match bottom panes in profile
## Contributing
- New snippets : Drop a file in `internal/lang/data//lessons/` and rebuild
- New languages : Just a folder with lesson files
- New themes : One Go file with a color palette
- Bug fixes and UX improvements
If you're using an AI coding assistant, read [`AGENTS.md`](AGENTS.md) first.
## Dependencies
- [Bubble Tea](https://github.com/charmbracelet/bubbletea) : TUI framework
- [Lipgloss](https://github.com/charmbracelet/lipgloss) : Terminal styling
---