Fast, local-first file transfer tool for developers.
Send and receive files or folders instantly over LAN or WAN — all from your terminal.
grtr (Greater) is a command-line tool built with Node.js for fast and reliable file transfers across devices.
It lets you share files and folders instantly using human-readable nicknames instead of messy IP addresses.
Designed for developers, IT teams, and local networks, it’s like “AirDrop for terminals.”
✅ Peer-to-Peer (LAN) Transfers — no cloud dependency
✅ Nickname-based system — grtr send mypc ./docs
✅ Auto-zip for folders — sends entire directories easily
✅ Simple, scriptable CLI — perfect for dev workflows
✅ Configurable WAN mode (coming soon) for global sharing
✅ Cross-platform — works on Windows, macOS, and Linux
npm install -g grtrOr, for local testing:
git clone https://github.com/kishore-144/grtr.git
cd grtr
npm linkThen test:
grtr --helpgrtr serve <nickname>Example:
grtr serve mypcOptionally specify a custom folder to save received files:
grtr serve mypc "D:\Received"grtr send <nickname> <path> <mode>Examples:
grtr send mypc ./report.pdf lan
grtr send mypc "C:\Users\KISHORE B\Desktop\Project Folder"or
grtr send mypc ./report.pdf wan
grtr send mypc "C:\Users\KISHORE B\Desktop\Project Folder"🧠 Tip: grtr automatically zips folders before sending for optimal speed.
grtr receive <nickname>Displays listening status and helps users verify setup.
grtr mode <type>Examples:
grtr mode lan
grtr mode wangrtr newapi <url>Example:
grtr newapi https://relay.grtr.ioAll configurations are stored locally in:
~/.grtr.json
Nickname mappings:
~/.grtr-nicknames.json
Each nickname maps to its current LAN IP, updated automatically when you run serve.
Device A (Receiver):
grtr serve laptopOutput:
Registered nickname laptop at 192.168.1.10
Serving as 'laptop' on port 5050
Device B (Sender):
grtr send laptop ./files/test.txtOutput:
Sending test.txt to laptop (192.168.1.10)...
Transfer complete!
Receiver sees:
Received: test.txt
grtr/
├── cli.js # Main CLI entry point
├── index.js # Exports core functions
├── package.json # npm metadata and bin config
└── core/
├── config.js
├── nickname.js
├── server.js
├── sender.js
└── receiver.js
- Node.js (v18+)
- Express for HTTP handling
- Axios for transfers
- Archiver for zipping folders
- Multer for uploads
- Commander.js for CLI parsing
- Chalk for colorful output
Clone the repo and link it globally:
git clone https://github.com/kishore-144/grtr.git
cd grtr
npm install
npm linkRun locally:
node cli.js serve mypcUnlink when done:
npm unlink -g grtrIf transfers fail with ECONNREFUSED, check:
- Receiver is running (
grtr serve) - Both devices are on same LAN
- Windows Firewall allows Node.js inbound connections
- 🌍 WAN Relay Mode — send files globally using WebSocket signaling
- 📦 Auto-Unzip on Receive
- 🔁 Progress bars and speed metrics
- 🔐 Optional encrypted transfer mode
Kishore B
🎓 B.Tech Computer Science & Engineering
💡 Passionate about decentralized systems and developer tools
🔗 GitHub: kishore-144
Licensed under the MIT License — free to use, modify, and distribute.
⚡ Built by a developer, for developers. Simple. Fast. Powerful. ⚡