Intelligent Terminal Error Helper - Advanced error detection and analysis for developers
Project description
Popat - The Intelligent Terminal Error Helper
Advanced error detection and analysis for developers
Popat is an intelligent coding assistant that automatically intercepts programming errors and provides helpful, context-aware responses to enhance debugging efficiency and reduce development time.
What Makes Popat Special?
Popat transforms the debugging experience by providing an intelligent assistant that watches your code, catches every error, and responds with personalized guidance. Whether you're a beginner learning to code or an experienced developer working on complex projects, Popat transforms frustrating error messages into clear, actionable insights.
Key Features
- Automatic Error Detection: Runs silently in background, catching errors from 25+ programming languages
- 5 Response Personalities: Choose your debugging companion (Encouraging, Sarcastic, Educational, Professional, Silly)
- Adaptive Learning: Gets smarter about your coding patterns and provides personalized assistance
- Universal Shell Integration: Works seamlessly with bash, zsh, fish, PowerShell, and cmd
- Comprehensive Language Support: Deep error pattern recognition for Python, JavaScript, Rust, Java, C++, Go, and more
- Progress Tracking: Monitors error patterns, learning progress, and coding improvement over time
- Zero-Configuration: Works out of the box with intelligent defaults
- Rich Terminal Output: Beautiful colors and formatted suggestions
Installation
Option 1: Quick Install (Recommended)
# Install via pip (includes Rust binary)
pip install popat
Option 2: From Source
# Clone and build from source
git clone https://github.com/An1rud/popat
cd popat
cargo build --release
Option 3: Direct Binary
Download pre-built binaries from GitHub Releases
Getting Started
Step 1: Start Popat Daemon
For enhanced personality responses:
popat start --noise
For standard mode:
popat start
Step 2: Code Normally - Popat Monitors Everything
Once started, Popat automatically catches and responds to ANY error:
# Try this Python code with a NameError:
python -c "print(undefined_variable)"
# Popat provides context-aware suggestions and fixes
# Try this JavaScript code with a TypeError:
node -e "console.log('hello' + undefined.property)"
# Popat analyzes and explains the error with solutions
Step 3: Stop When Done
popat stop
Complete Command Reference
Daemon Control
# Start with enhanced personality
popat start --noise
# Start with standard personality
popat start
# Stop daemon
popat stop
# Check daemon status
popat status
Direct Error Analysis
# Analyze specific error message
popat analyze "NameError: name 'x' is not defined" --language python
# Analyze error from file
popat analyze --file error.log --language javascript
# Auto-detect language (when possible)
popat analyze "compilation terminated."
# Override personality for single analysis
popat analyze "SyntaxError" --personality sarcastic
# Enable verbose output
popat --verbose analyze "TypeError" --language python
Configuration Management
# View current configuration
popat config --show
# Set personality
popat config --personality sarcastic
# Configure UI preferences
popat config --emoji true --colors auto
# Enable/disable learning
popat config --learning true
# View version information
popat --version
Shell Integration & Setup
# Set up shell integration
popat setup --shell bash # For bash
popat setup --shell zsh # For zsh
popat setup --shell fish # For fish
popat setup --shell powershell # For PowerShell
# Remove shell integration
popat setup --remove
Statistics and Learning
# View your error statistics
popat stats
# View detailed statistics
popat stats --detailed
# Reset learning data
popat stats --reset
Language-Specific Commands
# Run Python with automatic error detection
popat python -c "print(undefined_var)"
popat python script.py
# Run Node.js with automatic error detection
popat node -e "console.log(missing_var)"
popat node app.js
# Run Cargo with automatic error detection
popat cargo build
popat cargo test
Diagnostics and Logs
# Run diagnostic checks
popat doctor
# View recent logs
popat logs --tail 50
# Follow live logs
popat logs --follow
# Show usage examples
popat examples
Interactive and Testing
# Interactive mode for testing responses
popat interactive
# Test specific error types
popat interactive --error-type NameError
# Test with specific personality
popat interactive --personality sarcastic
# Get help for any command
popat --help
popat analyze --help
popat config --help
Available Response Personalities
Choose the companion that matches your preferred interaction style:
Encouraging - Supportive Assistant
Popat: "You're so close! Just need to define 'variable' first!"
Solution: "Check if you meant a different variable name"
Tip: "Use your IDE's autocomplete to avoid typos!"
Sarcastic - Direct Expert
Popat: "Oh please... 'undefined_variable' doesn't exist and you know it!"
Solution: "Maybe try DEFINING 'undefined_variable' first? Revolutionary idea!"
Note: "Reality check: Variables don't magically appear!"
Educational - Patient Teacher
Popat: "NameError occurs when Python can't find 'variable' in the current scope."
Solution: "Define 'variable' in the appropriate scope"
Learning: "Python has lexical scoping rules"
Professional - Business Consultant
Popat: "NameError: Variable 'x' is not defined in the current scope."
Solution: "Declare variable 'x' before use"
Recommendation: "Use consistent naming conventions"
Silly - Comic Relief
Popat: "BEEP BOOP! 'variable' has vanished into the digital void!"
Solution: "Summon 'variable' into existence with some code magic!"
Tip: "Variables need to be conjured before use!"
Advanced Usage
Background Monitoring
Once you run popat start, Popat will:
- Monitor all terminal commands automatically
- Detect errors from any programming language
- Provide instant, context-aware suggestions
- Learn from your patterns to improve over time
Shell Integration
Popat integrates deeply with your shell to catch errors automatically:
# Bash/Zsh users
popat setup --shell bash
source ~/.bashrc # or ~/.zshrc
# Fish users
popat setup --shell fish
# PowerShell users
popat setup --shell powershell
Language Support
Popat automatically detects and supports:
- Python: SyntaxError, NameError, IndentationError, ImportError
- JavaScript/Node.js: ReferenceError, TypeError, SyntaxError
- Rust: Compilation errors, linker errors
- Java: Compilation errors, runtime exceptions
- C/C++: Compilation errors, linker errors
- Go: Compilation errors, runtime panics
Configuration
Popat stores its configuration in your system's config directory. You can customize:
- Personality type
- Language preferences
- UI settings (colors, support)
- Privacy settings
- Learning behavior
How It Works
- Background Monitoring: Popat runs as a lightweight daemon process
- Error Interception: Shell hooks capture command outputs and error codes
- Pattern Matching: Advanced regex and context analysis identify error types
- Response Generation: AI-powered system generates personalized, helpful responses
- Learning: User interactions are analyzed to improve future suggestions
Troubleshooting
Common Issues & Solutions
Q: popat start --noise doesn't work
# Make sure Popat is properly installed
popat --version
# Run diagnostics to check installation
popat doctor
# Check if daemon is already running
popat status
# Try rebuilding if installed from source
cargo build --release
Q: Not detecting Python errors automatically
# Use Popat wrapper commands for immediate detection
popat python -c "print(undefined_var)"
# Or ensure shell integration is set up
popat setup --shell bash # or your shell
# Test with direct analysis
popat analyze "NameError: test" --language python
# Check diagnostics
popat doctor
Q: Responses are not engaging enough
# Make sure you're using the enhanced mode
popat stop
popat start --noise # This enables enhanced personality!
# Or set sarcastic as default
popat config --personality sarcastic
# Verify current configuration
popat config --show
Q: Shell integration not working
# Reload your shell after setup
source ~/.bashrc # bash
source ~/.zshrc # zsh
exec fish # fish
# Or restart your terminal entirely
Q: Permission errors on Windows
# Run PowerShell as Administrator for initial setup
# Then use regular terminal for normal operation
Debug Mode
# Run with verbose output to see what's happening
popat --verbose analyze "test error" --language python
# Run comprehensive diagnostics
popat doctor
# Check daemon logs
popat logs --tail 50
# Follow live logs for real-time debugging
popat logs --follow
Quick Start Summary
The command that enables intelligent error monitoring:
popat start --noise
This single command:
- Starts background monitoring
- Enables enhanced personality responses
- Automatically catches ALL programming errors
- Provides context-aware help with engaging responses
- Learns your patterns to get better over time
Then just code normally - Popat handles the rest!
Contributing
Join our mission to make debugging more efficient! We welcome:
- Bug Reports: Found an issue? Let us know!
- Feature Requests: Have ideas? We want to hear them!
- Language Support: Help add more programming languages
- Response Improvements: Make responses even more helpful
- Documentation: Improve guides and examples
- Testing: Add test cases for edge cases
Quick Contribution Guide
# Fork and clone
git clone https://github.com/An1rud/popat
cd popat
# Make changes
# Add tests
# Update documentation
# Test your changes
cargo test
cargo build --release
# Submit PR with detailed description
License & Legal
MIT License - Use Popat freely in personal and commercial projects.
See LICENSE for full terms.
Credits & Acknowledgments
Built with dedication and expertise using:
- Rust - For blazing fast performance and memory safety
- Python - For easy installation and cross-platform compatibility
- SQLite - For local data storage and learning persistence
- Crossterm - For beautiful colored terminal output
- Clap - For powerful CLI argument parsing
Special thanks to:
- Every developer who's ever stared at a confusing error message
- The Rust community for amazing tools and libraries
- Beta testers who helped make Popat better
- Coffee shops that fuel late-night coding sessions
Ready to Transform Your Debugging Experience?
Stop struggling with cryptic error messages!
Install Popat today and get an intelligent coding companion:
pip install popat
popat start --noise
Your code errors will never be confusing again!
Happy debugging! - The Popat Team
Complete Command Summary
| Command | Description | Example |
|---|---|---|
popat start |
Start daemon (normal) | popat start |
popat start --noise |
Start daemon (enhanced) | popat start --noise |
popat stop |
Stop daemon | popat stop |
popat status |
Check daemon status | popat status |
popat analyze |
Analyze error | popat analyze "NameError" |
popat config |
Manage settings | popat config --show |
popat python |
Run Python with detection | popat python script.py |
popat node |
Run Node.js with detection | popat node app.js |
popat cargo |
Run Cargo with detection | popat cargo build |
popat setup |
Configure shell integration | popat setup --shell bash |
popat stats |
View statistics | popat stats --detailed |
popat interactive |
Interactive testing mode | popat interactive |
popat logs |
View daemon logs | popat logs --tail 50 |
popat doctor |
Run diagnostics | popat doctor |
popat examples |
Show usage examples | popat examples |
popat --version |
Show version info | popat --version |
popat --verbose |
Enable verbose mode | popat --verbose analyze |
Language Support Matrix
| Language | Error Types Supported | Detection Level | Wrapper Available |
|---|---|---|---|
| Python | 25+ (NameError, TypeError, SyntaxError, IndentationError, ImportError, etc.) | Expert | py.bat |
| JavaScript/Node.js | TypeError, ReferenceError, SyntaxError, RangeError | Expert | js.bat |
| Rust | Compilation errors, borrow checker, linker errors | Good | Planned |
| Java | CompilationError, RuntimeException, ClassNotFound | Good | Planned |
| C/C++ | Compilation errors, linker errors, segfaults | Good | Planned |
| Go | Compilation errors, runtime panics | Good | Planned |
| PHP | Parse errors, fatal errors | Basic | Planned |
| Ruby | SyntaxError, NameError, NoMethodError | Basic | Planned |
Python Error Coverage (25+ Types)
NameError TypeError ValueError
KeyError IndexError AttributeError
SyntaxError IndentationError TabError
ImportError ModuleNotFoundError FileNotFoundError
PermissionError RecursionError ZeroDivisionError
AssertionError UnboundLocalError OverflowError
MemoryError KeyboardInterrupt SystemExit
StopIteration GeneratorExit FloatingPointError
Advanced Features
Automatic Background Monitoring
Once you run popat start --noise, Popat will:
- Monitor Everything: All terminal commands across all languages
- Instant Detection: Catches errors the moment they happen
- Context Awareness: Understands error context and provides relevant suggestions
- Adaptive Learning: Gets smarter about your coding patterns over time
- Zero Interference: Runs silently without affecting performance
Deep Shell Integration
Popat integrates seamlessly with your development environment:
# Bash/Zsh users - One-time setup
popat setup --shell bash
source ~/.bashrc # Reload shell
# Fish users
popat setup --shell fish
# PowerShell users (Windows)
popat setup --shell powershell
After setup, Popat automatically intercepts errors from:
- Direct command execution (
python script.py) - Build systems (
make,cargo build,npm run) - Package managers (
pip install,npm install) - Any command that produces stderr output
Configuration & Customization
Popat stores configuration in your system's config directory and can be customized via:
# Set default personality
popat config --personality sarcastic
# Configure UI preferences
popat config --emoji true --colors auto
# Privacy settings
popat config --learning true --telemetry false
# Language preferences
popat config --primary-language python --secondary-language javascript
# View current settings
popat config --show
Configuration Options
- Personality Types: encouraging, sarcastic, educational, professional, silly
- UI Settings: colors (auto/always/never), emoji support, output format
- Learning Behavior: adaptive responses, error pattern tracking, progress monitoring
- Privacy Controls: local-only data, telemetry opt-out, anonymous usage stats
- Language Priorities: Primary and secondary language detection preferences
How Popat Works (Under the Hood)
- Background Monitoring: Lightweight daemon process watches terminal activity
- Error Interception: Shell hooks capture command outputs and exit codes
- Pattern Matching: Advanced regex engine analyzes error messages for type and context
- Response Generation: Personality engine generates contextual, helpful responses
- Machine Learning: User interaction patterns improve future suggestions
- Local Storage: SQLite database stores learning data and user preferences locally
Architecture Overview
Terminal Command → Shell Hook → Error Detection → Pattern Analysis → Response Generation → User Display
↓
SQLite Learning DB ← Feedback Loop ← User Interaction
Performance & Requirements
- Memory Usage: ~5-10MB RAM (daemon mode)
- CPU Impact: <1% during normal operation
- Startup Time: <100ms for daemon initialization
- Response Time: <50ms for error analysis and response
- Storage: ~1-5MB for learning database
- Requirements:
- Rust 1.60+ (for building from source)
- Python 3.7+ (for pip installation)
- 50MB disk space
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
File details
Details for the file popat-0.1.3.tar.gz.
File metadata
- Download URL: popat-0.1.3.tar.gz
- Upload date:
- Size: 2.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9dbfdab7827634fd935ee7011770bfab52621c43eb47862db1c411e7b94f836a
|
|
| MD5 |
d55809f9b2fa1d85ccc113e196fd8c43
|
|
| BLAKE2b-256 |
44d6605bc2081278280922716e74249353c2003a3345a7990110e91518704ed8
|