最近在逛 GitHub 的时候,发现了一个让人眼前一亮的项目——GitType。
见过太多号称“提高效率”的工具,什么代码生成、自动补全、AI 助手……但这个反其道而行之。它干了一件很“歪”的事:把你自己的代码,变成打字练习题。
没错,就是那种你凌晨三点写的、变量名乱起一气的代码,现在全成了“修炼材料”。脑洞属实有点大。
项目简介
GitType 是一个 Rust 编写的 CLI 代码打字游戏,能把你的源代码(或者任意 GitHub 仓库的代码)变成打字挑战。

它的核心理念就写在 README 里:Show your AI who's boss — just you, your keyboard, and your coding sins.
让 AI 看看谁才是老大——只有你、你的键盘,和你那些不忍直视的代码“罪证”。
练习内容可以是自己的项目代码,也可以是 GitHub 上正在流行的开源仓库。一边练打字,一边重温自己当年写下的“精彩”逻辑,或者细细膜拜大佬们的经典代码。
支持 20+ 编程语言,从 Rust、Python、Go 到 Java、C++、Zig,覆盖面很广。底层用 tree-sitter 做语法解析,代码片段提取非常精准。
功能特色
用自己的代码当素材
直接 cd 到项目目录,运行 GitType,它会自动扫描当前目录下的代码文件,随机抽取片段让你敲。熟悉的代码,陌生的手感,很有意思。
实时数据反馈
打字过程中会显示 实时 WPM(每分钟单词数)、准确率、连贯性 等指标。每一把打完都能看到自己的表现,进步肉眼可见。
除了单局统计,还有性能趋势图表,帮你长期追踪自己的打字成长曲线。
多模式 + 段位系统
提供普通模式、限时模式、多种难度(从 Easy 到 Zen)。完成挑战后获得开发者头衔,从 “Hello World Newbie” 一路升到 “Quantum Computer”,每个段位还有 ASCII 艺术图,仪式感拉满。
游戏模式与挑战流程也很清晰:标题界面 → 加载代码 → 倒计时 → 打字挑战 → 成绩统计 → 下一关,一气呵成。
直接玩热门仓库
不想用自己的代码?没问题。
GitType --repo clap-rs/clap 就能直接拉取任意 GitHub 仓库来练。还有一个 GitType trending 命令,可以浏览 GitHub 当日热门仓库,按语言筛选,挑一个来挑战。
颜值在线
内置 15+ 种主题,支持暗色/亮色模式,也能自定义配色。界面用 ratatui 库构建,布局清晰,在终端里看着很舒服。
随时暂停,随时继续
打到一半被叫去开会?按一下暂停,回来接着敲,数据不会丢。这个细节很贴心。
快速安装、使用
安装方式有多种,选你最顺手的就行。
一键脚本(Linux / macOS / Windows 通用)
curl -sSL https://raw.githubusercontent.com/unhappychoice/GitType/main/install.sh | bash
Homebrew(macOS / Linux)
brew install GitType
Cargo(通用,需要 Rust 环境)
cargo install GitType
装完直接 cd 进项目目录,敲一个命令就能开始:
# 进入你的项目目录,直接开打
cd ~/your-project
GitType
# 指定某个仓库路径
GitType /path/to/another/repo
# 直接拉 GitHub 上的仓库来练
GitType --repo clap-rs/clap
GitType --repo https://github.com/ratatui-org/ratatui
# 浏览今日 GitHub 趋势榜
GitType trending
# 按语言筛选趋势榜
GitType trending rust
第一次运行会自动下载依赖并解析代码,之后就很流畅了。
结语
实际试玩十几分钟,第一感觉是:这比那些在线打字网站有意思多了。敲的是自己一段段亲手写下的代码,莫名有种熟悉感与羞耻感并存——原来我曾经写过这么长的函数名……
有时一个小工具的价值不在于它有多复杂,而在于它把两件事合在一起,恰好就对了。GitType 大概就是这样。想了解更多细节,可以去项目地址看看:https://github.com/unhappychoice/GitType
如果你对这种能在终端里玩出花样的工具感兴趣,不妨来云栈社区和同好们一起交流体验。