npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

codetype

v1.0.1

Published

Offline terminal code-typing practice game (Python-powered)

Readme

⌨️ CodeType

Offline terminal code-typing practice — sharpen your speed on real code.

npm version npm downloads license python

A fast, distraction-free typing trainer that runs entirely in your terminal. Practice on real snippets across nine languages, track your WPM, and beat your own records — no browser, no accounts, no network.


✨ Features

  • Real code, nine languages — Python, JavaScript, TypeScript, C, Go, Rust, Java, SQL, and Bash.
  • Speed-test mode — a fresh block of common words each run for raw typing speed.
  • Live metrics — WPM, accuracy, and a timer that starts on your first keystroke.
  • Smart indentation — leading whitespace on new lines auto-skips, so you type code, not spaces.
  • Persistent stats — every run is saved locally; view your history and per-language bests anytime.
  • Fully offline — pure Python standard library (curses). No dependencies, no telemetry.

🚀 Installation

Via npm (recommended)

npm install -g codetype
codetype

Requires Python 3.8+ on your PATH. The npm package ships a small Node launcher that runs the bundled Python game. On Windows the launcher will prompt you to pip install windows-curses if needed.

Via pip / pipx

If you prefer a native Python install:

pipx install codetype-cli
codetype

Or from a clone:

git clone https://github.com/rohan4naik/codetype-cli
cd codetype-cli
pip install .
codetype

No install

Run straight from a clone:

python3 -m codetype

🎮 How to play

  1. Pick a mode from the menu — a language, sentences (speed test), or random.
  2. Type the snippet exactly. Correct characters turn green; mistakes flash red and must be backspaced before you can continue.
  3. Press Enter at the end of each line — indentation on the next line is skipped for you.
  4. Watch your stats update live in the header, then review your result on the finish screen.

Select history from the menu to see your last 15 runs and all-time bests per language.


⌨️ Keys

| Key | Action | | --- | --- | | / k j | Navigate menu | | Enter | Select / new line / next snippet | | Backspace | Fix a mistake | | Tab | Restart current snippet | | Esc | Back to menu / quit |


📊 Stats

Every completed run is appended to ~/.codetype/stats.json — WPM, accuracy, errors, time, and date. The results screen highlights a ★ new best whenever you beat your record for that language.


🧩 Adding your own snippets

Edit codetype/snippets.py — append strings to any language list, or add a new language key. Use spaces for indentation, not tabs.


📄 License

MIT © rohan4naik