This is a submission for the GitHub Copilot CLI Challenge
๐ฎ InterviewQuest: Level Up Your Interview Skills in the Terminal
Ever wished you could practice coding interviews without leaving your terminal? Meet InterviewQuest - a gamified, terminal-based interview simulator that makes practicing technical interviews actually fun!
๐ What is InterviewQuest?
InterviewQuest is a production-quality CLI application that helps developers practice technical interview questions in a gamified environment. Think of it as a terminal game meets interview prep - with lives, streaks, and adaptive difficulty!
โจ Key Features
- ๐ฏ Guess the Output Mode - Analyze code snippets and predict their output
- ๐ Lives System - Start with 3 hearts, lose one on wrong answers
- ๐ฅ Streak Bonuses - Get 3 correct in a row to level up difficulty
- ๐ Score Tracking - Track your progress and accuracy
- ๐ง Adaptive Difficulty - Automatically adjusts based on your performance
- ๐จ Beautiful UI - Centered, colorful terminal interface with animations
- โก Zero Dependencies - Minimal, fast, and reliable
- ๐ค AI Integration - Optional GitHub Copilot support for evaluation
๐ฌ Demo
๐ Prerequisites
Before you start, make sure you have:
- Node.js >= 18
- Git
- Terminal with minimum size 60x20
๐ Installation & Setup
Since the app isn't published on npm yet, you can run it directly from the GitHub repository:
Method 1: Clone and Run (Recommended)
# Clone the repository
git clone https://github.com/anupamthakur-dev/interview-quest.git
# Navigate to the directory
cd interview-quest
# Install dependencies
npm install
# Build the project
npm run build
# Run the game (default mode - no AI)
npm start
# Or run with AI features enabled
npm run start:ai
# Alternative: direct command with AI
node dist/bin/interviewquest.js --ai
Note: In local development, AI is disabled by default. Use
npm run start:aior add the--aiflag to enable GitHub Copilot features.
Method 2: Install Globally (Local Development)
(not yet published on npm)
# Clone and navigate
git clone https://github.com/anupamthakur-dev/interview-quest.git
cd interview-quest
# Install dependencies and build
npm install
npm run build
# Link globally
npm link
# Now you can run it from anywhere!
interviewquest
# Or with AI features
interviewquest --ai
To unlink later:
npm unlink -g interviewquest
Tip: When installed globally via npm (after publishing), AI features will be enabled by default. In local development, use the
--aiflag to enable them.
๐ฎ How to Play
Starting the Game
npm start
Game Modes
1. Guess the Output ๐ฏ
The main game mode where you:
- View a code snippet
- Predict what it will output
- Submit your guess (multi-line supported!)
- Get instant feedback
Lives System:
- Start with 3 hearts โค๏ธ โค๏ธ โค๏ธ
- Lose one on wrong answer
- Game over when you run out!
Streak Bonuses:
- Get 3 correct in a row ๐ฅ๐ฅ๐ฅ
- Difficulty automatically increases
- Earn bonus points!
Difficulty Levels:
- ๐ข Easy - Basic concepts
- ๐ก Medium - Practical applications
- ๐ด Hard - Advanced concepts
2. Interview Mode ๐ค (Coming Soon)
- Realistic interview simulation
- Timed challenges
- AI evaluation with detailed feedback
3. Practice Grounds ๐ (Coming Soon)
- Unlimited practice
- No time pressure
- Learn at your own pace
โจ๏ธ Controls
In-Game Controls
Guess the Output:
- Type your answer
- Press
Enterfor new line - Press
Ctrl+Sto submit - Use arrow keys to navigate
Menus:
- Use
โโarrow keys to navigate - Press
Enterto select - Press
EscorCtrl+Cto exit
๐ ๏ธ Tech Stack
Built with modern, minimal dependencies:
- TypeScript - Type-safe development
- Node.js - Runtime environment
- Chalk - Terminal styling
- Figlet - ASCII art headers
- Custom Terminal Wrapper - Responsive, centered UI
Architecture:
- Modular, scalable structure
- Custom animations (no heavy libraries!)
- Native readline for input
- Clean separation of concerns
๐ Project Structure
interview-quest/
โโโ bin/
โ โโโ interviewquest.ts # Entry point
โโโ src/
โ โโโ app/ # App initialization
โ โโโ ui/ # Terminal UI components
โ โโโ game/ # Game logic & modes
โ โโโ questions/ # Question bank
โ โโโ evaluation/ # Answer evaluation
โ โโโ utils/ # Utilities
โโโ dist/ # Compiled output
๐จ Screenshots
Intro page
Main Menu
Gameplay
Results
โ๏ธ Configuration
Default Mode (No Setup Required)
The app runs in default mode with built-in questions:
- โ Works immediately after installation
- โ No external dependencies required
- โ Perfect for getting started!
Just run and play:
npm start
# or if linked globally
interviewquest
Enable AI Features (Optional)
Want AI-powered code generation and evaluation? Use the --ai flag:
Prerequisites:
- GitHub CLI installed:
gh --version - Copilot extension:
gh extension install github/gh-copilot - Authenticated:
gh auth login - GitHub Copilot subscription
Local Development:
# Using npm scripts
npm run start:ai
npm run dev:ai
# Or with flag
interviewquest --ai
node dist/bin/interviewquest.js --ai
After Publishing (Production):
# AI enabled by default!
npm install -g interviewquest
interviewquest # AI already enabled
# Disable if needed
interviewquest --no-ai
Available Flags:
interviewquest --help # Show help
interviewquest --version # Show version
interviewquest --ai # Enable AI features
interviewquest --copilot # Same as --ai
interviewquest -c # Short form
interviewquest --no-ai # Disable AI (production)
What you get with AI:
- ๐ค AI-generated code challenges
- ๐ก Smarter answer evaluation
- ๐ Detailed feedback and explanations
- ๐ฏ More varied question types
Environment Behavior:
- ๐ Local Development: AI disabled by default (use
--aito enable) - ๐ Production: AI enabled by default (use
--no-aito disable)
๐ค Contributing
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Commit with clear messages
git commit -m "Add amazing feature"
- Push to your fork
git push origin feature/amazing-feature
- Open a Pull Request
Development Setup
# Clone your fork
git clone https://github.com/YOUR_USERNAME/interview-quest.git
cd interview-quest
# Install dependencies
npm install
# Start development mode
npm run dev
๐บ๏ธ Roadmap
Current Features โ
- [x] Guess the Output mode
- [x] Lives system
- [x] Streak bonuses
- [x] Adaptive difficulty
- [x] Score tracking
- [x] Multi-line input support
- [x] Beautiful terminal UI
Coming Soon ๐
- [ ] Interview Mode with AI evaluation
- [ ] Practice Grounds (unlimited practice)
- [ ] More question categories
- [ ] Session persistence
- [ ] Leaderboard system
- [ ] Custom themes
- [ ] Question of the day
- [ ] Multiplayer mode (?)
๐ Stats
- Package Size: ~70 KB
- Dependencies: 3 (minimal!)
- Lines of Code: ~5,000+
- Supported Languages: JavaScript, TypeScript, DSA, System Design
- Question Bank: Growing weekly!
๐ Known Issues
- Terminal must be at least 60x20 for best experience
- Some emojis may not render correctly on older terminals
- Windows CMD has limited color support (use PowerShell or Windows Terminal)
๐ก Tips for Best Experience
-
Use a modern terminal:
- Windows: Windows Terminal or PowerShell
- Mac: iTerm2 or default Terminal
- Linux: gnome-terminal, konsole, or similar
Recommended terminal size: 80x24 or larger
Enable cursor blinking for better input visibility
Use dark theme for optimal color contrast
๐ Acknowledgments
- Built with love for the developer community
- Inspired by the need for better interview practice tools
- Thanks to all contributors and testers!
๐ฌ Contact & Support
- GitHub: https://github.com/anupamthakur-dev/interview-quest
- Issues: https://github.com/anupamthakur-dev/interview-quest/issues
- Author: Anupam Thakur
๐ฏ Quick Start Summary
# 1. Clone the repo
git clone https://github.com/anupamthakur-dev/interview-quest.git
# 2. Install & build
cd interview-quest
npm install
npm run build
# 3. Start playing!
npm start # Default mode (no AI)
npm run start:ai # With AI features
# 4. Optional: Install globally
npm link
interviewquest # Run from anywhere
interviewquest --ai # With AI features
# When published via npm (coming soon!)
npm install -g interviewquest
interviewquest # AI enabled by default
interviewquest --no-ai # Disable AI if needed
Quick Commands:
-
interviewquest- Run the game -
interviewquest --ai- Enable AI features (local dev) -
interviewquest --no-ai- Disable AI (production) -
interviewquest --help- Show all options -
interviewquest --version- Show version
Works immediately with built-in questions! No setup required.
Want AI features? Add --ai flag in local dev, or AI is enabled by default in production.
Star the repo โญ if you find it helpful!
Happy coding, and may your interviews be ever in your favor! ๐
Have questions or suggestions? Drop them in the comments below! ๐




Top comments (0)