High-performance interactive Terminal UI (TUI) for real-time Google Drive, rsync, and rclone file synchronization with POSIX pause/resume controls and nano-style keybindings.
- 🖥️ Btop & Nano inspired Layout:
- Top header with status badges (
RUNNING,PAUSED,COMPLETED,ERROR), source$\to$ destination, and live timer. - Middle scrollable live log ring buffer with level tags (
INF,WRN,ERR,OK). - High-resolution fractional Unicode progress bar (
█▉▊▋▌▍▎▏) with percentage, transferred/total bytes, speed, ETA, and checks count. - Fixed bottom keybindings bar with interactive shortcut hints.
- Top header with status badges (
- ⏸️ POSIX Process Control: Instant pause/resume of the active sync process via
SIGSTOP/SIGCONTwithout killing the connection. - 🚫 Automatic Safety Excludes: Built-in exclusion of heavy media directories (e.g.
/backup/cinema,cinema/**,node_modules). - ⚡ Zero-Flicker Double-Buffered Rendering: ANSI diffing engine with TrueColor support.
- 📡 Daemon & Direct Sync Modes: Automatically attaches to the background
gdrive-sync.serviceor runs standalone sync.
| Key | Action |
|---|---|
Space or P |
Pause / Resume synchronization (SIGSTOP/SIGCONT) |
↑ / ↓ |
Scroll log history up / down line-by-line |
PageUp / PageDown |
Scroll log history by 10 lines |
Home / End |
Jump to top / bottom of log buffer |
F or S |
Toggle Follow / Autoscroll mode |
C |
Clear log viewport |
H or ? |
Show Help modal overlay |
Q or Ctrl+C |
Safely exit and restore terminal |
pnpm install
pnpm build
npm link # or pnpm link --globalRun interactive sync:
gsyncRun with custom paths:
gsync -s /mnt/backup -r gdrive:Sync/Backup --bwlimit 20MMIT © Andrii Vynohradov
