Skip to content

weird-aftertaste/interview-helper-withoupaywall-opensource

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

79 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CodeInterviewAssist

⚠️ IMPORTANT NOTICE TO THE COMMUNITY ⚠️

This is a free, open-source initiative - NOT a full-service product!

There are numerous paid interview preparation tools charging hundreds of dollars for comprehensive features like live audio capture, automated answer generation, and more. This project is fundamentally different:

  • This is a small, non-profit, community-driven project with zero financial incentive behind it
  • The entire codebase is freely available for anyone to use, modify, or extend
  • Voice support is included and supports OpenAI Whisper and Groq Whisper
  • New features should come through community contributions - it's unreasonable to expect a single maintainer to implement premium features for free
  • The maintainer receives no portfolio benefit, monetary compensation, or recognition for this work

Before submitting feature requests or expecting personalized support, please understand this project exists purely as a community resource. If you value what's been created, the best way to show appreciation is by contributing code, documentation, or helping other users.

πŸ”‘ API KEY INFORMATION - UPDATED

We have tested and confirmed that OpenAI, Gemini, and Anthropic APIs work properly with the current version. Speech transcription also supports Groq Whisper. If you are experiencing issues with API keys:

  • Try deleting your API key entry from the config file located in your user data directory
  • Log out and log back in to the application
  • Check your API key dashboard to verify the key is active and has sufficient credits
  • Ensure you're using the correct API key format (OpenAI keys start with "sk-")

The configuration file is stored at: C:\Users\[USERNAME]\AppData\Roaming\interview-coder-v1\config.json (on Windows) or /Users/[USERNAME]/Library/Application Support/interview-coder-v1/config.json (on macOS)

Free, Open-Source AI-Powered Interview Preparation Tool

This project provides a powerful alternative to premium coding interview platforms. It delivers the core functionality of paid interview preparation tools but in a free, open-source package. Using your own provider API key(s), you get access to advanced features like AI-powered problem analysis, solution generation, and debugging assistance - all running locally on your machine.

Why This Exists

The best coding interview tools are often behind expensive paywalls, making them inaccessible to many students and job seekers. This project provides the same powerful functionality without the cost barrier, letting you:

  • Use your own API key (pay only for what you use)
  • Run everything locally on your machine with complete privacy
  • Make customizations to suit your specific needs
  • Learn from and contribute to an open-source tool

Customization Possibilities

The codebase is designed to be adaptable:

  • AI Models: The app already supports OpenAI, Gemini, and Anthropic for generation, and OpenAI/Gemini/Groq for transcription. You can still extend it with providers like Claude, Deepseek, Llama, or any model with an API. Core integration code is in electron/ProcessingHelper.ts and electron/TranscriptionHelper.ts, and UI settings are in src/components/Settings/SettingsDialog.tsx.
  • Languages: Add support for additional programming languages
  • Features: Extend the functionality with new capabilities
  • UI: Customize the interface to your preferences

All it takes is modest JavaScript/TypeScript knowledge and understanding of the API you want to integrate.

Features

  • 🎯 99% Invisibility: Undetectable window that bypasses most screen capture methods
  • πŸ“Έ Smart Screenshot Capture: Capture both question text and code separately for better analysis
  • πŸ€– AI-Powered Analysis: Automatically extracts and analyzes coding problems using configurable OpenAI/Gemini/Anthropic models
  • πŸ’‘ Solution Generation: Get detailed explanations and solutions with time/space complexity analysis
  • πŸ”§ Real-time Debugging: Debug your code with AI assistance and structured feedback
  • πŸŽ™οΈ Speech Recognition Helper: Record and transcribe interview conversations (OpenAI Whisper, Gemini audio models, or Groq Whisper) with AI-powered answer suggestions
  • 🎨 Advanced Window Management: Freely move, resize, change opacity, and zoom the window
  • πŸ”„ Model Selection: Configure extraction/solution/debug and answer-assistant models per provider
  • 🌐 OpenAI Advanced Settings: Optional custom OpenAI base URL and custom model override
  • πŸ”’ Privacy-Focused: Your API key and data stay local except requests sent to your selected AI/transcription provider

Global Commands

The application uses unidentifiable global keyboard shortcuts that won't be detected by browsers or other applications:

  • Toggle Window Visibility: [Control or Cmd + B]
  • Move Window: [Control or Cmd + Arrow keys]
  • Take Screenshot: [Control or Cmd + H]
  • Delete Last Screenshot: [Control or Cmd + L]
  • Process Screenshots: [Control or Cmd + Enter]
  • Start New Problem: [Control or Cmd + R]
  • Toggle Recording: [Control or Cmd + M] (Speech Recognition Helper)
  • Quit: [Control or Cmd + Q]
  • Decrease Opacity: [Control or Cmd + []
  • Increase Opacity: [Control or Cmd + ]]
  • Zoom Out: [Control or Cmd + -]
  • Reset Zoom: [Control or Cmd + 0]
  • Zoom In: [Control or Cmd + =]

Invisibility Compatibility

The application is invisible to:

  • Zoom versions below 6.1.6 (inclusive)
  • All browser-based screen recording software
  • All versions of Discord
  • Mac OS screenshot functionality (Command + Shift + 3/4)

Note: The application is NOT invisible to:

Prerequisites

  • Node.js (v16 or higher)
  • npm or bun package manager
  • OpenAI, Gemini, or Anthropic API Key (required for AI generation features)
  • Optional Groq API Key (required only if you choose Groq for transcription)
  • Screen Recording Permission for Terminal/IDE
    • On macOS:
      1. Go to System Preferences > Security & Privacy > Privacy > Screen Recording
      2. Ensure that CodeInterviewAssist has screen recording permission enabled
      3. Restart CodeInterviewAssist after enabling permissions
    • On Windows:
      • No additional permissions needed
    • On Linux:
      • May require xhost access depending on your distribution
  • Microphone Permission (required for Speech Recognition Helper)
    • On macOS:
      1. Go to System Preferences > Security & Privacy > Privacy > Microphone
      2. Ensure that CodeInterviewAssist has microphone permission enabled
    • On Windows:
      • Windows will prompt for microphone access when first using the feature
    • On Linux:
      • May require PulseAudio or ALSA configuration depending on your distribution

Running the Application

Quick Start

  1. Clone the repository:
git clone https://github.com/greeneu/interview-coder-withoupaywall-opensource.git
cd interview-coder-withoupaywall-opensource
  1. Install dependencies:
npm install
  1. RECOMMENDED: Clean any previous builds:
npm run clean
  1. Run the appropriate script for your platform:

For Windows:

stealth-run.bat

For Windows (hidden launcher, optional):

stealth-run-hidden.vbs

For macOS/Linux:

# Make the script executable first
chmod +x stealth-run.sh
./stealth-run.sh

IMPORTANT: The application window will be invisible by default! Use Ctrl+B (or Cmd+B on Mac) to toggle visibility.

Building Distributable Packages

To create installable packages for distribution:

For macOS (DMG):

# Using npm
npm run package-mac

# Or using yarn
yarn package-mac

For Windows (Installer):

# Using npm
npm run package-win

# Or using yarn
yarn package-win

The packaged applications will be available in the release directory.

What the scripts do:

  • Create necessary directories for the application
  • Clean previous builds to ensure a fresh start
  • Build the application in production mode
  • Launch the application in invisible mode

Notes & Troubleshooting

  • Window Manager Compatibility: Some window management tools (like Rectangle Pro on macOS) may interfere with the app's window movement. Consider disabling them temporarily.

  • API Usage: Be mindful of rate limits and credit usage for your selected provider. Vision calls are more expensive than text-only calls.

  • LLM Customization: You can easily customize the app to include LLMs like Claude, Deepseek, or Grok by modifying the API calls in ProcessingHelper.ts and related UI components.

  • Common Issues:

    • Run npm run clean before starting the app for a fresh build
    • Use Ctrl+B/Cmd+B multiple times if the window doesn't appear
    • Adjust window opacity with Ctrl+[/]/Cmd+[/] if needed
    • Some Windows systems may log Chromium cache warnings at startup; app startup can still succeed
    • For macOS: ensure script has execute permissions (chmod +x stealth-run.sh)

Comparison with Paid Interview Tools

Feature Premium Tools (Paid) CodeInterviewAssist (This Project)
Price $60/month subscription Free (only pay for your API usage)
Solution Generation βœ… βœ…
Debugging Assistance βœ… βœ…
Invisibility βœ… βœ…
Multi-language Support βœ… βœ…
Time/Space Complexity Analysis βœ… βœ…
Window Management βœ… βœ…
Speech Recognition βœ… βœ… (OpenAI Whisper + Gemini + Groq Whisper)
AI Answer Suggestions βœ… βœ… (Context-aware)
Conversation History βœ… βœ…
Auth System Required None (Simplified)
Payment Processing Required None (Use your own API key)
Privacy Server-processed 100% Local Processing
Customization Limited Full Source Code Access
Model Selection Limited Choice Between Models

Tech Stack

  • Electron
  • React
  • TypeScript
  • Vite
  • Tailwind CSS
  • Radix UI Components
  • OpenAI API
  • Google Gemini API
  • Anthropic API
  • Groq API (Whisper transcription)
  • Web Audio API (for speech recording)

How It Works

  1. Initial Setup

    • Launch the invisible window
    • Enter your provider API key(s) in Settings
    • Choose your preferred models for extraction, solution generation, debugging, and answer suggestions
  2. Capturing Problem

    • Use global shortcut [Control or Cmd + H] to take screenshots of code problems
    • Screenshots are automatically added to the queue of up to 2
    • If needed, remove the last screenshot with [Control or Cmd + L]
  3. Processing

    • Press [Control or Cmd + Enter] to analyze the screenshots
    • AI extracts problem requirements from screenshots using the configured extraction model
    • The model generates an optimal solution based on the extracted information
    • Analysis uses your selected provider and model settings
  4. Solution & Debugging

    • View the generated solutions with detailed explanations
    • Use debugging feature by taking more screenshots of error messages or code
    • Get structured analysis with identified issues, corrections, and optimizations
    • Toggle between solutions and queue views as needed
  5. Window Management

    • Move window using [Control or Cmd + Arrow keys]
    • Toggle visibility with [Control or Cmd + B]
    • Adjust opacity with [Control or Cmd + [] and [Control or Cmd + ]]
    • Window remains invisible to specified screen sharing applications
    • Start a new problem using [Control or Cmd + R]
  6. Language Selection

    • Easily switch between programming languages with a single click
    • Use arrow keys for keyboard navigation through available languages
    • The system dynamically adapts to any languages added or removed from the codebase
    • Your language preference is saved between sessions
  7. Speech Recognition Helper

    • Record interview conversations using your microphone with [Control or Cmd + M]
    • Automatically transcribe audio to text using OpenAI Whisper, Gemini audio models, or Groq Whisper
    • Toggle between "Interviewer" and "You" (Interviewee) speaker modes
    • Maintain conversation history with timestamps for both speakers
    • Get AI-powered answer suggestions when the interviewer asks questions
    • Suggestions are context-aware and consider:
      • Previous conversation history
      • Your previous answers for consistency
      • Screenshot context (if coding problems are captured)
    • View real-time transcription and suggestions in the Conversations view
    • All audio capture happens locally; only transcription requests are sent to your selected transcription provider
    • Supports both coding interviews (with screenshot context) and behavioral interviews

Adding More AI Models

This application is built with extensibility in mind. You can easily add support for additional LLMs alongside the existing OpenAI/Gemini/Anthropic integrations:

  • You can add Claude, Deepseek, Grok, or any other AI model as alternative options
  • The application architecture allows for multiple LLM backends to coexist
  • Users can have the freedom to choose their preferred AI provider

To add new models, simply extend the API integration in electron/ProcessingHelper.ts and add the corresponding UI options in src/components/Settings/SettingsDialog.tsx. The modular design makes this straightforward without disrupting existing functionality.

Configuration

  • API Keys: Provider keys are stored locally and only used for API calls to the selected provider(s)
  • Model Selection: Configure provider-specific models for each stage of processing:
    • Problem Extraction: Analyzes screenshots to understand the coding problem
    • Solution Generation: Creates optimized solutions with explanations
    • Debugging: Provides detailed analysis of errors and improvement suggestions
  • OpenAI Advanced Options:
    • Optional custom OpenAI base URL
    • Optional custom OpenAI model override
    • If your custom OpenAI-compatible endpoint does not support /audio/transcriptions, use Gemini or Groq for transcription
  • Transcription Settings:
    • Transcription provider: OpenAI, Groq, or Gemini
    • Whisper model selection for OpenAI/Groq and Gemini model selection in Settings
  • Language: Select your preferred programming language for solutions
  • Window Controls: Adjust opacity, position, and zoom level using keyboard shortcuts
  • All settings are stored locally in your user data directory and persist between sessions

Speech Recognition Helper Configuration

The Speech Recognition Helper supports OpenAI Whisper, Gemini audio models, and Groq Whisper transcription. To use this feature:

  1. Transcription Provider: Choose OpenAI, Gemini, or Groq in Settings
  2. API Key: Provide the matching API key for your selected provider
  3. Speech Recognition Model: Select a supported model in Settings
  4. Microphone Access: Grant microphone permissions when prompted
  5. Usage:
    • Press [Control or Cmd + M] to start/stop recording
    • Toggle speaker mode between Interviewer and You (Interviewee)
    • View transcribed conversation and AI suggestions in the Conversations view
    • Suggestions automatically appear when interviewer questions are detected

Note: Speech recognition requires an active API key for the selected transcription provider. Audio is captured locally and only sent for transcription. Conversation history remains local except transcription requests.

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).

What This Means

  • You are free to use, modify, and distribute this software
  • If you modify the code, you must make your changes available under the same license
  • If you run a modified version on a network server, you must make the source code available to users
  • We strongly encourage you to contribute improvements back to the main project

See the LICENSE-SHORT file for a summary of terms or visit GNU AGPL-3.0 for the full license text.

Contributing

We welcome contributions! Please see our Contributing Guidelines for more information.

Disclaimer and Ethical Usage

This tool is intended as a learning aid and practice assistant. While it can help you understand problems and solution approaches during interviews, consider these ethical guidelines:

  • Be honest about using assistance tools if asked directly in an interview
  • Use this tool to learn concepts, not just to get answers
  • Recognize that understanding solutions is more valuable than simply presenting them
  • In take-home assignments, make sure you thoroughly understand any solutions you submit

Remember that the purpose of technical interviews is to assess your problem-solving skills and understanding. This tool works best when used to enhance your learning, not as a substitute for it.

Support and Questions

If you have questions or need support, please open an issue on the GitHub repository.


Remember: This is a community resource. If you find it valuable, consider contributing rather than just requesting features. The project grows through collective effort, not individual demands.

About

interview-helper-withoupaywall-opensource

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE-SHORT

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 97.0%
  • JavaScript 0.6%
  • Batchfile 0.6%
  • Shell 0.6%
  • CSS 0.5%
  • HTML 0.5%
  • VBScript 0.2%