{"id":13500118,"url":"https://github.com/jankrepl/mltype","last_synced_at":"2026-01-17T16:58:48.186Z","repository":{"id":37907338,"uuid":"302849631","full_name":"jankrepl/mltype","owner":"jankrepl","description":"Command line tool for improving typing skills (programmers friendly)","archived":false,"fork":false,"pushed_at":"2023-06-22T14:59:08.000Z","size":121,"stargazers_count":461,"open_issues_count":12,"forks_count":32,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-02T17:38:49.341Z","etag":null,"topics":["deep-learning","machine-learning","touch-typing","typing","typing-practice","typing-trainer","typingspeedtest"],"latest_commit_sha":null,"homepage":"https://mltype.readthedocs.io","language":"Python","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/jankrepl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-10-10T08:07:12.000Z","updated_at":"2025-02-12T21:40:08.000Z","dependencies_parsed_at":"2024-01-16T10:36:48.122Z","dependency_job_id":"ad795867-8796-4354-9db1-b999f2885df0","html_url":"https://github.com/jankrepl/mltype","commit_stats":{"total_commits":57,"total_committers":3,"mean_commits":19.0,"dds":0.03508771929824561,"last_synced_commit":"f3bf1c2036cad73b37f85a36137447c900567fba"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jankrepl%2Fmltype","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jankrepl%2Fmltype/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jankrepl%2Fmltype/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jankrepl%2Fmltype/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jankrepl","download_url":"https://codeload.github.com/jankrepl/mltype/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246145012,"owners_count":20730494,"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":["deep-learning","machine-learning","touch-typing","typing","typing-practice","typing-trainer","typingspeedtest"],"created_at":"2024-07-31T22:00:51.462Z","updated_at":"2026-01-17T16:58:48.132Z","avatar_url":"https://github.com/jankrepl.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/18519371/97606153-c19c2700-1a0f-11eb-9faf-876f266b4585.png\"\u003e\n\u003c/p\u003e\n\n![mltype](https://github.com/jankrepl/mltype/workflows/mltype/badge.svg)\n\nCommand line tool for improving typing speed and accuracy. The main goal is\nto help programmers practise programming languages.\n\n# Demo\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://i.imgur.com/uz1046g.gif\"\u003e\n\u003c/p\u003e\n\n# Installation\n### Python environment\n```bash\npip install --upgrade mltype\n```\n\n### Docker\nMake sure that Docker and Docker Compose are installed.\n```\ndocker-compose run --rm mltype\n```\nYou will get a shell in a running container and the `mlt` command should be\navailable. \n\nSee the documentation for more information.\n\n# Main features\n### Text generation\n\n- Using neural networks to generate text. One can use\n  pretrained networks (see below) or train new ones from scratch.\n- Alternatively, one can read text from a file or provide it manually\n\n### Typing interface\n- Dead simple (implemented in `curses`)\n- Basic statistics - WPM and accuracy\n- Setting target speed\n- Playing against past performances\n\n# Documentation and usage\n- Detailed documentation: https://mltype.readthedocs.io/en/latest/index.html.\n- GIF examples: https://mltype.readthedocs.io/en/latest/source/examples.html. \n\nThe entrypoint is `mlt`. To get information on how to use the subcommands\nuse the `--help` flag (e.g. `mlt file --help`).\n\n```bash\n$ mlt\nUsage: mlt [OPTIONS] COMMAND [ARGS]...\n\n  Tool for improving typing speed and accuracy\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  file    Type text from a file\n  ls      List all language models\n  random  Sample characters randomly from a vocabulary\n  raw     Provide text manually\n  replay  Compete against a past performance\n  sample  Sample text from a language\n  train   Train a language\n```\n\n# Pretrained models\nSee below for a list of pretrained models. They are stored on a google drive\nand one needs to download the entire archive.\n\n|         Name         \t|                               Info                              \t| Link                                                                                       \t|\n|:--------------------:\t|:---------------------------------------------------------------:\t|--------------------------------------------------------------------------------------------\t|\n| C++                  \t| Trained on https://github.com/TheAlgorithms/C-Plus-Plus         \t| [link](https://drive.google.com/file/d/1ea49gaUWJea_-nnT4aI2TpwfG5OLQdlw/view?usp=sharing) \t|\n| C#                  \t| Trained on https://github.com/TheAlgorithms/C-Sharp           \t| [link](https://drive.google.com/file/d/1_SEze1jUN0YKZDx-WOEucZ-y9pAc5SLX/view?usp=sharing) \t|\n| CPython              \t| Trained on https://github.com/python/cpython/tree/master/Python \t| [link](https://drive.google.com/file/d/1aKnOkxcSYdpXYCB6yMOpbGJIw2ribVEq/view?usp=sharing) \t|\n| Crime and Punishment \t| Trained on http://www.gutenberg.org/ebooks/2554                 \t| [link](https://drive.google.com/file/d/1-KgO-9X3z-Xr2SLAgAI_Ijllw7L9MFpN/view?usp=sharing) \t|\n| Dracula              \t| Trained on http://www.gutenberg.org/ebooks/345                  \t| [link](https://drive.google.com/file/d/1Fx2cZ4gOaioJymsUCY_Q620Yk53bZQeK/view?usp=sharing) \t|\n| Elixir              \t| Trained on https://github.com/phoenixframework/phoenix                | [link](https://drive.google.com/file/d/19fgnGp3oyFEBvy2HtsMZjnzrUy7L2qWa/view?usp=sharing) \t|\n| Go            \t| Trained on https://github.com/TheAlgorithms/Go    \t                | [link](https://drive.google.com/file/d/1VOw0zCa4xRgfeRz41loPkQRwcWadeV-o/view?usp=sharing) \t|\n| Haskell            \t| Trained on https://github.com/jgm/pandoc      \t                | [link](https://drive.google.com/file/d/16IAu3iMhuHIyiYsw6OwkCKtBy3qOVWd0/view?usp=sharing) \t|\n| Java            \t| Trained on https://github.com/TheAlgorithms/Java    \t                | [link](https://drive.google.com/file/d/1-08erirNC1GbuRLcFzQIfjwbhB40_wiA/view?usp=sharing) \t|\n| JavaScript           \t| Trained on https://github.com/trekhleb/javascript-algorithms    \t| [link](https://drive.google.com/file/d/1npW4YN7y2d4Id0WhXVnT_0--slmPEfW0/view?usp=sharing) \t|\n| Kotlin           \t| Trained on https://github.com/square/leakcanary    \t                | [link](https://drive.google.com/file/d/1Ra5P4uQXOd87zimMqg8eyB6ONei9km6h/view?usp=sharing) \t|\n| Lua           \t| Trained on https://github.com/nmap/nmap       \t                | [link](https://drive.google.com/file/d/1MusGCJfepW9Q1G7LqgnFL_7UEc8tpsVP/view?usp=sharing) \t|\n| Perl           \t| Trained on https://github.com/mojolicious/mojo       \t                | [link](https://drive.google.com/file/d/14mKERFDa2SiH7vSweymk6f2d2ULSKuZ1/view?usp=sharing) \t|\n| PHP           \t| Trained on https://github.com/symfony/symfony    \t                | [link](https://drive.google.com/file/d/17xl168mPjeL1w8-k195RDPavOxZWUY96/view?usp=sharing) \t|\n| Python               \t| Trained on https://github.com/TheAlgorithms/Python              \t| [link](https://drive.google.com/file/d/14W-Ymi-h6jqNyqM5yGXyzwG25J3zzdn3/view?usp=sharing) \t|\n| R               \t| Trained on https://github.com/tidyverse/ggplot2              \t        | [link](https://drive.google.com/file/d/1TgZojc2--ej4UC1ksAShDLUtDBWYf7xQ/view?usp=sharing) \t|\n| Ruby               \t| Trained on https://github.com/jekyll/jekyll              \t        | [link](https://drive.google.com/file/d/1UMhlpI9a4Fpni1k1jQrePa8NOD8n6urq/view?usp=sharing) \t|\n| Rust               \t| Trained on https://github.com/rust-lang/rust/tree/master/compiler     | [link](https://drive.google.com/file/d/1CpzIs4EytZGfij7v-oltKGg4q8uepfVI/view?usp=sharing) \t|\n| Scala               \t| Trained on https://github.com/apache/spark/tree/master/mllib          | [link](https://drive.google.com/file/d/1ojYNJOIvWjPO3Nc9BCcY_NRrxyumAKeh/view?usp=sharing) \t|\n| Scikit-learn         \t| Trained on https://github.com/scikit-learn/scikit-learn         \t| [link](https://drive.google.com/file/d/1Hl_DcXOSH8B6IxJ9fHBmoSkEOXFQ1q86/view?usp=sharing) \t|\n| Swift         \t| Trained on https://github.com/raywenderlich/swift-algorithm-club      | [link](https://drive.google.com/file/d/1f6TQQL7lvWRlq7t17B0qn-fN0CRZU71h/view?usp=sharing) \t|\n\n\nOnce you download the file, you will need to place it in `~/.mltype/languages`.\nNote that if the folder does not exist you will have to create it. The file name\ncan be changed to whatever you like. This name will then be used to\nrefer to the model.\n\nTo verify that the model was downloaded succesfully, try to sample from it.\n**Note that this might take 20+ seconds the first time around.**\n\n```bash\nmlt sample my_new_model\n```\n\nFeel free to create an issue if you want me to train a model for you. Note\nthat you can also do it yourself easily by reading the documentation (`mlt \ntrain`) and getting a GPU on Google Colab (click the badge below for a ready to\nuse notebook).\n\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1UfcE0qaAtq2SqSZRXbFUF8yfGgQaWZ5K?usp=sharing)\n\n\n# Credits\nThis project is very much motivated by the The Unreasonable Effectiveness of \nRecurrent Neural Networks by Andrej Karpathy.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjankrepl%2Fmltype","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjankrepl%2Fmltype","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjankrepl%2Fmltype/lists"}