A universal high-performance CLI command tool for offline file processing, AI tasks, and automation.
Project description
🛠️ ToolBox CLI
A powerful, universal, and offline CLI utility suite for file processing, conversion, and management. Designed for engineers, researchers, and power users who need a robust toolset that works anywhere.
🌟 Key Features
- Universal Input: Every command supports both local files and direct web links (URLs).
- High-Performance Concurrency: Built-in parallel processing for batch operations via
--parallel. - AI-Powered Capabilities: Integrated AI tools for background removal and advanced OCR.
- Privacy & Security: Secure file shredding, metadata sanitization, and AES-256-GCM encryption.
- Modular Plugin Architecture: Easily extendable with a clean plugin system.
- Workflow Automation: Run, watch, or schedule complex sequences of commands via YAML.
- Dry-Run Mode: Every command supports
--dry-runto validate operations without making changes.
🧩 Plugins & Capabilities
📁 File & Security
hash: Calculate MD5, SHA1, SHA256, or SHA512.shred: Securely overwrite files (DoD 5220.22-M) to prevent recovery.encrypt/decrypt: AES-256-GCM file protection.batch-rename: Advanced renaming with parallel support.info: Detailed file statistics and metadata.
🖼️ Image Processing
remove-bg: AI-powered background removal usingrembg.convert/resize/crop: Standard image manipulations.ocr: Extract text with advanced preprocessing.to-sticker: Create WhatsApp-ready stickers.exif-strip: Remove privacy-sensitive metadata.
🎥 Video & Audio
watermark/remove-watermark: Add or remove logos/text from video.to-sticker: Convert videos directly to WhatsApp stickers.extract-frames: Pull high-quality frames from video.normalize: Level audio volume usingloudnorm.trim/merge/compress: Core media editing tools.
📄 Document & PDF
sanitize: Remove metadata and hidden information from PDFs.convert: Universal document conversion via LibreOffice.merge/split/rotate: Robust PDF management.extract-text: OCR-based text extraction from PDFs.
📊 Data & Utilities
sql-export: Export JSON/CSV/YAML datasets to SQLite.convert: Seamlessly switch between JSON, CSV, and YAML.qr: Generate QR codes from any text or link.network info/scan: Connection diagnostics and port scanning.
🚀 Getting Started
Prerequisites
ToolBox relies on specialized engines:
- FFmpeg: Video/Audio processing.
- Tesseract: OCR capabilities.
- LibreOffice: Document conversion.
- Poppler: PDF processing.
Installation
-
Clone & Install:
git clone https://github.com/CrystalDustt-V2/toolbox.git cd toolbox pip install .
Alternatively, once published to PyPI:
pip install toolbox-universal
-
Setup Engines (Windows):
toolbox check # Check current status python setup_engines.py # Auto-download portable engines
📖 Advanced Usage
Parallel Batch Processing
# Resize all JPEGs in a folder using 8 worker threads
toolbox image resize --glob "*.jpg" -w 800 --parallel --workers 8
Automation (Workflows)
# Run a sequence of commands
toolbox workflow run process_images.yaml
# Watch a directory for new files and auto-trigger a workflow
toolbox workflow watch ./incoming my_workflow.yaml --ext .pdf
# Schedule a workflow to run every 60 minutes
toolbox workflow schedule maintenance.yaml --interval 60 --immediate
Logging
# Run a command and save detailed logs to a file
toolbox file hash large_file.iso --log-file ./logs/audit.log
toolbox file batch-rename ./docs --prefix "v1_" --dry-run
### Workflow Automation
```bash
# Run a complex automation sequence
toolbox workflow run examples/universal_demo.yaml
Advanced Media
# Extract frames every 0.5 seconds
toolbox video extract-frames my_video.mp4 --interval 0.5
# Normalize audio volume
toolbox audio normalize recording.mp3 -o balanced.mp3
Workflow Automation
Automate complex tasks using YAML workflows:
# Interactively create a new workflow
toolbox workflow init my_tasks.yaml
# Run the workflow
toolbox workflow run my_tasks.yaml
# Run with variable overrides and dry-run
toolbox workflow run my_tasks.yaml -v input_file=photo.jpg --dry-run
Batch Processing
Many commands now support processing multiple files at once using glob patterns:
# Resize all JPEGs in a folder
toolbox image resize --glob "*.jpg" -w 800
# Convert all videos in a folder to GIF
toolbox video to-gif --glob "videos/*.mp4"
Global Engine Path
You can now set a global directory where ToolBox will look for engine binaries (ffmpeg, tesseract, etc.):
toolbox config set global_bin_path "C:\MyTools\bin"
🛠️ Configuration
Settings are stored in config.yaml. Manage them via CLI:
toolbox config list
toolbox config set engine_paths.ffmpeg "C:\ffmpeg\bin\ffmpeg.exe"
🤝 Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
📜 License
This project is licensed under the MIT License - see the 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 toolbox_universal-0.2.0.tar.gz.
File metadata
- Download URL: toolbox_universal-0.2.0.tar.gz
- Upload date:
- Size: 44.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f94cab06b46d0fbc55d2a58d2be90c1a54daa0d78f79e5621e58383e4933292
|
|
| MD5 |
6c5be3b35fe679536b270e3bd80de449
|
|
| BLAKE2b-256 |
209c645e4fd4b3a42798ecca64e180c0375773d06f19a44536499638ba3c61c1
|
File details
Details for the file toolbox_universal-0.2.0-py3-none-any.whl.
File metadata
- Download URL: toolbox_universal-0.2.0-py3-none-any.whl
- Upload date:
- Size: 46.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64700c2ad7c1ebf108c2e802a0e776ad4d1e151376b276c301e4ac573d8a7386
|
|
| MD5 |
cd8ab1e60a9341a21ed4a26a845d7db9
|
|
| BLAKE2b-256 |
df738712aec557dda9fdb474f845e2d0ba10a84e59feac1801a283fc6f51ac96
|