Web-based file browser and viewer with support for images, video, audio, archives, tabular data, MIDI, hex, and more
Project description
fileviewer
A web-based file browser and viewer with a modern UI. Browse local directories, view files of many formats, and optionally manage files — all from your browser.
All written by Claude
Features
File browsing
- Multi-root — expose one or more directories with custom display names
- Two view modes — masonry waterfall grid and detailed list view
- Directory tree sidebar for quick navigation
- Sorting — by name, size, modified date, or type (ascending/descending); affects all views including the directory tree
- Regex filter — filter the current directory by filename pattern
- Rubber-band selection — drag to select multiple files; also Shift+click and Ctrl+click
File viewers
- Text — syntax highlighting for 50+ languages via CodeMirror; inline editing with Ctrl+S save in write mode
- Images — thumbnail grid, full-resolution pan/zoom viewer, side-by-side comparison slider; image editor with layer management, 15 drawing/selection tools (Move, Brush, Eraser, Crop, Fill, Gradient, Text, Shape, Lasso, Magic Wand, Blur, Smudge, and more), adjustments (Brightness/Contrast, Curves, Levels, Hue/Saturation, Color Balance, Exposure/Vibrance, Shadows/Highlights), WebGL-accelerated filters (Gaussian Blur, Sharpen, Noise, Vignette, Pixelate, Sepia, Emboss, Chromatic Aberration, and more), undo/redo history, export with format/quality control; PSD files open with full layer support
- Tabular data — Parquet, CSV, JSON, JSONL powered by Polars with SQL
WHEREfilter, sorting, schema browser, image column preview, and inline image editing - Archives — browse zip, tar, tar.gz, tar.bz2, tar.xz, 7z; random-access preview (zip/7z); extract here or to subfolder; create archives with compression level and password
- MIDI — playback with Web Audio synthesis, oscilloscope visualization, gain control, loop mode, and download
- Video & audio — HTTP range streaming
- Markdown — rendered preview with source toggle
- Hex dump — paged hex viewer for binary files
File management (write mode)
- Create, rename, delete files and directories
- Upload via drag & drop onto the file area or file picker
- Copy/move with conflict resolution: overwrite, skip, or keep both
- Cut/copy/paste with clipboard indicator
- Compress files and directories into archives
- Copy images directly to the system clipboard
- Real-time progress for bulk operations via Server-Sent Events
Keyboard shortcuts
| Shortcut | Action |
|---|---|
| Ctrl+A | Select all visible files |
| Ctrl+C | Copy selected files |
| Ctrl+X | Cut selected files |
| Ctrl+V | Paste clipboard |
| Delete | Delete selected files |
| F5 | Refresh |
| ←/→ | Navigate to prev/next image (in image viewer) |
Other
- Bookmarks — save favorite directories for quick sidebar access (persisted in localStorage)
- Authentication — optional username/password login with HttpOnly session cookies
- Internationalization — English, Simplified Chinese, Traditional Chinese, Japanese
- Theme — light/dark mode and customizable accent color
Installation
pip install fileviewer
Quick Start
# Browse the current directory
fileviewer
# Browse a specific directory
fileviewer /path/to/dir
# Browse multiple directories with display names
fileviewer /data /projects --name Data Projects
# Enable write mode
fileviewer /path/to/dir --write
# Require login
fileviewer /path/to/dir --user admin --password secret
# Custom host and port
fileviewer /path/to/dir --host 0.0.0.0 --port 9000
# Don't auto-open browser
fileviewer /path/to/dir --no-browser
CLI Options
| Option | Default | Description |
|---|---|---|
paths |
. |
One or more root directories to browse |
--name NAME [NAME ...] |
directory name | Display names for root directories (one per path, in order) |
--host HOST |
127.0.0.1 |
Host to bind to |
--port PORT |
8001 |
Port to listen on |
--write |
off | Enable file write operations |
--user USER |
— | Username for authentication |
--password PASS |
— | Password for authentication |
--no-browser |
off | Do not open browser on startup |
Tech Stack
Backend: Python 3.10+, FastAPI, Uvicorn, Polars, Pillow, py7zr
Frontend: Vue 3, Vuetify 3, CodeMirror 6, Vite
Development
# Backend (runs on port 8001)
pip install -e .
fileviewer . --port 8001 --write
# Frontend (runs on port 5173, proxies /api to backend)
pnpm install
pnpm dev
Build for production:
pnpm build # outputs to static/
pip install .
Security Notes
- All paths are validated against the configured root directories — no directory traversal is possible.
- Write operations are disabled by default.
- Auth tokens are stored in HttpOnly, SameSite cookies.
License
See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fileviewer-2.0.1-py3-none-any.whl.
File metadata
- Download URL: fileviewer-2.0.1-py3-none-any.whl
- Upload date:
- Size: 8.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c44e3905b07a2eff136a3d7e9a83fb0aa70b1b05c0570761c1bc4d899bdfbf74
|
|
| MD5 |
c361a43dfd4f7ac71e865e3a4299727c
|
|
| BLAKE2b-256 |
4ef923a8f6f6d130daaa8e6450c02995b9dfd04021318c6c7b400fbe00a18249
|