testgram-cli
v1.0.0
Published
LeetCode-style algorithm challenges in your terminal
Maintainers
Readme
practice algorithms in your terminal
LeetCode-style algorithm challenges, straight in your terminal. Pick a language, pick a difficulty, solve the problem in your editor — the app runs the tests and awards XP.
Installation
npm install -g github:pelayocuervo/testgramRequires Node.js 16+. Works on Linux and macOS.
testgramFirst run
The first time you launch testgram a short wizard runs — choose your language (ES/EN), your editor, and optionally your username. Press ↵ to skip the username and use the default.
Config is saved locally. You can change any of these later by pressing G inside the app.
How it works
╭──────────────────────────────────────────────────────────────╮
│ ▀█▀ █▀▀ █▀ ▀█▀ █▀▀ █▀█ ▄▀█ █▀▄▀█ │
│ █ ██▄ ▄█ █ █▄█ █▀▄ █▀█ █ ▀ █ │
│ practice algorithms in your terminal │
│ │
│ User Lv.3 ████░░░░ 250 / 300 XP │
│ ──────────────────────────────────────────────────────── │
│ │
│ ★ Daily Two Sum [Easy] ×2 XP │
│ ────────────────────────────────── │
│ ▶ Easy │
│ Medium │
│ Hard │
│ │
╰──────────────────────────────────────────────────────────────╯- Select your language — TypeScript, JavaScript or Python
- Select a difficulty — the Daily Challenge sits at the top with a ×2 XP bonus
- Your editor opens with a function stub to implement
- Close the editor — testgram runs each test case automatically
- Pass all tests → earn XP and level up
Keyboard shortcuts
| Key | Action |
|-----|--------|
| ↑↓ | Navigate |
| ↵ | Select |
| E | Open editor |
| R | Run code (free run) |
| S | Submit against test cases |
| Q / Esc | Go back |
| G | Settings |
| H | History |
| ? | Quick guide |
Problem bank
41 problems across three difficulties, all classic LeetCode-style algorithms:
| Difficulty | Count | XP | |------------|-------|----| | 🟢 Easy | 9 | 50 XP | | 🟡 Medium | 20 | 200 XP | | 🔴 Hard | 12 | 500 XP |
The Daily Challenge awards ×2 XP and resets at midnight.
Level progression
Level N requires N × 100 XP to advance. XP overflow carries to the next level.
| Level | XP needed | |-------|--------------| | 1 → 2 | 100 XP | | 2 → 3 | 200 XP | | N → N+1 | N × 100 XP |
Local development
git clone https://github.com/pelayocuervo/testgram
cd testgram
pnpm install
pnpm deploy # build + link globally as testgrampnpm build # compile TypeScript → dist/
pnpm dev # watch mode
pnpm test # prettier + xo + ava
pnpm reset # wipe local config and historyBuilt with
- Ink — React for terminal UIs
- TypeScript
- Node.js
License
MIT
