{"id":28124742,"url":"https://github.com/pazl27/typy-cli","last_synced_at":"2025-05-14T09:19:37.032Z","repository":{"id":275154024,"uuid":"925243324","full_name":"Pazl27/typy-cli","owner":"Pazl27","description":"Minimalistic Monkeytype clone for the CLI","archived":false,"fork":false,"pushed_at":"2025-04-05T19:52:16.000Z","size":1682,"stargazers_count":62,"open_issues_count":7,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T20:29:47.585Z","etag":null,"topics":["cli","linux","monkeytype-clone","rust","typing-practice"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pazl27.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-31T14:06:22.000Z","updated_at":"2025-04-05T19:52:19.000Z","dependencies_parsed_at":"2025-01-31T15:24:23.675Z","dependency_job_id":"7f09d3db-5207-4ae1-8a74-4b8f232834fa","html_url":"https://github.com/Pazl27/typy-cli","commit_stats":null,"previous_names":["pazl27/typy-cli"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pazl27%2Ftypy-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pazl27%2Ftypy-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pazl27%2Ftypy-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pazl27%2Ftypy-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pazl27","download_url":"https://codeload.github.com/Pazl27/typy-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254110422,"owners_count":22016392,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","linux","monkeytype-clone","rust","typing-practice"],"created_at":"2025-05-14T09:19:02.891Z","updated_at":"2025-05-14T09:19:37.002Z","avatar_url":"https://github.com/Pazl27.png","language":"Rust","readme":"\u003cdiv align=\"center\"\u003e\n  \u003cpre\u003e\n,--------.,--.   ,--.,------.,--.   ,--.  \n'--.  .--' \\  `.'  / |  .--. '\\  `.'  /  \n   |  |     '.    /  |  '--' | '.    /   \n   |  |       |  |   |  | --'    |  |    \n   `--'       `--'   `--'        `--'    \n  \u003c/pre\u003e\n\u003c/div\u003e\n\n\u003e [!WARNING]  \n\u003e When the terminal is too small it can lead to strange behavior.\n\n## Table of contents\n- [Overview](#overview)\n- [Installation](#installation)\n- [Flags](#flags)\n- [Configuration](#configuration)\n- [Stats](#stats)\n- [Uninstall](#uninstall)\n\n## Overview\n![Description of the GIF](./docs/assets/demo.gif)\nI wanted to create a simple typing game to improve my typing speed and accuracy. I really like using [monkeytype](https://monkeytype.com/) and I thought, why not create something similar\nin the terminal? I searched for some but didn't find anything I really liked, so I built it myself. Typy is a terminal-based typing game that displays a random\nword and asks you to type it as fast as possible. The game tracks your typing speed and accuracy, allowing you to monitor your progress over time. Typy also supports\ndifferent game modes, such as uppercase and punctuation, to help you improve your typing skills in different areas.\n\n## Installation\nTo install Typy, you can use the [Cargo] package manager:\n\n[Cargo]: https://doc.rust-lang.org/cargo/\n\n```bash\ncargo install --git \"https://github.com/Pazl27/typy-cli.git\" --tag \"v0.9.0\"\n```\n\nIf you prefer to get the newest version and compile it yourself, follow these steps:\n\n1. Clone the Typy repository:\n    ```bash\n    git clone https://github.com/Pazl27/typy-cli.git\n    cd typy-cli\n    ```\n\n2. Compile the project:\n    ```bash\n    cargo build --release\n    ```\n\n3. Move the compiled binary to a directory in your PATH:\n    ```bash\n    sudo mv target/release/typy /usr/local/bin/\n    ```\n\n4. Ensure the `english.txt` file is in the correct location:\n    ```bash\n    mkdir -p ~/.local/share/typy\n    cp resources/english.txt ~/.local/share/typy/\n    ```\n\nIf you have Nix with flakes enabled, you can install typy-cli directly:\n\n```bash\nnix profile install github:Pazl27/typy-cli\n```\n\nOr to run without installing:\n\n```bash\nnix run github:Pazl27/typy-cli\n```\n\n## Flags\nThe `Typy` application supports the following flags:\n\n- `-t, --time \u003cduration\u003e`: Sets the duration of the game. The default value is `30`.\n  - if you set the time to a too low value the graph ends up scuffed.\n  - e.g., `typy-cli -t 60` sets the game duration to 60 seconds.\n\n- `-s, --stats`: Shows the stats of the game.\n  - not implemented atm.\n  - e.g., `typy-cli --stats` displays the game statistics.\n\n- `-c, --config`: Creates a config file if it doesn't exist and opens it.\n  - e.g., `typy-cli --config` creates and opens the configuration file.\n\n- `-m, --mode \u003cmode\u003e`: Sets the mode of the game. Multiple values can be specified.\n  - possible modes are `uppercase`, `punctuation` and `normal`.\n  - e.g., `typy-cli -m uppercase,punctuation` sets the game mode to uppercase and punctuation.\n\n\n## Configuration\nTypy allows you to configure the colors (theme) via a TOML file. The configuration file is located at `~/.config/typy/config.toml`. You can also configure Typy using the command line with the `typy -c` option.\nInside of the configuration file, you can specify the colors for the theme, graph, and cursor style. Also you can specify some default settings.\n\nHere is an example configuration block for the `config.toml` file:\n\n```toml\n# ~/.config/typy/config.toml\n\n[theme]\nfg = \"#516D49\"\nmissing = \"#918273\"\nerror = \"#FB4934\"\naccent = \"#D3869B\"\n\n[graph]\ndata = \"#8EC07C\"\ntitle = \"#458588\"\naxis = \"#B16286\"\n\n[cursor]\nstyle = \"SteadyBar\" # possible options are: DefaultUserShape, BlinkingBlock, SteadyBlock, BlinkingUnderScore, SteadyUnderScore, BlinkingBar, SteadyBar,\n\n[modes]\ndefault_mode = \"normal\" # possible modes are \"normal\"|\"uppercase\"|\"punctuation\", combinations of modes is also possible e.g: \"uppercase, punctuation\"\nuppercase_chance = \"3\" # possible are values between 0 and 1, if value is too high it gets clamped to 1, if too low it gets clamped to 0\npunctuation_chance = \"0.5\" # possible are values between 0 and 1, if value is too high it gets clamped to 1, if too low it gets clamped to 0\n\n[language]\nlang = \"english\" # select your desired language\n```\n\nTo apply the configuration, you can either edit the `config.toml` file directly or use the `typy -c` command to to open the file in your preferred editor:\n\n```bash\ntypy -c \n```\n\nThis allows you to customize the appearance of Typy to match your preferences.\n\n## Stats\nThe stats are saved in a file located at `~/.local/share/typy/stats.json`. The stats file tracks the stats of the past 10 games. Also it shows the average WPM,\nRAW and accuracy of the all games played.\nTo check your stats you can use the `typy --stats` command.\n\n```bash\ntypy -s\n```\nThis will display the stats of the last 10 games and looks something like this:\n![Stats](./docs/assets/snapshot_2025-02-24_00-28-16.png)\nTo close this view press `Ctrl + c` or `esc`.\n\n## Language\nThe language files are located at `~/.local/share/typy/`. The default language is `english`. You can change the language by editing the `config.toml` file or by using the\n`typy -c` command. If you want to add a new language you can create a new file in the `~/.local/share/typy/` directory and add the words in the following format:\n```txt\nword1\nword2\n...\n```\nThe language file should be named after the language you want to add. For example, if you want to add a German language file, you would create a file named `german.txt` and add the German words to it.\nIf you want to use the new language you need to change the `lang` field in the `config.toml` file to the name of the language file without the `.txt` extension.\nIf you want to provide a new language to the Typy repository, feel free to create a pull request. Atm I only have the `english.txt` file in the repository.\n\n## Uninstall\n```bash\ncargo uninstall typy\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpazl27%2Ftypy-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpazl27%2Ftypy-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpazl27%2Ftypy-cli/lists"}