File Shifter is a local web server for transferring and streaming files between devices on a LAN. It is implemented using only Node.js core modules and HTTP — no Express, no WebSocket libraries — and serves as an educational project to explore how request parsing, streaming, and related internals work.
- Features
- Technical overview
- Installation & usage
- Windows: installation & first run
- Manual start
- How it works
- License
- Send files directly to the main (server) PC.
- Pause / Resume support for each file transfer.
- Real-time progress and transfer speed indicators for each file operation.
- Chunk-based upload system for reliable resumable transfers.
- Live streaming to any connected device using the server as a relay.
- Recipients can access files while they are being uploaded (streamed).
- Pause / Resume is not supported in live mode (continuous relay).
- Intended for testing streaming and relay behavior over HTTP.
- QR code generation for quick access; QR displayed in both terminal and web UI.
- Server link/URL updates when the network IP or server session changes.
- Includes
install.ps1that automates Node.js and package installation and prepares the app for immediate use. - Installer generates
app.ps1, which is the recommended launcher for regular use.
- Language: Node.js (no frameworks)
- Protocol: HTTP
- Core concepts implemented manually:
- HTTP request parsing
- Body parsing for form and binary uploads
- Cookie parsing and handling
- URL parsing and routing
- Stream-based file I/O and chunked transfers
- Device Identity verification.
- Frontend: HTML5 + Vanilla JavaScript + Tailwind CSS.
- Installer: PowerShell script (
install.ps1) - Purpose: Educational — to implement and observe how Express-like features operate at a lower level
Follow these exact steps to install and launch on Windows.
-
Donload File shifter from release page and than Extract the zip file and run
install.cmdThis will install Node.js and npm packages. -
Than a new
App.batwill be created run it.
- Install nodejs first. Install dependencies and start.
Go to file_shifter dir and open it
with terminal.
sudo apt install nodejs npm install npm start
- Follow the instruction given in terminal.
- THe user interface is easy and user focused so you will easily find what to do.
- THe screeshot are given here:
-
Terminal
-
HomePage
-
Live Send
-
Receive
-
Send To Server Direct
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007.
Copyright (c) 2025 Usman Ghani







