Universal File Metadata Manager — read, edit, delete and compare metadata across all major file formats.
- File-manager UI: folder tree + file list + metadata detail panel
- All major formats: images (JPEG/PNG/TIFF/WebP/RAW), audio (MP3/FLAC/OGG/M4A/WAV), video (MP4/MKV/MOV), documents (PDF/DOCX/XLSX/PPTX/DOC/XLS), any file (filesystem metadata)
- Full operations: read, edit, delete individual fields, compare/diff two files
- Atomic writes: temp-file + rename — no file corruption on failure
- Undo stack: 50 operations per session
- File integrity hashes: on-demand MD5 / SHA-1 / SHA-256 / SHA-512 / BLAKE2b with one-click copy
- Cyber dark theme: professional dark UI with cyan/blue accents
- Compiled binaries: no Python or Node.js required to run
See Releases for pre-built binaries:
| Platform | Download |
|---|---|
| Windows 11 | MetaLens-vX.Y.Z-Setup-Windows.exe |
| Linux (deb) | MetaLens-vX.Y.Z-Linux.deb |
| Linux (rpm) | MetaLens-vX.Y.Z-Linux.rpm |
| Linux (tar) | MetaLens-vX.Y.Z-Linux.tar.gz |
- Python 3.11–3.13
- Node.js 20+
- npm 10+
# 1. Clone the repository
git clone https://github.com/YOUR_USERNAME/MetaLens.git
cd MetaLens
# 2. Install Python dependencies
cd python
python -m venv .venv
source .venv/bin/activate # Linux
# .venv\Scripts\activate # Windows
pip install -r requirements.txt
# 3. Install Node dependencies
cd ../electron && npm install
cd ../frontend && npm install
# 4. Run in development mode
cd ../electron && npm start
# 5. Build for production
cd python && pyinstaller main.py --onefile --name metalens-sidecar
cd ../frontend && npm run build
cd ../electron && npm run make| Category | Formats | Read | Write |
|---|---|---|---|
| Images | JPEG, PNG, TIFF, BMP, GIF, WebP | ✅ | ✅ |
| Images (RAW) | CR2, NEF, ARW, DNG | ✅ | — |
| Audio | MP3, FLAC, OGG, M4A, WAV, AIFF, WMA, APE, Opus | ✅ | ✅ |
| Video | MP4, MOV | ✅ | ✅ |
| Video | MKV, AVI | ✅ | — |
| Documents | ✅ | ✅ | |
| Office | DOCX, XLSX, PPTX | ✅ | ✅ |
| Office (legacy) | DOC, XLS, PPT | ✅ | — |
| Any file | Filesystem timestamps, permissions, xattr | ✅ | ✅ |
| Other | Hundreds of formats via hachoir | ✅ | — |
Compute cryptographic hashes on demand from the Metadata tab — no impact on browsing performance:
| Algorithm | Notes |
|---|---|
| MD5 | Legacy, widely used for checksums |
| SHA-1 | Legacy, used by Git and many tools |
| SHA-256 | Modern standard, recommended |
| SHA-512 | High-security workloads |
| BLAKE2b | Fast modern algorithm, built into Python |
Electron Main (Node.js)
├── Spawns Python sidecar (FastAPI, localhost only)
├── Manages window, native menus, file dialogs
└── IPC bridge (contextBridge) ↔ React renderer
Python Sidecar (FastAPI)
├── /list — directory listing with handler detection
├── /read — full metadata extraction
├── /write — atomic metadata write-back
├── /delete — field removal
└── /diff — metadata comparison
React Frontend (Vite + TailwindCSS)
├── FolderPanel — folder tree navigation
├── FilePanel — file list with metadata summary
└── DetailPanel — View / Edit / Diff tabs
MIT License — © 2026 Graziano Mariella
See LICENSE for full text.
Developed by Graziano Mariella.
