A lightweight web-based file explorer and shell for Termux and Linux environments. Runs on Node.js using Express and HTMX with no build step.
- Browse filesystem with folders-first sorting
- Upload, download, rename, delete files and directories
- Inline text editor for common config and code files
- Image and video preview
- Zip entire directories
- Execute shell commands in the current directory
- HTMX-driven navigation (no page reloads)
- Grayscale black & white UI
- Mobile friendly
- WebSocket support for real-time thumbnail updates
- Video thumbnail generation using FFmpeg
- FancyBox lightbox for media viewing
Node.jsffmpegsqlitenpmbetter-sqlite3(installed via npm)archiver(installed via npm)multer(installed via npm)ws(installed via npm)
chmod +x ./setup.sh
./setup.sh # install with ndk path properly exported. (will also install deps)
npm install express multer archiver wsnode server.js
Open in browser
http://0.0.0.0:3390
Host: 0.0.0.0 Port: 3390
- Root directory defaults to $HOME
- Can be overridden by starting the server in another directory
- Designed for Termux but works on standard Linux
- Click folders to navigate
- ".." goes to parent directory
- Upload replaces existing files with the same name
- Zipping a folder streams a zip directly to the browser
- Editable files open in an inline editor
- Image and video files are displayed in a grid layout when present
- Video thumbnails are automatically generated and cached
- Executes commands using the system shell
- Runs in the currently viewed directory
- Output is appended to the console panel
- Uses
execfor command execution with proper error handling
This is a local tool. No authentication, no sandboxing. Do not expose to untrusted networks.
.txt .js .json .html .css .md .py .sh .env .yaml .lua .php .xml .ini .conf
.jpg,.jpeg,.png,.gif,.webp,.svg- Full-size preview with FancyBox lightbox
- Grid layout for multiple images
.mp4,.webm,.ogg,.mov,.mkv- HTML5 video player with controls
- Automatic thumbnail generation using FFmpeg
- Hover/touch preview functionality
- Thumbnail caching in SQLite database
.mp3,.wav,.flac- Basic file icon display
- Real-time thumbnail updates for video files
- Automatic connection to current directory
- Live thumbnail generation notifications
- Touch and hover video preview enhancements
- No page reloads for navigation
- Dynamic content updates
- Smooth transitions and animations
- Automatic detection of media files
- Smart grid layout for images and videos
- Lazy loading for performance
- Touch-friendly interface
- Automatic generation using FFmpeg
- SQLite database caching
- Real-time updates via WebSocket
- Fallback to video element when thumbnail unavailable
- Drag-and-drop upload (via file input)
- Bulk operations (zip entire directories)
- Inline editing for text-based files
- Search functionality
- Command execution in current directory
- Persistent console output
- Command history via browser form
- Main page with file listing
- Accepts
?dirparameter for directory navigation
- Returns file list HTML for HTMX
- Requires
?dirparameter - Sets
X-Pathheader with current directory
- File upload endpoint
- Uses multer for multipart handling
- Requires
pathandfileparameters
- Create new directory
- Requires
pathandnameparameters
- Delete file or directory
- Requires
dirandnameparameters
- Show rename form
- Requires
dirandoldparameters
- Execute rename operation
- Requires
dir,old, andnewnameparameters
- Open file in editor
- Requires
fileparameter
- Save edited file content
- Requires
fileandcontentparameters
- Execute shell command
- Requires
pathandcmdparameters - Returns command output
- Download file
- Requires
fileparameter
- Download directory as zip
- Requires
dirparameter
- Serve raw file content
- Used for media files and downloads
- Serve video thumbnails
- Generated from SQLite cache
- Path:
/ws?dir=<directory> - Real-time thumbnail updates
- Automatic connection management
MIT