EncodeX
Health Pass
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 12 GitHub stars
Code Fail
- rm -rf — Recursive force deletion command in .github/workflows/wiki-sync.yml
- child_process — Shell command execution capability in bin/encodex.js
- process.env — Environment variable access in bin/encodex.js
- fs.rmSync — Destructive file system operation in e2e/cli.spec.ts
- process.env — Environment variable access in e2e/cli.spec.ts
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
A cross-platform multimedia conversion tool built on FFmpeg, React, TypeScript, and Electron.
FFmpeg power. Without the command line.
EncodeX — the free, open-source FFmpeg GUI for Windows, macOS & Linux.
👋 Introduction
EncodeX brings the full power of FFmpeg to a modern, intuitive desktop app — no command line required. Convert video and audio between formats, extract music from videos, trim clips, compress images, and batch-process whole folders. Developer? The same engine is available headless through the EncodeX CLI.
Want an AI assistant to do the work? EncodeX also ships a built-in MCP server, so tools like Claude Desktop, Cursor, VS Code, and custom agents can convert and manage your media for you over the Model Context Protocol — still entirely on your own machine.
Everything runs locally on your computer — no accounts, no uploads, no watermarks, no subscriptions.
Why EncodeX?
- ✅ Free forever — open source (MIT), no paid tier
- ✅ 100% private — your files never leave your machine
- ✅ No account, no sign-up, no tracking
- ✅ No watermarks, no file-size limits, no ads
- ✅ FFmpeg powered — 51 video codecs, 27 audio codecs, 56 pixel formats
- ✅ Hardware acceleration — NVIDIA, Intel, AMD, Apple Silicon for fast encodes
- ✅ Batch processing — convert whole folders at once
- ✅ AI-ready MCP server — drive EncodeX from Claude, Cursor, VS Code, and custom agents
- ✅ Cross-platform — Windows 10+, macOS 11+, Linux
- ✅ 35+ languages with RTL support
✨ Features
- 🔄 Media Conversion — 51 video codecs, 27 audio codecs, 56 pixel formats with codec/bitrate/scale/quality controls
- 🌀 Rotation & Mirror — Rotate videos and images 90°, 180°, or 270° clockwise and flip them horizontally or vertically; MP4/MOV/MKV stream-copy stores rotation as lossless metadata
- 🎛️ Conversion Profiles — 140+ pre-configured presets across 8 categories (YouTube, Instagram, TikTok, Apple, Android, ProRes, HLS, and more) with custom profile creation and recently-used tracking
- ⚡ Hardware Acceleration — NVIDIA NVENC, Intel QSV, AMD AMF, VAAPI, Apple VideoToolbox, Media Foundation, auto-detected
- ✂️ Video Cutting — Frame-accurate trimming with a built-in player (rawvideo + PCM pipes, Canvas + Web Audio) and zoomable timeline (waveform + thumbnail montage)
- 📋 Batch Queue — Parallel processing (up to 4 concurrent jobs) with real-time progress, per-job errors, pause/resume, drag-and-drop reordering, job option editing, status filters, JSON export/import, and when-done power actions (shutdown/sleep/hibernate)
- 🖼️ Image Compression — JPEG/PNG/WebP/BMP/GIF/TIFF with quality/scale, EXIF viewer, RGB/luma histograms
- 🎵 Audio Extraction — Any of 27 audio codecs from any video file
- ℹ️ Media Info — Full per-stream probe: codec, profile, resolution, color metadata, frame rate, etc.
- ⌨️ CLI Mode — Headless scripting with subcommands (
convert,info,capabilities,compress,extract-audio,batch) - 🤖 MCP Server — Built-in Model Context Protocol server: 13 core tools, 3 resources, and 4 prompts over stdio (
encodex --mcp), plus an embedded localhost HTTP endpoint that adds 6 GUI-parity tools (live queue, preview, timeline, system info, updates). Run one-off conversions or manage async jobs from Claude Desktop, Claude Code, Cursor, VS Code, or any MCP client - ⚙️ 3 Transcoder Cores — FFmpeg API (fluent-ffmpeg), FFmpeg CLI (child_process), BMF Framework
- 🌍 56 Locales — 35 languages with RTL support (Arabic, Hebrew)
- ⌨️ Keyboard Shortcuts — 60+ shortcuts across every page with an in-app help dialog (
Ctrl+/) - 🔄 In-App Updates — Checks GitHub Releases, downloads platform installer, real-time progress
- 🛡️ Error Handling — 16 typed error codes, global snackbar, inline banners, React error boundaries
- 🌗 Dark/Light Theme — System-aware with manual toggle, persistent preferences
See docs/FEATURES.md for the full feature breakdown, supported formats, and codec lists.
📸 Screenshots
🏠 Home Dashboard
![]() 🔄 Media Conversion |
![]() 🎵 Audio Extraction |
![]() ✂️ Video Cutting |
![]() 🖼️ Image Compression |
![]() 📋 Batch Queue |
![]() ℹ️ Media Info |
💻 CLI Usage
Simple enough for everyday users. Powerful enough for developers. The GUI and CLI share the same engine:
encodex convert input.mp4 output.avi --video-codec libx265 --audio-codec aac
encodex info input.mp4 --json
encodex compress photo.png -f jpg -q 30
encodex extract-audio input.mp4
encodex batch 'videos/**/*.mov' --concurrency 2 --output-dir converted
# Run as an MCP server for AI assistants and automation
encodex --mcp
See docs/CLI.md for all subcommands, options, and exit codes.
📥 Downloads
Pre-built installers are available on the Releases page — or the friendly version at encodex.in/download.
macOS
EncodeX is not code-signed (no Apple Developer account). macOS Gatekeeper will block the app on first open.
Option 1 — Right-click to open:
- Right-click (or Control-click) the EncodeX app and select Open
- Click Open in the confirmation dialog
Option 2 — Remove quarantine via Terminal:
xattr -cr /Applications/EncodeX.app
Windows / Linux
Download the .exe (Windows) or .AppImage (Linux) installer from the Releases page and run it.
📌 Prerequisites (for contributors)
- Node.js 22+
- FFmpeg — bundled via
ffmpeg-static; falls back to systemffmpegif the bundled binary is unavailable
🚀 Install (from source)
npm install
🧑💻 Development
# Start Vite dev server + tsc watch (no Electron window)
npm run dev
# Full dev environment with Electron window
npm run electron:dev
# Quick start (build then launch)
npm run dev:start
npm run dev starts two processes concurrently:
- Vite — serves the React renderer on
http://localhost:5173with HMR - tsc — watches and compiles the main process TypeScript to
dist/main/
npm run electron:dev waits for Vite to be ready, compiles both main and preload, then launches Electron with the --dev flag pointing at the Vite dev server URL. DevTools open automatically.
🔨 Build
# Production build (renderer + main + preload)
npm run build
# Package for current platform (no installer)
npm run pack
# Create distributable installer
npm run dist
| Script | Description |
|---|---|
npm run dev:renderer |
Vite dev server only |
npm run dev:main |
tsc -p tsconfig.main.json --watch |
npm run build:renderer |
Vite production build — outputs to dist/renderer/ |
npm run build:main |
tsc -p tsconfig.main.json — outputs to dist/main/ |
npm run build:preload |
tsc -p tsconfig.preload.json — outputs to dist/preload/ |
npm run build |
All three in sequence |
npm run start |
Launch compiled app from dist/ via electron . |
npm run electron:dev |
Vite + Electron dev environment |
npm run dev:start |
Build then launch |
npm run format |
prettier --write on all src TypeScript/JSON |
npm run format:check |
prettier --check on all src TypeScript/JSON |
npm run pack |
Build + electron-builder --dir |
npm run dist |
Build + electron-builder (NSIS/DMG/AppImage) |
🧪 Testing
npm test # Run all 123 test files / 1603 tests
npm run test:watch
npm run test:coverage
npm run test:unit
npm run test:integration
npm run test:e2e # Requires build
See docs/TESTING.md for the full test suite breakdown, test setup, and E2E specs.
🌐 Website & Docs
- encodex.in — product site, features tour, and release blog, in 8 languages
- Guides — FFmpeg GUI, Video converter, Compressor, Extract audio
📚 Documentation
| Document | Description |
|---|---|
| docs/FEATURES.md | Features, supported media formats, codec tables, validation utilities |
| docs/CLI.md | CLI usage, subcommands, all option tables, exit codes |
| docs/MCP.md | MCP server tool catalogue, client configs, embedded HTTP server, security |
| docs/TESTING.md | Test suite, test setup, E2E specs |
| docs/IPC.md | IPC channels, electronAPI bridge, all methods and events |
| docs/PROJECT_STRUCTURE.md | Full directory tree with annotations |
| docs/ARCHITECTURE.md | Internal architecture overview and links to deep dives |
| docs/ARCHITECTURE_PROCESSES.md | Process model, build system, startup sequence, CLI mode |
| docs/ARCHITECTURE_TRANSCODERS.md | Transcoder abstraction, FFmpeg/BMF cores, hardware acceleration |
| docs/ARCHITECTURE_RENDERER.md | Render tree, pages, stores, queue, player, i18n, theming |
| docs/UPDATE_MANAGER.md | In-app update manager implementation details |
| Wiki | Community wiki (mirrors the docs in a browsable form) |
| CONTRIBUTING.md | Contribution guidelines |
| SECURITY.md | Vulnerability reporting |
| CODE_OF_CONDUCT.md | Code of conduct |
🧰 Tech Stack

🤝 Contributing
See CONTRIBUTING.md for guidelines. All contributions are welcome — please open an issue first for significant changes.
This project is governed by a Code of Conduct.
🔒 Security
Report security vulnerabilities to the project maintainers via the security advisory process. See SECURITY.md.
📄 License
MIT
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found





