Skip to main content

🔄 OpenConvert CLI

Intelligent File Conversion for the Distributed Age

Python 3.8+ License: MIT PRs Welcome OpenAgents

Transform any file to any format using distributed AI agents

🚀 Quick Start • 📖 Documentation • 🤝 Contributing • 💬 Community


🌟 What is OpenConvert?

OpenConvert CLI is a command-line tool that connects to distributed OpenAgents networks to discover and utilize file conversion services. Instead of installing multiple conversion tools, OpenConvert leverages distributed agents to handle various file conversion tasks.

✅ Currently Implemented

🔗 Network-Powered • Connect to OpenAgents conversion networks
🤖 Prompt Support • Use natural language prompts (agent-dependent)
📁 Batch Processing • Convert files and directories
🔍 Auto-Detection • Automatic MIME type detection
🛡️ Error Handling • Comprehensive error reporting
⚡ Async Operations • Non-blocking network operations
🔧 Python API • Import and use from openconvert import convert
📊 Format Discovery • --list-formats to see available conversions

🚧 Planned Features

🚀 Enhanced Format Support • Expand to 50+ formats as agents join
🐳 Easy Deployment • Docker and Kubernetes support
⚙️ Configuration Files • YAML config for defaults and preferences


🎬 See It In Action

# Convert a document with AI enhancement
openconvert -i data.csv -o report.pdf --prompt "Create a professional report with charts"

# Batch convert an entire photo library
openconvert -i photos/ -o pdfs/ --from image/jpeg --to application/pdf

# Simple format conversion
openconvert -i document.txt -o document.pdf

# Discover available conversions
openconvert --list-formats

💡 Pro Tip: Use natural language prompts to guide conversions (depends on agent capabilities)!


🚀 Quick Start

Installation

# Currently: Install from source
git clone https://github.com/openagents/openconvert.git
cd openconvert
pip install -e .

# Future: PyPI package (planned)
# pip install openconvert

Your First Conversion

# Start an OpenConvert network (one-time setup)
openagents launch-network demos/openconvert/network_config.yaml

# Launch some conversion agents
python demos/openconvert/run_agent.py doc &
python demos/openconvert/run_agent.py image &

# Convert your first file!
openconvert -i document.txt -o document.pdf

That's it! 🎉

⚠️ Current Status: This is an early-stage project. Basic functionality works, but many advanced features are still in development.


📖 Usage

Basic Syntax

openconvert -i INPUT -o OUTPUT [OPTIONS]

Real-World Examples

📄 Document Conversions
# Text to PDF with custom styling
openconvert -i notes.txt -o notes.pdf --prompt "Use a professional layout with headers"

# Markdown to Word document
openconvert -i README.md -o README.docx

# CSV to formatted Excel with charts
openconvert -i sales.csv -o sales.xlsx --prompt "Add charts and formatting"
🖼️ Image Processing
# Convert and compress images
openconvert -i photos/ -o thumbnails/ --from image/jpeg --to image/webp --prompt "Resize to 800px width"

# Create PDF from images
openconvert -i scans/ -o document.pdf --from image/png --to application/pdf

# Batch image format conversion
openconvert -i raw_images/ -o processed/ --from image/tiff --to image/png
🎵 Media Files
# Audio format conversion
openconvert -i music.wav -o music.mp3 --prompt "High quality encoding"

# Video format conversion
openconvert -i video.avi -o video.mp4 --prompt "Optimize for web streaming"

# Extract audio from video
openconvert -i movie.mp4 -o soundtrack.mp3
🗂️ Archives & Data
# Create compressed archives
openconvert -i project/ -o project.zip

# Convert between archive formats
openconvert -i backup.rar -o backup.tar.gz

# JSON to other formats
openconvert -i data.json -o data.xlsx --prompt "Create tables with proper headers"

Command-Line Options

Option Description Example
-i, --input Input file or directory -i documents/
-o, --output Output file or directory -o converted/
--from Source MIME type --from image/png
--to Target MIME type --to application/pdf
--prompt AI conversion instructions --prompt "Compress by 50%"
--host Network host --host remote.example.com
--port Network port --port 8765
-v, --verbose Detailed output -v
-q, --quiet Minimal output -q
--list-formats Discover available conversions --list-formats

🌐 Supported Formats

Category Formats Count
📄 Documents txt, pdf, docx, html, md, rtf, csv, xlsx, epub 9+
🖼️ Images png, jpg, gif, bmp, tiff, svg, webp, ico 8+
🎵 Audio mp3, wav, ogg, flac, aac, m4a 6+
🎬 Video mp4, avi, mkv, mov, webm, gif 6+
🗜️ Archives zip, rar, 7z, tar, gz, bz2 6+
💻 Code json, xml, yaml, html, css, js, py 7+
🎯 3D Models stl, obj, fbx, ply, glb 5+

Total: 50+ formats supported!

📈 Growing Library: New formats added regularly as agents join the network


🏗️ Network Setup

Quick Network Setup

# 1. Clone the OpenAgents repository
git clone https://github.com/openagents/openagents.git
cd openagents

# 2. Start the network
openagents launch-network demos/openconvert/network_config.yaml

# 3. Launch conversion agents (in separate terminals)
python demos/openconvert/run_agent.py doc     # Document conversions
python demos/openconvert/run_agent.py image   # Image processing  
python demos/openconvert/run_agent.py audio   # Audio conversions
python demos/openconvert/run_agent.py video   # Video processing

Production Deployment (Planned)

🚧 Coming Soon: Docker and Kubernetes deployment configurations are being developed.

Currently: Use the manual setup method above for development and testing.


🔧 Advanced Usage

Batch Processing Power

# Convert all images in a folder structure
find ./photos -name "*.raw" -exec openconvert -i {} -o {}.jpg \;

# Parallel processing with xargs
ls *.txt | xargs -I {} -P 4 openconvert -i {} -o {}.pdf

# Directory-wide conversions
openconvert -i ./documents --from text/plain --to application/pdf --prompt "Professional formatting"

Python Integration

# Simple file conversion
from openconvert import convert_file

success = convert_file("document.txt", "document.pdf")
if success:
    print("✅ Conversion successful!")

# Advanced batch conversion
from openconvert import convert
from pathlib import Path

success = convert(
    input_files=[Path("file1.txt"), Path("file2.txt")],
    output_path=Path("merged.pdf"),
    from_format="text/plain",
    to_format="application/pdf",
    prompt="Merge into single document with table of contents"
)

# Advanced async usage (for custom integrations)
from openconvert.client import OpenConvertClient

async def custom_conversion():
    client = OpenConvertClient()
    await client.connect("my-network.com", 8765)
    
    result = await client.convert_file(
        input_file=Path("data.xlsx"),
        output_file=Path("report.pdf"), 
        source_format="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
        target_format="application/pdf",
        prompt="Create executive summary with charts"
    )
    
    await client.disconnect()
    return result

Configuration Files (Planned)

🚧 Coming Soon: Configuration file support is planned for future releases.


🛠️ Development

Project Structure

openconvert/
├── 📁 openconvert/           # Main package
│   ├── 🐍 __init__.py       # Package init
│   ├── 🖥️ openconvert_cli.py # CLI interface
│   ├── 🌐 client.py         # Network client
│   └── 📄 __main__.py       # Module entry
├── 🧪 tests/                # Test suite
├── 📖 docs/                 # Documentation
├── 🐳 docker/               # Docker configs
├── ⚙️ setup.py              # Installation
└── 📋 README.md             # This file

Contributing Workflow

# 1. Fork & clone
git clone https://github.com/yourusername/openconvert.git
cd openconvert

# 2. Create feature branch
git checkout -b feature/amazing-feature

# 3. Set up development environment
pip install -e ".[dev]"
pre-commit install

# 4. Make changes & test
pytest tests/
black openconvert/
flake8 openconvert/

# 5. Submit PR
git push origin feature/amazing-feature

Running Tests

# Unit tests
pytest tests/

# Integration tests (requires network)
pytest tests/integration/ --network

# Performance tests
pytest tests/performance/ --benchmark

# Coverage report
pytest --cov=openconvert --cov-report=html

🤝 Contributing

We ❤️ contributions! Here's how you can help:

🐛 Found a Bug?

  • Open an issue
  • Include reproduction steps
  • Mention your OS and Python version

💡 Have an Idea?

🛠️ Want to Code?

📝 Improve Documentation?

  • Fix typos or unclear sections
  • Add examples and tutorials
  • Translate to other languages

💬 Community

Discord Twitter Follow GitHub Discussions


🗺️ Roadmap

🚀 Coming Soon

  • Plugin System - Custom conversion agents
  • Web Interface - Browser-based UI
  • API Gateway - REST API for integrations
  • Cloud Hosting - Managed OpenConvert service
  • Mobile Apps - iOS and Android clients

🎯 Long Term

  • AI-Generated Agents - Automatic agent creation
  • Blockchain Integration - Decentralized agent rewards
  • Real-time Collaboration - Multi-user conversion workflows
  • Format Prediction - ML-powered format suggestions

🏆 Acknowledgments

Special thanks to:

  • OpenAgents Team - For the amazing framework
  • Contributors - Everyone who helps improve OpenConvert
  • Community - Users who provide feedback and ideas
  • Dependencies - All the great open source libraries we use

Built With


📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


⭐ Star this repo if you found it helpful!

Made with ❤️ by the OpenAgents community

Transforming files, one conversion at a time 🔄

Metadata

Release files for openconvert 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openconvert 1.1.1
File Size Uploaded
openconvert-1.1.1.tar.gz 120.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openconvert 1.1.1
File Interpreter ABI Platform
openconvert-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 139.1 kB

Release files / openconvert-1.1.1.tar.gz

Download URL openconvert-1.1.1.tar.gz
Size 120.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6c5c64c9bccfe97f7b87605f43eb7f8bf52be61fcba105095086e3049fb9dc43
BLAKE2b-256 checksum
How to use checksums
d35c4684d0edc0618d17f5dcb57a694f14d479e02d2be4e72bcdccd65ee1a278
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release files / openconvert-1.1.1-py3-none-any.whl

Download URL openconvert-1.1.1-py3-none-any.whl
Size 18.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b1b61aae1f24ac06cf29adcf8c0701761708b4b40c0ed90e69a2545259c52770
BLAKE2b-256 checksum
How to use checksums
7098205a94659c615f88e292f0c9352bb31925ac0ca896fc4d1f7bf9c5e7abcb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page