MCPcopy Index your code
hub / github.com/Lioness100/guess-that-lang

github.com/Lioness100/guess-that-lang @v1.0.20

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.20 ↗ · + Follow
64 symbols 100 edges 6 files 17 documented · 27%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Guess That Lang!

Share Your High Score

CLI game to see how fast you can guess the language of a code block!

If you like the game, please consider giving a ⭐!

Game Demo

Code is retrieved from either random repos or random gists on GitHub using any of the top 24 most popular languages from the Stack Overflow 2022 Developer Survey. VBA is replaced with Dockerfile

The code is then processed in a number of ways to make the experience more enjoyable.

Installation

Using Prebuilt Binaries

With Bash

sh curl -fsSL "https://bina.egoist.dev/Lioness100/guess-that-lang" | sh

Using Bina

Manual Installation

Prebuilt binaries are available for Windows, Linux, and macOS and can be found attached to the latest release.

Building From Source

⚠️ Rust 1.63.0 or higher is required to build. Rust can be updated with rustup update.

Install Rust and then run:

cargo install guess-that-lang

Usage

It's strongly recommended to provide a Github personal access token. This will allow the game to make more Github requests before getting ratelimited. Click here to make one (no scopes are required).

⚠️ Resizing the terminal window while playing will cause the game to go a bit wonky.

# Tokens will be stored in a config file so you only need to input them once.
guess-that-lang --token "XXX" # or -t

# Get code from gists rather than repos.
# Repos generally provide better code quality, but gists require less API calls.
guess-that-lang --provider gists # or -p

# Wait 5 seconds after showing the options before starting to reveal code. (Default: 1500)
guess-that-lang --wait 5000 # or -w

# Reveal lines in random order instead of top to bottom. (Default: false)
guess-that-lang --shuffle # or -s

# Theme overrides will be stored in a config file so you only need to input them once.
guess-that-lang --theme dark
guess-that-lang --theme light

Acknowledgements

This game takes heavy inspiration from both guessthiscode and stripcode.

Contributing

I'm a beginner at Rust, so if you see any code that can be improved or have any general ideas, please let me know! Feel free to open an issue or a pull request.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 36
Class 15
Function 10
Interface 2
Enum 1

Languages

Rust100%

Modules by API surface

src/terminal.rs24 symbols
src/providers/mod.rs13 symbols
src/providers/repos.rs9 symbols
src/providers/gists.rs9 symbols
src/game.rs6 symbols
src/main.rs3 symbols

For agents

$ claude mcp add guess-that-lang \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page