Skip to content
⚡ Grab your files periodically from a remote FTP or SFTP server easily
Branch: master
Clone or download
crazy-max Merge pull request #56 from ftpgrab/jlaffaye-ftp
* Log skip status
* Set ServerName field if implicit TLS
* Switch to [jlaffaye/ftp]( module
  * Fix race condition
  * Performance improvement
Latest commit 6d95ca7 Jul 21, 2019

GitHub release Total downloads Build Status Go Report Code Quality Donate Paypal


FTPGrab ⚡️ is a CLI application written in Go to grab 📥 your files from a remote FTP or SFTP server to your NAS, server or computer 💻. With Go, this app can be used across many platforms 🎲 and architectures. This support includes Linux, FreeBSD, macOS and Windows on architectures like amd64, i386, ARM and others.

Because FTPGrab is distributed 📦 as an independent binary, it is ideal for those with a seedbox 🏁 to grab your files periodically 📆 to your Synology, Qnap, D-Link and others NAS.


  • Multiple sources
  • SFTP support
  • Prevent re-download through a hash
  • Efficient key/value store database to audit files already downloaded
  • Internal cron implementation through go routines
  • Include and exclude filters with regular expression
  • Date filter
  • Retry on failed download
  • Change file/folder permissions and owner
  • Translate modtimes on downloaded files
  • Beautiful email report
  • Webhook notification
  • Enhanced logging
  • Timezone can be changed
  • 🐳 Official Docker image available



  • Linux service sample
  • Windows service sample
  • Chocolatey package
  • Brew recipe
  • Cloudron app
  • Build / Install from source doc

How can I help ?

All kinds of contributions are welcome 🙌!
The most basic way to show your support is to star 🌟 the project, or to raise issues 💬
But we're not gonna lie to each other, I'd rather you buy me a beer or two 🍻!



MIT. See LICENSE for more details.
Icon credit to Nick Roach.

You can’t perform that action at this time.