A lightweight, professional screenshot annotation tool designed for QA testing, bug reporting, and documentation. Built with PyQt5 for a modern, responsive interface.
- System Tray Integration - Runs quietly in the background
- Global Hotkey - Press
Ctrl+Alt+Sfrom anywhere to capture - Real-time Annotation - Draw while you capture
- Rectangle & Circle - Perfect shapes for highlighting
- Line & Arrow - Point to specific areas
- Pencil - Freehand drawing
- Text Tool - Add comments and labels
- Counter - Number elements sequentially
- Color Picker - Choose from predefined colors or custom colors
- Undo/Redo - Up to 50 levels of history
- Pre-loaded Templates - Common defect feedback phrases
- Drag & Drop - Move and edit annotations after creation
- Auto-save - Never lose your work
- Lightweight - Only ~40MB portable executable
- Fast Startup - Minimal resource usage
- No Dependencies - Self-contained portable application
- Download the latest release from Releases
- Extract the zip file containing
SnapTrace.exeanddefect_feedbacks.csv - Run
SnapTrace.exe - Look for the system tray icon
- Press
Ctrl+Alt+Sto start capturing!
# Clone the repository
git clone https://github.com/Jiyath5516F/SnapTrace.git
cd SnapTrace
# Install dependencies
pip install -r requirements.txt
# Run the application
python main.py- Python 3.10 or higher
- pip (Python package installer)
# Clone and enter directory
git clone https://github.com/Jiyath5516F/SnapTrace.git
cd SnapTrace
# Create virtual environment (optional but recommended)
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # macOS/Linux
# Install dependencies
pip install -r requirements.txt
# Run in development mode
python main.py# Make sure you're in the project root
cd SnapTrace
# Run the optimized build script
build_optimized.bat
# Find your executable in the dist/ folderThe build process creates:
dist/SnapTrace.exe- Optimized portable executable (~40MB)dist/defect_feedbacks.csv- Customizable feedback templates
SnapTrace/
├── main.py # Application entry point
├── requirements.txt # Python dependencies
├── SnapTrace.spec # PyInstaller configuration
├── build_optimized.bat # Build script for Windows
├── defect_feedbacks.csv # Feedback templates (root copy)
├── LICENSE # MIT License
├── README.md # This file
├── .gitignore # Git ignore rules
├── assets/ # Graphics and icons
│ ├── logo.ico
│ ├── logo.png
│ └── icons/ # Tool icons
├── data/ # Original data files
│ └── defect_feedbacks.csv
├── src/ # Source code
│ ├── __init__.py
│ ├── system_tray.py # System tray manager
│ ├── core/ # Core utilities
│ │ ├── constants.py
│ │ └── utils.py
│ └── ui/ # User interface
│ ├── main_window.py
│ ├── drawing_area.py
│ ├── screenshot_selector.py
│ ├── draggable_list.py
│ └── styles.py
└── scripts/ # Utility scripts
├── start_snaptrace.bat
└── start_snaptrace_silent.bat
- Global Hotkey: Press
Ctrl+Alt+Sfrom anywhere - System Tray: Right-click tray icon → "New Screenshot"
- Drag to Select: Click and drag to select screen area
- Select Tool: Click any drawing tool in the toolbar
- Draw: Click and drag on the screenshot
- Move Objects: Select the arrow tool, then drag annotations
- Delete: Select object and press Delete key
- Text: Click text tool, click on image, type your text
- Open
defect_feedbacks.csvin any text editor or Excel - Add your own feedback phrases
- Save the file
- Restart SnapTrace to load new templates
Example CSV format:
Feedback
UI element not aligned properly
Text is cut off in mobile view
Button color doesn't match design
Image resolution too low
Loading spinner needed here- OS: Windows 10 or later
- RAM: 50MB minimum
- Storage: 50MB for portable version
- Display: Any resolution (optimized for high-DPI)
- Dependencies: None (portable version is self-contained)
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow PEP 8 Python style guidelines
- Add docstrings to new functions
- Test your changes thoroughly
- Update documentation if needed
Found a bug or have an idea? We'd love to hear from you!
- Bug Reports: Create an Issue
- Feature Requests: Create an Issue
- Questions: Start a Discussion
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with PyQt5 for the GUI framework
- Icons from coolicons | Free Iconset
- Optimized with PyInstaller for portable distribution
- Size: ~40MB portable executable (~60% reduction from initial build)
- Startup Time: < 2 seconds
- Memory Usage: ~50MB during operation
- Dependencies: Zero (in portable mode)
Made with ❤️ for QA teams and developers who need fast, reliable screenshot annotation.
