README.md
October 28, 2025 ยท View on GitHub

The above mascot is Squibbles (Scribbles) - He is generated by ChatGPT. If anyone wants to create a proper mascot, feel free to submit an issue ๐
OctoType is a TUI typing trainer made with Ratatui, and powered by Gladius - Heavily inspired by Monkeytype, with a focus on customizability

Warning
This is still a work in progress. Breaking changes to Modes, Sources and the configuration might occur.
๐ก Features
- ๐ญ Custom Modes
- ๐๏ธ Custom Sources
- ๐จ Custom theming
- ๐ Pretty graphs
- ๐ชถ Lightweight (~2MB)
- ๐ฅ Blazingly fast (Sorry, i had to.. ๐ฆ)
- .. And more to come!
๐ฝ Installation
Installing octotype can be done with the following methods:
Cargo
cargo install octotype
Nix
You can add OctoType as a Flake:
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
octotype.url = "github:mahlquistj/octotype/main";
};
outputs = { self, nixpkgs, rio }: {
nixosConfigurations.hostname = nixpkgs.lib.nixosSystem {
modules = [
({ pkgs, ... }: {
environment.systemPackages = [
octotype.packages.${pkgs.system}.octotype
];
})
];
};
};
}
Note
No package exists in nixpkgs yet.
๐ Arguments
| Short | Long | Description |
|---|---|---|
--print-config | Prints the current settings, modes, and source | |
-p | --print-settings | Prints the current settings |
-c <path> | --config <path> | Overrides the default config location |
-h | --help | Shows a help page with the list of arguments |
โ๏ธ Configuration
Check out the Docs for configuration options.
๐ป Development
A nix flake dev-shell is provided to run with nix develop.
โญ Contributing
If you have an idea, bug-report or alike, feel free to open an issue or a PR - It's more than welcome!
Note
I'm only developing this in my spare time, so don't expect immidiate replies ๐
โ Why another typing-trainer?
It all started as a fun side-project to learn typing on my new ZSA Moonlander keyboard. I was inspired by using Monkeytype a lot, but found that i was missing more customizability when it came to what modes and words i could get.