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)