Python Automation Toolkit - A comprehensive, production-ready collection of automation utilities for everyday tasks.
PyAutokit is a modular Python toolkit with 11 complete automation modules. Each module has a complete CLI with argparse and can be used programmatically. All modules are standalone, well-documented, and tested.
# Basic installation
pip install pyautokit
# With browser automation (Playwright)
pip install 'pyautokit[browser]'
playwright install # Download browser binaries
# With file watching
pip install 'pyautokit[watch]'
# With everything
pip install 'pyautokit[all]'git clone https://github.com/Gzeu/pyautokit.git
cd pyautokit
pip install -e '.[all]'See INSTALLATION.md for detailed installation guide.
# Organize files
pyautokit-organizer ~/Downloads --method category --dry-run
# Monitor crypto prices
pyautokit-crypto --coin EGLD --coin BTC
# Generate secure password
pyautokit-security genpass --length 20
# GitHub automation
pyautokit-github list-repos --user Gzeu
# Browser automation
pyautokit-browser screenshot https://example.com -o page.png
# Convert data
pyautokit-data convert data.csv --to json| Module | CLI Command | Description | Test Coverage |
|---|---|---|---|
| π File Organizer | pyautokit-organizer |
Organize files by category/date/size | 95%+ |
| π Web Scraper | pyautokit-scraper |
Scrape with BeautifulSoup4 | Partial |
| π§ Email Automation | pyautokit-email |
SMTP with templates | Partial |
| πΎ Backup Manager | pyautokit-backup |
Versioned backups (ZIP/TAR/TAR.GZ) | Partial |
| π Log Analyzer | pyautokit-logs |
Parse and analyze logs | Partial |
| π Data Processor | pyautokit-data |
CSV/JSON conversion & transforms | Partial |
| π Security Utils | pyautokit-security |
Encryption, hashing, passwords | Partial |
| βοΈ Blockchain Monitor | pyautokit-crypto |
Crypto price tracking | 80%+ |
| π§ API Client | pyautokit |
REST API with retry logic | Partial |
| π GitHub Utils | pyautokit-github |
Repo/Issue/PR management | 80%+ |
| π Playwright Browser | pyautokit-browser |
Browser automation & testing | 80%+ |
- Organize by extension, date, category, or size
- Smart categorization (Documents, Images, Videos, Code)
- Dry-run mode for safe testing
- Auto-watch mode for continuous organization
- Duplicate handling (rename, skip, overwrite)
- Directory statistics
- Ethical scraping with rate limiting
- BeautifulSoup4 for static sites
- CSS selector support
- Link extraction and text parsing
- Session management
- SMTP support (Gmail, custom servers)
- Template-based personalization
- Bulk email sending from CSV/JSON
- Attachment support
- HTML and plain text emails
- Dry-run mode
- Multiple compression formats (ZIP, TAR, TAR.GZ)
- Version management (keep N backups)
- Incremental backups
- Easy restore functionality
- Backup listing and filtering
- Parse common log formats
- Extract errors, warnings, patterns
- IP address and email extraction
- Timestamp analysis
- Statistical summaries
- Time range filtering
- CSV β JSON conversion
- Data filtering and transformation
- Aggregation (sum, avg, min, max, count)
- Deduplication by key
- Batch processing
- File encryption/decryption (Fernet)
- Password-based key derivation (PBKDF2)
- Secure password generation
- Hashing utilities (MD5, SHA256, SHA512)
- Token generation
- Key generation
- Real-time crypto price monitoring
- Support for EGLD, BTC, ETH, BNB, SOL
- 24h change tracking
- Market cap and volume data
- Trending coins detection
- Price alerts
- Continuous monitoring mode
- Create, list, delete repositories
- Manage issues (create, list, close, update)
- Manage pull requests (create, list, merge)
- Create releases and tags
- Trigger GitHub Actions workflows
- Complete GitHub API integration
- Authentication with tokens
- Multi-browser support (Chromium, Firefox, WebKit)
- Screenshot capture (full page, element-specific)
- PDF generation from web pages
- Web scraping (dynamic sites)
- Form filling and submission
- Click sequences and interactions
- HTTP authentication
- Mobile device emulation
- Network request monitoring
- JavaScript execution
- Headless and headed modes
pyautokit # Unified CLI entry point
pyautokit-organizer # File organization
pyautokit-scraper # Web scraping (BeautifulSoup)
pyautokit-email # Email automation
pyautokit-backup # Backup management
pyautokit-logs # Log analysis
pyautokit-data # Data processing
pyautokit-security # Encryption & security
pyautokit-crypto # Blockchain monitoring
pyautokit-github # GitHub automation (NEW!)
pyautokit-browser # Browser automation (NEW!)# File Organization
pyautokit-organizer ~/Downloads --method category --dry-run
pyautokit-organizer ~/Downloads --watch --interval 30
# Crypto Monitoring
pyautokit-crypto --coin EGLD
pyautokit-crypto --coin BTC --coin ETH --monitor --interval 300
# Security
pyautokit-security genpass --length 20
pyautokit-security encrypt file.txt file.enc --password secret
pyautokit-security hash file.txt --file --algorithm sha256
# Data Processing
pyautokit-data convert data.csv --to json
pyautokit-data filter data.json --field status=active
pyautokit-data aggregate data.json --field price --operation avg
# Backup
pyautokit-backup create ./myproject --compression tar.gz
pyautokit-backup list
pyautokit-backup restore backup.tar.gz ./restored
# GitHub (NEW!)
pyautokit-github list-repos --user Gzeu
pyautokit-github create-repo my-project --private
pyautokit-github list-issues --owner Gzeu --repo pyautokit
# Browser Automation (NEW!)
pyautokit-browser screenshot https://example.com -o page.png --full-page
pyautokit-browser pdf https://docs.com -o doc.pdf --format A4
pyautokit-browser scrape https://news.com -s "titles:h1" -o results.json
pyautokit-browser --browser firefox --headed screenshot https://example.com -o ff.pngfrom pyautokit import FileOrganizer
from pathlib import Path
organizer = FileOrganizer(dry_run=False)
results = organizer.organize_by_category(Path("~/Downloads"))
print(f"Organized into {len(results)} categories")from pyautokit import BlockchainMonitor
monitor = BlockchainMonitor()
price_data = monitor.get_price("EGLD")
print(f"EGLD: ${price_data['price']} ({price_data['change_24h']:.2f}%)")from pyautokit import GitHubUtils
gh = GitHubUtils(token="your-github-token")
# Create repository
repo = gh.create_repository("my-project", private=True)
# Create issue
issue = gh.create_issue(
"Gzeu", "pyautokit",
"Feature request",
"Add awesome feature"
)
# List PRs
prs = gh.list_pull_requests("Gzeu", "pyautokit", state="open")import asyncio
from pyautokit import PlaywrightUtils
async def automate():
async with PlaywrightUtils() as pw:
# Screenshot
await pw.screenshot(
"https://example.com",
"page.png",
full_page=True
)
# Scrape dynamic content
data = await pw.scrape(
"https://news.com",
{"titles": "h1", "links": "a"}
)
# Fill form
await pw.fill_form(
"https://app.com/login",
{"#email": "user@test.com", "#password": "pass"},
submit_selector="#submit"
)
asyncio.run(automate())from pyautokit import SecurityUtils
utils = SecurityUtils()
# Generate password
password = utils.generate_password(length=20)
# Encrypt file
utils.encrypt_file("secret.txt", "secret.enc", password="mypass")
# Hash file
file_hash = utils.hash_file("file.txt", algorithm="sha256")from pyautokit import DataProcessor
from pathlib import Path
processor = DataProcessor()
# Convert CSV to JSON
data = processor.csv_to_json(Path("data.csv"))
# Filter data
filtered = processor.filter_data(data, {"status": "active"})
# Aggregate
avg_price = processor.aggregate(data, "price", "avg")
print(f"Average price: ${avg_price:.2f}")| Example | File | Description |
|---|---|---|
| File Organization | examples/organize_downloads.py |
Auto-organize with watch mode |
| Crypto Monitoring | examples/monitor_egld.py |
Real-time price monitoring |
| Web Scraping | examples/scrape_news.py |
Scrape news headlines |
| Bulk Emails | examples/send_bulk_emails.py |
Send templated emails |
| Backup Automation | examples/backup_project.py |
Automated backups |
| Log Analysis | examples/analyze_logs.py |
Parse server logs |
| GitHub Automation | examples/github_automation.py |
Repo & issue management |
| Browser Automation | examples/playwright_automation.py |
Screenshots, PDFs, scraping |
Run examples:
python examples/organize_downloads.py --watch
python examples/monitor_egld.py
python examples/playwright_automation.py# Install dev dependencies
pip install 'pyautokit[dev]'
# Run all tests
pytest
# With coverage
pytest --cov=pyautokit --cov-report=html
# Test specific module
pytest tests/test_file_organizer.py -v
pytest tests/test_blockchain_monitor.py -v
pytest tests/test_playwright_utils.py -v
# Run async tests
pytest tests/test_playwright_utils.py -v -m asyncioTest Coverage:
file_organizer.py- 95%+blockchain_monitor.py- 80%+github_utils.py- 80%+playwright_utils.py- 80%+
See PUBLISHING.md for complete PyPI publishing guide.
Quick reference:
# Build
python -m build
# Check
twine check dist/*
# Upload to PyPI
twine upload dist/*pyautokit/
βββ pyautokit/ # Main package
β βββ __init__.py # Package exports
β βββ __main__.py # β
Unified CLI
β βββ file_organizer.py # β
CLI + 95% tests
β βββ web_scraper.py # β
Complete CLI
β βββ email_automation.py # β
Complete CLI
β βββ backup_manager.py # β
Complete CLI
β βββ log_analyzer.py # β
Complete CLI
β βββ data_processor.py # β
Complete CLI
β βββ security_utils.py # β
Complete CLI
β βββ blockchain_monitor.py # β
CLI + 80% tests
β βββ github_utils.py # β
CLI + 80% tests (NEW!)
β βββ playwright_utils.py # β
CLI + 80% tests (NEW!)
βββ examples/ # Working examples (8 files)
βββ tests/ # Test suite (11 test files)
βββ .github/workflows/ # CI/CD pipelines
βββ setup.py # β
PyPI setup
βββ pyproject.toml # β
Build config
βββ PUBLISHING.md # β
PyPI guide
βββ INSTALLATION.md # β
Install guide
βββ CONTRIBUTING.md # β
Contribution guide
Contributions are welcome! Please:
- 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
See CONTRIBUTING.md for detailed guidelines.
MIT License - Free for personal and commercial use. See LICENSE for details.
George Pricop
- π Blockchain Developer & AI Automation Specialist
- πΌ Building on MultiversX (EGLD) ecosystem
- π ConstanΘa, Romania
- π GitHub: @Gzeu
- π More projects
- PyPI: pypi.org/project/pyautokit
- GitHub: github.com/Gzeu/pyautokit
- Issues: Report bugs
- Examples: Working examples
- Installation: INSTALLATION.md
- Publishing: PUBLISHING.md
- Contributing: CONTRIBUTING.md
If you find PyAutokit useful, please give it a β on GitHub!
Built with β€οΈ for automation enthusiasts.
Install now: pip install pyautokit π