MediaProc uses an on-demand plugin architecture that gives users complete control over which plugins they install. No plugins are pre-installed or bundled with the CLI.
@mediaproc/cli (Universal CLI)
├── Core Commands (always available)
│ ├── convert - Universal file conversion
│ ├── info - File information
│ └── optimize - Optimization suggestions
│
└── Plugins (install on-demand)
├── Official Plugins (@mediaproc/*)
│ ├── @mediaproc/image (mediaproc add image)
│ ├── @mediaproc/video (mediaproc add video)
│ ├── @mediaproc/audio (mediaproc add audio)
│ └── ... 7 more official plugins
│
├── Community Plugins (mediaproc-*)
│ └── Any npm package starting with mediaproc-
│
└── Third-Party Plugins
└── Any compatible npm package
Official plugins are maintained by the MediaProc team and published under the @mediaproc/* namespace. They provide professional-grade media processing capabilities.
- @mediaproc/image - Image processing (49 commands)
- @mediaproc/video - Video processing
- @mediaproc/audio - Audio processing
- @mediaproc/document - PDF/DOCX processing
- @mediaproc/animation - GIF/APNG/WebP animations
- @mediaproc/3d - 3D model processing
- @mediaproc/stream - HLS/DASH streaming
- @mediaproc/ai - AI-powered media processing
- @mediaproc/metadata - Metadata management
- @mediaproc/pipeline - Workflow automation
- Quality Assurance - Professionally maintained and tested
- Consistent API - Follow MediaProc standards
- Regular Updates - Active development and bug fixes
- Documentation - Comprehensive guides and examples
- Community Trust - Backed by the core team
# Install CLI (no plugins included)
npm install -g @mediaproc/cli
# Browse available plugins
mediaproc plugins
# Install the plugins you need
mediaproc add image
mediaproc add video
mediaproc add audio
# Now use them
mediaproc image resize photo.jpg -w 1920
mediaproc video transcode movie.mp4
mediaproc list # Shows installed pluginsCommunity plugins are developed by the community and follow the naming convention mediaproc-*. They extend MediaProc with custom functionality.
Any npm package that exports a compatible plugin interface can be used with MediaProc.
# Install community plugin
mediaproc add mediaproc-custom-filter
# Install third-party plugin (full package name)
mediaproc add any-compatible-package
# Use them like official plugins
mediaproc custom-filter process input.jpg- Official (@mediaproc/*) - Maintained by core team
- Community (mediaproc-*) - Community-maintained
- Third-Party (any npm package) - Independent packages
- Lightweight CLI - Core CLI is minimal (<5MB)
- User Control - Install only what you need
- Faster Installation - No unused dependencies
- Extensibility - Easy to add new plugins
- Flexibility - Mix official, community, and third-party plugins
{
"name": "@mediaproc/cli",
"version": "0.2.0",
"dependencies": {
"chalk": "^5.3.0",
"commander": "^14.0.2",
"ora": "^8.1.1",
"execa": "^9.5.2"
},
"peerDependencies": {
"@mediaproc/image": "^1.0.0",
"@mediaproc/video": "^1.0.0"
},
"peerDependenciesMeta": {
"@mediaproc/image": { "optional": true },
"@mediaproc/video": { "optional": true }
}
}Note: Plugins are peer dependencies (optional), not direct dependencies. This keeps the CLI lightweight.
{
"name": "@mediaproc/image",
"dependencies": {
// NO @mediaproc/cli dependency!
// Plugins are standalone
"chalk": "^5.3.0",
"commander": "^14.0.2",
"sharp": "^0.34.5"
},
"bin": {
"mediaproc-image": "./bin/cli.js" // Can run standalone
}
}Each plugin can work in two ways:
npm install -g @mediaproc/cli
mediaproc image resize photo.jpg -w 1920Benefits:
- Unified command interface
- Centralized plugin management
- Shared configuration
- Cross-plugin integration
npm install -g @mediaproc/image
mediaproc-image resize photo.jpg -w 1920Benefits:
- Lightweight (only one plugin)
- Faster startup
- Simple distribution
- No CLI overhead
class PluginManager {
// Official plugins registry (for discovery and validation)
private officialPlugins = [
'@mediaproc/image',
'@mediaproc/video',
'@mediaproc/audio',
// ... all 10 official plugins
];
// NO auto-loading at startup
// Plugins are loaded on-demand when user runs 'add' command
async loadPlugin(pluginName: string, program: Command) {
// Dynamically import and register plugin
const plugin = await import(pluginName);
await plugin.register(program);
this.plugins.set(pluginName, plugin);
}
}- Installation Detection: Scan
package.jsonfor installed plugins - On-Demand Loading: Load plugins only when
mediaproc add <plugin>is run - No Auto-Loading: CLI starts instantly without loading any plugins
- Lazy Registration: Plugin commands registered only when needed
- Fast Startup - CLI loads in <100ms
- User Control - Users decide what to load
- Clean State - No unnecessary memory usage
- Explicit - Clear what's installed vs. what's loaded
# Step 1: Install CLI (no plugins included)
npm install -g @mediaproc/cli
# Step 2: Browse available plugins
mediaproc plugins
# 📦 Available MediaProc Plugins
# 🎯 Core Media Plugins:
# image Not installed
# video Not installed
# audio Not installed
# Step 3: Install the plugins you need
mediaproc add image
# ✓ Successfully installed @mediaproc/image
# ✓ Plugin configured and ready to use
# ✓ Registered 49 commands
# Step 4: Use installed plugins
mediaproc image resize photo.jpg -w 1920
mediaproc image convert photo.jpg -f webp
# Step 5: Check what's installed
mediaproc list
# 📦 Installed Plugins (1 total, 1 loaded)
# ✨ Official Plugins:
# ✓ image (@mediaproc/image) ★ OFFICIAL
# Version: 1.0.0
# Step 6: Add more plugins as needed
mediaproc add video
mediaproc add audio
# Step 7: All plugins work together
mediaproc list
# 📦 Installed Plugins (3 total, 3 loaded)
# ✨ Official Plugins:
# ✓ image (@mediaproc/image) ★ OFFICIAL
# ✓ video (@mediaproc/video) ★ OFFICIAL
# ✓ audio (@mediaproc/audio) ★ OFFICIAL✅ Zero Bloat
- Install only what you need
- Fast CLI startup (<100ms)
- Minimal disk space usage
✅ Unified Experience
- Consistent command syntax across all plugins
- Shared configuration and settings
- Integrated documentation
✅ Easy Extension
- Add plugins with one command:
mediaproc add <plugin> - Centralized management with
mediaproc list - No version conflicts
✅ Professional Workflow
- Pipeline workflows across plugins
- Batch processing capabilities
- CI/CD automation ready
Instead of:
# Traditional: Install multiple tools
npm install -g sharp-cli
npm install -g ffmpeg-cli
npm install -g sox-cli
# Learn different syntaxes
sharp resize input.jpg 1920 1080
ffmpeg -i input.mp4 -vcodec h264 output.mp4
sox input.wav output.mp3Users get:
# Modern: One CLI, on-demand plugins, consistent syntax
npm install -g @mediaproc/cli
# Install what you need
mediaproc add image
mediaproc add video
mediaproc add audio
# Consistent commands across all media types
mediaproc image resize input.jpg -w 1920 -h 1080
mediaproc video transcode input.mp4 --codec h264
mediaproc audio convert input.wav --format mp3// Q1 2026: Core Media Processing
Available: [
'@mediaproc/image', // ✅ Released v1.0.0
'@mediaproc/video', // 🚧 In Development
'@mediaproc/audio', // 🚧 In Development
];
// Q2 2026: Document & Animation
Available: [
'@mediaproc/document', // PDF, DOCX, OCR
'@mediaproc/animation', // GIF, APNG, WebP, Lottie
];
// Q3 2026: Advanced Features
Available: [
'@mediaproc/3d', // 3D models, GLTF, textures
'@mediaproc/stream', // HLS/DASH streaming
'@mediaproc/metadata', // EXIF, cleanup
];
// Q4 2026: AI & Automation
Available: [
'@mediaproc/ai', // AI enhancements
'@mediaproc/pipeline', // Workflow automation
];# Official advanced plugins
mediaproc add animation # GIF, WebP, Lottie
mediaproc add 3d # 3D model processing
mediaproc add stream # HLS/DASH streaming
mediaproc add ai # AI enhancements
# Community plugins
mediaproc add @company/custom-plugin
mediaproc add mediaproc-plugin-social-media✅ No Circular Dependencies
- Plugins don't depend on CLI
- CLI depends on plugins
- Clean dependency tree
✅ Standalone Distribution
- Each plugin can be published independently
- Works with or without universal CLI
- Easy to test and develop
✅ Flexible Integration
- Standard interface (
registerfunction) - Commander.js based
- Type-safe with TypeScript
✅ Lightweight Distribution
- Core CLI is minimal (<5MB)
- No forced plugin installations
- User controls what gets installed
✅ Plugin Management
- Discover installed plugins from package.json
- Track loaded vs. installed state
- Clear plugin lifecycle (install → load → use → unload → remove)
✅ Flexible Updates
- Official plugins update independently
- Users choose when to update plugins
- No breaking changes in core CLI
The MediaProc on-demand plugin architecture provides:
- ⚡ Fast Startup - CLI loads instantly, no plugin overhead
- 🎯 User Control - Install only what you need
- ✨ Official Quality - 10 professionally-maintained plugins
- 🌍 Open Ecosystem - Support for community and third-party plugins
- 📦 Easy Management - Simple add/remove/list commands
- 🔄 Clean Updates - Independent plugin versioning
No plugins are pre-installed. You get a lightweight CLI and install the capabilities you need!