AI-powered exam assistance tool with stealth features
Project description
EXATOR
AI-powered exam assistance tool with screenshot analysis and stealth display features.
✨ Features
- 📸 Screenshot Capture: Interactive screen region selection with visual overlay
- 🤖 AI Analysis: Uses OpenAI GPT-4/5 to analyze questions and provide accurate answers
- 🛡️ Stealth Mode: Disguised as Windows Security popup with fake/real content toggle
- 📝 Automatic Logging: Questions, answers, and screenshots saved with timestamps
- ⌨️ Global Hotkeys: Quick access via keyboard shortcuts (works across all apps)
- 💾 Screenshot Archive: Organized storage of captured images for later review
- 🎯 Multi-Subject Support: Works with math, science, programming, and more
🚀 Quick Start
-
Clone and install:
git clone https://github.com/martian56/exator.git cd exator pip install -e .
-
Configure API key:
# Copy example env file cp .env.example .env # Edit .env and add your OpenAI API key # OPENAI_API_KEY=sk-...
-
Run:
exator
That's it! Press Ctrl+Alt+Shift+X to capture your first question.
📦 Installation
From PyPI (once published)
pip🎮 Usage
### Hotkeys
| Hotkey | Action |
|--------|--------|
| `Ctrl+Alt+Shift+X` | Capture and analyze a question |
| `Ctrl+Alt+Shift+A` | Toggle answer box visibility |
| `Ctrl+Alt+Shift+Q` | Quit the application |
### Step-by-Step Workflow
1. **Launch EXATOR**
```bash
exator
The application runs in the background, listening for hotkeys.
-
Capture a Question
- Press
Ctrl+Alt+Shift+X - Your screen will dim with a semi-transparent overlay
- Click and drag to select the region containing the question
- Release to capture (or press
ESCto cancel)
- Press
-
Wait for Analysis
- The screenshot is sent to OpenAI for analysis
- Processing typically takes 2-5 seconds
- A notification confirms when the answer is ready
-
View the Answer
- Press
Ctrl+Alt+Shift+Ato show the answer box - The box appears as a "Windows Security" alert (stealth mode)
- Click the ⓘ button in the top-right to toggle between:
- 🛡️ Fake security warning (for stealth)
- 📋 Real answer with full details
- Press
-
Review Later
- All captures are saved to
screenshots/with timestamps - Answers logged to
answers.txtwith metadata
- All captures are saved to
- Python 3.8 or higher
- Windows OS (required for keyboard hooks and window styling)
- OpenAI API key (Get one here)
⚙️ Configuration
Create a .env file in your working directory (or project root):
OPENAI_API_KEY=your_openai_api_key_here
You can also use the provided .env.example as a template:
🔍 Features in Detail
Stealth Display System
The answer box disguises itself as a Windows Security alert to avoid detection:
- Default View: Shows a convincing fake security warning about threats
- Toggle Button: Click the ⓘ icon to reveal the real answer
- Window Styling: Uses Windows UI fonts (Segoe UI) and colors
- Always on Top: Stays visible above other windows when shown
- Resizable: Adjust size as needed while maintaining stealth appearance
AI-Powered Analysis
EXA📋 Requirements
System Requirements
- OS: Windows 10/11 (required for keyboard hooks and window styling)
- Python: 3.8 or higher
- RAM: 512 MB minimum (more for large screenshots)
- Disk: 100 MB for installation + space for screenshots
API Requirements
- OpenAI API Key: Required for AI analysis
- Model Access: GPT-4 or GPT-5 (configured in code)
- Credits: API calls cost varies by model and usage
Python Dependencies
Core dependencies (auto-installed):
openai>=1.0.0 # AI analysis via OpenAI API
pillow>=10.0.0 # Image processing and manipulation
pyautogui>=0.9.50 # Screenshot capture functionality
keyboard>=0.13.5 # Global hotkey detection
python-dotenv>=1.0.0 # Environment variable management
📁 Project Structure
exator/
├── src/exator/ # Main package source
│ ├── __init__.py # Package initialization & exports
│ ├── __main__.py # CLI entry point (exator command)
│ ├── core.py # Core logic, AI analysis, capture flow
│ ├── display.py # Answer display box with stealth UI
│ └── selector.py # Interactive region selector
├──🛠️ Development
### Setting Up Development Environment
```bash
# Clone repository
git clone https://github.com/martian56/exator.git
cd exator
# Create virtual environment
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux/Mac
# Install in editable mode with dev dependencies
pip install -e ".[dev]"
Development Dependencies
**IMPORTANT**: This tool is provided for educational and research purposes only.
- Using this tool to cheat on exams or assessments may violate academic integrity policies
- Users are solely responsible for ensuring compliance with applicable rules and regulations
- The authors and contributors are not responsible for any misuse of this software
- This tool should be used ethically and legally
## 🤝 Contributing
Contributions are welcome! Here's how you can help:
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
Please ensure:
- Code follows Black formatting
- New features include tests
- Documentation is updated
## 📄 License
MIT License - see [LICENSE](LICENSE) file for details
Copyright (c) 2026 Martian
## 🙏 Acknowledgments
- OpenAI for providing the GPT API
- Contributors and users of this project
- Open source community for the excellent tools used
## 📞 Support
- **Issues**: [GitHub Issues](https://github.com/martian56/exator/issues)
- **Discussions**: [GitHub Discussions](https://github.com/martian56/exator/discussions)
---
**Version**: 5.0.0
**Status**: Active Development
**Last Updated**: February 2026
- `flake8` - Linter
### Code Style
This project uses [Black](https://github.com/psf/black) for code formatting:
```bash
# Format all code
black src/
# Check formatting without changes
black --check src/
Linting with flake8:
flake8 src/
Running Tests
# Run all tests
pytest
# Run with verbose output
pytest -v
# Run specific test file
pytest tests/test_core.py
Building Distribution
# Install build tools
pip install build twine
# Build package
python -m build
# Check the distribution
twine check dist/*
# Upload to PyPI (when ready)
twine upload dist/*
🐛 Troubleshooting
"No module named 'exator'"
Make sure you've installed the package:
pip install -e .
"OpenAI API key not found"
Check that your .env file exists and contains:
OPENAI_API_KEY=sk-your-key-here
Hotkeys not working
- Run as administrator (required for keyboard hooks on Windows)
- Check if another application is using the same hotkeys
- Ensure
keyboardpackage installed correctly
Answer box not showing
- Press
Ctrl+Alt+Shift+Ato toggle visibility - Check if window is hidden behind other applications
- Verify tkinter is available:
python -m tkinter
Screenshot capture fails
- Ensure you have screen access permissions
- Check if multiple monitors are causing issues
- Try selecting a smaller region
AI analysis errors
- Verify OpenAI API key is valid
- Check your API quota/credits
- Ensure internet connection is stable
- Review API status at status.openai.com
Screenshot Management
- Screenshots saved to
screenshots/directory - Filename format:
screenshot_YYYYMMDD_HHMMSS.png - Organized chronologically for easy review
- Full-resolution captures preserve quality
Workflow
- Launch EXATOR with
exatorcommand - Press Ctrl+Alt+Shift+X when you see a question
- Drag to select the question region on screen
- Wait for AI analysis (answer box will appear hidden)
- Press Ctrl+Alt+Shift+A to show the answer box
- Click the ⓘ button to toggle between fake security message and real answer
Features in Detail
Stealth Display
The answer box disguises itself as a Windows Security alert. By default, it shows a fake security warning. Click the info button (ⓘ) to reveal the actual answer.
Automatic Logging
All questions, answers, and screenshots are automatically saved to answers.txt with timestamps and metadata.
Screenshot Management
Screenshots are saved in the screenshots/ directory with timestamps for later review.
Requirements
- Python 3.8+
- Windows OS (for keyboard hooks and window styling)
- OpenAI API key
Dependencies
- openai - AI analysis
- pillow - Image processing
- pyautogui - Screenshot capture
- keyboard - Hotkey detection
- python-dotenv - Environment variable management
Development
Install in development mode
pip install -e ".[dev]"
Run tests
pytest
Format code
black src/
Disclaimer
This tool is for educational purposes only. Use responsibly and in accordance with academic integrity policies.
License
MIT License - see LICENSE file for details
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file exator-5.0.0.tar.gz.
File metadata
- Download URL: exator-5.0.0.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
341f698f593a33b1ca40db5cbd5b1d8dd321c7d03e0f565b507cc8fdd0c716ad
|
|
| MD5 |
6d9382dc9817200f984e60a8211aea35
|
|
| BLAKE2b-256 |
c72203de9d8e9d6d996ae982078c73c3199d8c9362855733a2e3344c4f7f8700
|
File details
Details for the file exator-5.0.0-py3-none-any.whl.
File metadata
- Download URL: exator-5.0.0-py3-none-any.whl
- Upload date:
- Size: 15.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
445ee427211e64e7f6c62b499a9e217f880d1b06edbac2c4ac492775ee0c890e
|
|
| MD5 |
d8c5687564a3aae34972c2951a521d6b
|
|
| BLAKE2b-256 |
96838c4b3f3d825c0658c50e21aa2d0ec8146a1de98d70dd0c7c5af6c335261e
|