Cyberduck Mountain Duck CLI

#2306 closed enhancement (worksforme)

File Monitoring

Reported by: ekristen Owned by: ekristen
Priority: normal Milestone: 4.7
Component: cli Version: 3.0.1
Severity: normal Keywords:
Cc: Architecture:


A great feature that seems to be missing from most transfer clients is the ability to keep the remote side of a connection up to date with what is in the local side. By allowing a user to specify a folder to watch and the upload the files with changes allows users to be working on a project and allow the changes to automatically replicate. This makes working on websites easier where the development server where testing is done, isn't on the machine the users is on.

The only application that I have ever seen implement this correctly is WinSCP, unfortunately it is a windows application. :(

Summary: A feature to allow the user to select a folder and it be watched recursively for changes, any change that happens (update, deletion, creation, etc ..) gets uploaded via the protocol the user specified to the destination specified. Thanks!

Change History (24)

comment:1 Changed on Jul 9, 2008 at 5:08:44 PM by ekristen

I haven't looked at the source for Cyberduck yet but I am assuming it is in Objective-C. I found a FSEvent (file system events) wrapper for the OS 10.5 FSEvents API here ...

Essentially the filesystem would tell Cyberduck when a file has changed, then Cyberduck could do its thing according to how the user set it up to upload the files.

comment:2 Changed on Jul 11, 2008 at 7:34:53 PM by dkocher

  • Milestone changed from 3.0.2 to 3.2
  • Status changed from new to assigned

comment:3 Changed on Jul 11, 2008 at 7:58:12 PM by ekristen

dkocher, thank you for accepting this feature request, I would like to help in anyway I can. I am new to obj-c. I have started playing with the wrapper I linked to earlier a bit.

I have determined the actions that will be necessary for this to work, I just don't have all the code yet (working on it).

1. Recursively scan a path (taking into considerations ignored files/paths) and build a table of data with filenames, last modified, and perhaps size.
2. Register SCEvents with the path scanned.
3. Listen for events returned, look in the table of data at the path level notified on and rescan finding all changed files.
4. Upload and Update File Database with new modified dates and filenames.

There is another library called UKKQueue that will notify with the specific file (, which may be better to use in this instance. I haven't played with this one yet so I can't provide any more details as of yet.

Please contact me if you would like my help. Thanks

comment:4 Changed on Jul 12, 2008 at 3:53:52 PM by dkocher

  • Owner changed from dkocher to ekristen
  • Status changed from assigned to new

I have previously started to work with UKKQueue but never brought it into a finished state. Have a look at and ch.cyberduck.core.Local#watch().

Last edited on Aug 26, 2014 at 8:47:07 AM by dkocher (previous) (diff)

comment:5 Changed on Jul 21, 2008 at 8:05:11 PM by dkocher

Having an infrastructure as described here in place would allow to edit files with an arbitrary editor. See #1028.

comment:6 Changed on Apr 13, 2009 at 7:20:03 PM by dkocher

  • Summary changed from File Monitoring - Upload Changes to File Monitoring

comment:7 Changed on Nov 3, 2009 at 8:42:51 PM by dkocher

  • Resolution set to fixed
  • Status changed from new to closed

Implemented in r5522. Use

defaults write ch.sudo.cyberduck editor.kqueue.enable true

to enable.

comment:8 Changed on Dec 2, 2009 at 10:18:12 AM by peterlozano

  • Resolution fixed deleted
  • Status changed from closed to reopened

I tested the functionality implemented in r5522 (been able to edit any kind of file in any external editor) but I don't agree that it's what was been asked for in this ticket.

I don't find the feature that will allow you to sync an entire folder and upload any changes automatically at the same moment that they are made. That what I think was the description of this ticket and I would find it extremely useful.

Sorry if I shouldn't have reopen this ticket, I find it more appropriate than creating a new ticket.

comment:9 Changed on Dec 11, 2009 at 2:18:36 PM by dkocher

#3834 closed as duplicate.

comment:10 Changed on Dec 11, 2009 at 2:19:13 PM by dkocher

Also refer to #3112.

comment:11 Changed on Jan 1, 2011 at 10:42:25 PM by dkocher

#5606 closed as duplicate.

comment:12 Changed on Jan 14, 2011 at 7:24:54 AM by Maciej Trebacz

I'd also like to vote on this feature. I work as a web programmer and in simple cases I keep local 1:1 copy of website I'm working on on my hard drive. Doing ANY action after every edit of some file wastes much time, that's why I was looking for some automatic sync feature. I've spent whole evening looking for a FTP client that implement that function properly on Mac. The only one app that implemented it was YummyFTP, but this app isn't on par with other FTP clients, and it also doesn't work very well (it has a delay between modifying file and uploading it, it probably checks for changes periodical, instead of using FSEvents). So if Cyberduck implemented it, I would be very happy :).

comment:13 Changed on Jun 20, 2011 at 8:56:55 AM by dkocher

#6009 closed as duplicate.

comment:14 Changed on Sep 25, 2011 at 10:29:12 PM by fiscme

Vote from me too, any movement on this?

comment:15 Changed on Oct 10, 2011 at 8:43:13 PM by Temega

Would love this feature. It's annoying if you got shared hosting and you want to use git for your projects...

comment:16 Changed on Sep 18, 2013 at 12:45:56 PM by dkocher

#6812 closed as duplicate.

comment:17 Changed on Aug 26, 2014 at 8:48:33 AM by dkocher

Refer to Synchronize Folders in general without monitoring.

comment:18 Changed on Nov 6, 2014 at 10:48:12 AM by dkocher

  • Milestone set to 5.0

We are planing to implement synchronize and upload transfers that allow to continue watching for changes after the initial upload is complete.

comment:19 Changed on Feb 10, 2015 at 1:12:37 PM by dkocher

#8573 closed as duplicate.

comment:20 Changed on Apr 21, 2015 at 2:03:23 PM by dkocher

Please refer to Watching changes in directory with fswatch and upload for how to use Cyberduck CLI for such a workflow with fswatch.

comment:21 Changed on Apr 21, 2015 at 2:03:44 PM by dkocher

  • Milestone changed from 5.0 to 4.7
  • Resolution set to worksforme
  • Status changed from reopened to closed

comment:22 Changed on Apr 21, 2015 at 2:03:56 PM by dkocher

  • Component changed from core to cli

comment:23 follow-up: Changed on Feb 2, 2021 at 1:19:58 PM by jonaskarpeta

So thats it? Not working in the version with interface? Is there any simple documentation on how to use monitoring and sync?

comment:24 in reply to: ↑ 23 Changed on Feb 3, 2021 at 8:08:24 AM by dkocher

Replying to jonaskarpeta:

So thats it? Not working in the version with interface? Is there any simple documentation on how to use monitoring and sync?

I recommend that you use Mountain Duck in conjunction with your preferred sync tool such as rsync.

Last edited on Feb 3, 2021 at 8:09:23 AM by dkocher (previous) (diff)
Note: See TracTickets for help on using tickets.