gittype 0.10.2

A typing practice tool using your own code repositories
Documentation
<p align="center">
  <img src="docs/images/gittype-banner.png" alt="GitType" width="820">
</p>

<p align="center">
  <a href="https://crates.io/crates/gittype"><img src="https://img.shields.io/crates/v/gittype.svg?style=flat-square&color=E06B4B" alt="crates.io"></a>
  <a href="https://github.com/unhappychoice/gittype/releases"><img src="https://img.shields.io/github/v/release/unhappychoice/gittype?style=flat-square&color=E0C14B&label=release" alt="release"></a>
  <a href="https://github.com/unhappychoice/gittype/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/unhappychoice/gittype/ci.yml?branch=main&style=flat-square&label=CI" alt="CI"></a>
  <a href="https://codecov.io/gh/unhappychoice/gittype"><img src="https://img.shields.io/codecov/c/github/unhappychoice/gittype?style=flat-square" alt="codecov"></a>
  <a href="https://github.com/unhappychoice/gittype/blob/main/LICENSE"><img src="https://img.shields.io/crates/l/gittype.svg?style=flat-square" alt="license"></a>
</p>

<p align="center">
  <strong>Turn your own source code into typing challenges.</strong><br>
  <sub>Show your AI who's boss โ€” just you, your keyboard, and your coding sins.</sub>
</p>

<p align="center">
  <img src="docs/images/demo.gif" alt="GitType Demo" width="820">
</p>

## Features โœจ

- ๐Ÿฆ€๐Ÿโšก๐Ÿน๐Ÿ’Ž๐ŸŽ๐ŸŽฏโ˜•๐Ÿ˜#๏ธโƒฃ๐Ÿ”งโž•๐ŸŽญ๐ŸŽฏโšก๐Ÿ’ง๐Ÿ“ก **Multi-language**: Rust, TypeScript, JavaScript, Python, Go, Ruby, Swift, Kotlin, Java, PHP, C#, C, C++, Haskell, Dart, Scala, Clojure, Elixir, Erlang, Zig (more languages incoming!)
- ๐Ÿ“Š **Real-time metrics**: Live WPM, accuracy, and consistency tracking as you type
- ๐Ÿ† **Ranking system**: Unlock developer titles from "Hello World Newbie" to "Quantum Computer" with ASCII art
- ๐ŸŽฎ **Multiple game modes**: Normal, Time Attack, and custom difficulty levels (Easy to Zen)
- โธ๏ธ **Pause/resume**: Take breaks without ruining your stats
- ๐ŸŽฏ **Your own code**: Type functions from your actual projects, not boring examples
- ๐Ÿ”ฅ **Trending repositories**: Practice with hot GitHub repositories updated daily
- ๐ŸŽจ **15+ Themes**: Built-in themes with Dark/Light modes + custom theme support

## Installation ๐Ÿ“ฆ

### Quick Install (Recommended)
#### One-liner installation (Linux/macOS/Windows)
```bash
curl -sSL https://raw.githubusercontent.com/unhappychoice/gittype/main/install.sh | bash
```

#### Or with specific version
```bash
curl -sSL https://raw.githubusercontent.com/unhappychoice/gittype/main/install.sh | bash -s -- --version v0.5.0
```

### Homebrew (macOS/Linux)
```bash
brew install gittype
```

### Cargo (Universal)
```bash
cargo install gittype
```

### Nix (NixOS/Nix)
If you have [Nix](https://nixos.org/) installed, you can run GitType directly:

```bash
# Stable version (recommended)
nix run github:unhappychoice/gittype

# Development version (latest from main branch)
nix run github:unhappychoice/gittype#unstable
```

### Binary Downloads
Get pre-compiled binaries for your platform from our [releases page](https://github.com/unhappychoice/gittype/releases/latest).

Available platforms:
- `x86_64-apple-darwin` (Intel Mac)
- `aarch64-apple-darwin` (Apple Silicon Mac)
- `x86_64-unknown-linux-gnu` (Linux x64)
- `aarch64-unknown-linux-gnu` (Linux ARM64)
- `x86_64-pc-windows-msvc` (Windows)

## Quick Start ๐Ÿš€

```bash
# cd into your messy codebase
cd ~/that-project-you-never-finished

# Start typing your own spaghetti code (uses current directory by default)
gittype

# Or specify a specific repository path
gittype /path/to/another/repo

# Clone and play with any GitHub repository
gittype --repo clap-rs/clap
gittype --repo https://github.com/ratatui-org/ratatui
gittype --repo git@github.com:dtolnay/anyhow.git

# Discover and practice with trending GitHub repositories
gittype trending                    # Browse trending repos interactively
gittype trending rust               # Filter by language (Rust)

# Play with cached repositories interactively
gittype repo play
```

## Why GitType? ๐Ÿค”

- **Look busy at work** โ†’ "I'm studying the codebase" (technically true!)
- **Beat the AI overlords** โ†’ Type faster than ChatGPT can generate
- **Stop typing boring stuff** โ†’ Your own bugs are way more interesting than lorem ipsum
- **Discover forgotten treasures** โ†’ That elegant function you wrote at 3am last year
- **Procrastinate like a pro** โ†’ It's code review, but gamified!
- **Embrace your legacy code** โ†’ Finally face those variable names you're not proud of
- **Debug your typing skills** โ†’ Because `pubic static void main` isn't a typo anymore
- **Therapeutic code reliving** โ†’ Type through your programming journey, tears included
- **Climb the dev ladder** โ†’ From "Code Monkey" to "Quantum Computer" - each rank comes with fancy ASCII art

*"Basically, you need an excuse to avoid real work, and this one's pretty good."*

## Documentation ๐Ÿ“š

Perfect for when the game gets too addictive:

- **[Installation]docs/installation.md** - `cargo install` and chill
- **[Usage]docs/usage.md** - All the CLI flags your heart desires
- **[Playing Guide]docs/playing-guide.md** - Game modes, scoring, and ranks
- **[Themes]docs/themes.md** - 15+ built-in themes and custom theme creation
- **[Languages]docs/supported-languages.md** - What we extract and how
- **[Contributing]docs/CONTRIBUTING.md** - Join the keyboard warriors
- **[Architecture]docs/ARCHITECTURE.md** - For the curious minds

## Screenshots ๐Ÿ“ธ

![GitType Title Screen](docs/images/title.png)

![GitType Gaming](docs/images/gaming.png)

![GitType Result](docs/images/result.png)

![GitType Result](docs/images/stage-result.png)

![GitType Records](docs/images/records.png)

![GitType Records Detail](docs/images/records-detail.png)

![GitType Analytics Overview](docs/images/analytics-overview.png)

![GitType Analytics Trends](docs/images/analytics-trends.png)

![GitType Analytics Languages](docs/images/analytics-languages.png)

![GitType Analytics Repositories](docs/images/analytics-repositories.png)

![GitType Settings](docs/images/settings-theme.png)

## Related Projects ๐ŸŽจ

Prefer watching code over typing it? Check out [**Gitlogue**](https://github.com/unhappychoice/gitlogue) - A terminal screensaver that animates your Git commit history with realistic typing effects.

## License ๐Ÿ“„

[MIT](LICENSE) - Because sharing is caring (and legal requirements)

---

*Built with โค๏ธ and way too much caffeine by developers who got tired of typing "hello world"*

## Author

[@unhappychoice](https://unhappychoice.com)

## Support

If you find this project useful, please consider:

- โญ๏ธ [Star on GitHub]https://github.com/unhappychoice/gittype
- ๐Ÿฆ [Share on X]https://x.com/intent/post?text=gittype%3A%20a%20CLI%20typing%20game%20that%20uses%20your%20own%20source%20code%20as%20practice%20text%20%F0%9F%8E%AE&url=https%3A//github.com/unhappychoice/gittype&hashtags=gittype,CLI,Rust,typing
- ๐Ÿฆ‹ [Share on Bluesky]https://bsky.app/intent/compose?text=gittype%3A%20a%20CLI%20typing%20game%20that%20uses%20your%20own%20source%20code%20as%20practice%20text%20%F0%9F%8E%AE%20%23gittype%20%23CLI%20%23Rust%20%23typing%20https%3A//github.com/unhappychoice/gittype
- ๐Ÿงต [Share on Threads]https://www.threads.net/intent/post?text=gittype%3A%20a%20CLI%20typing%20game%20that%20uses%20your%20own%20source%20code%20as%20practice%20text%20%F0%9F%8E%AE%20%23gittype%20%23CLI%20%23Rust%20%23typing%20https%3A//github.com/unhappychoice/gittype
- ๐Ÿ’ผ [Share on LinkedIn]https://www.linkedin.com/sharing/share-offsite/?url=https%3A//github.com/unhappychoice/gittype
- ๐Ÿ“˜ [Share on Facebook]https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/unhappychoice/gittype
- ๐ŸŸง [Submit to Hacker News]https://news.ycombinator.com/submitlink?u=https%3A//github.com/unhappychoice/gittype&t=gittype%3A%20a%20CLI%20typing%20game%20that%20uses%20your%20own%20source%20code%20as%20practice%20text%20%F0%9F%8E%AE
- ๐Ÿ’ฌ Drop it into your Discord server or developer chat
- โœ๏ธ Write about it on your blog or in a newsletter

Every bit of support helps. Thanks!