A small tool you run on your own PC to view and edit file metadata through a friendly browser interface — no cloud, nothing leaves your machine.
Point it at a folder and it lets you:
- Browse your files with sizes, types and icons
- View full metadata for any file:
- created / modified / accessed dates
- size, MIME type, permissions, owner, symlink targets
- MD5 / SHA-1 / SHA-256 checksums (computed on demand)
- Photos — dimensions, camera make/model, GPS location, EXIF dates
- Music — title, artist, album, duration, bitrate (MP3, FLAC, OGG, M4A…)
- PDFs — title, author, subject, page count
- Office docs — author, title, revision (docx / xlsx / pptx / odt…)
- Edit the editable bits:
- rename files
- change modified and accessed timestamps (all platforms) and the created timestamp on Windows
- change POSIX permissions (Linux / macOS)
- edit EXIF fields (description, artist, copyright, date taken…)
- remove GPS location from photos, or strip all EXIF in one click
- edit audio tags and PDF document info
You need Python 3.9+ installed.
git clone https://github.com/exotic209093/file-insights.git
cd file-insights
pip install -r requirements.txt # flask + all optional format handlers
python -m file_insightsYour browser opens at http://127.0.0.1:8765 showing your home folder.
python -m file_insights serve --root "D:\Photos" # browse a specific folder
python -m file_insights serve --port 9000 # different port
python -m file_insights serve --no-browser # don't auto-open a browser
python -m file_insights inspect path/to/file.jpg # print metadata as JSONOnly Flask is required. Each format handler switches on when its library is installed — the UI tells you what to install if a section is unavailable:
| Feature | Install |
|---|---|
| Image EXIF view/edit | pip install Pillow piexif |
| Audio tags | pip install mutagen |
| PDF document info | pip install pypdf |
| Office doc props | built in (nothing needed) |
- Modified / accessed dates are editable everywhere.
- Created date is editable on Windows only — Linux and macOS don't expose an API to change a file's birth time. On Linux the "created" value shown is actually the inode-change time (the filesystem doesn't always store a true creation time), and the UI labels it as such.
- Permissions editing (octal chmod) is available on Linux / macOS.
- EXIF editing works on JPEG and TIFF; other image formats are view-only.
- The server binds to
127.0.0.1only — nothing on your network can reach it. - Browsing is confined to the root folder you start it with (your home folder by default); requests outside it are rejected.
- Metadata edits change your real files. There is no undo — if you're experimenting, work on copies.
pip install -e ".[all,dev]"
pytestThe code layout:
file_insights/
├── __main__.py # CLI entry point (serve / inspect)
├── server.py # Flask app + JSON API
├── metadata.py # core stat-based metadata (stdlib only)
├── editors.py # rename, timestamps, permissions
├── handlers/ # per-format metadata (EXIF, audio, PDF, Office)
└── static/ # browser UI (vanilla HTML/CSS/JS)