What CNC Sync Does
CNC Sync watches one or more local folders, optionally runs a local processing step, and delivers the prepared result to a reusable destination.
App Settings
Global behaviour for the app itself.
Destinations
Reusable named FTP, SFTP, SCP, Local Folder, or Network Share targets.
Processing Setups
Reusable processing rules including external scripts.
Watch Folders
The monitored folders that combine watch, processing, and destination settings.
Typical Setup Flow
- Create a
Destination. - Create a
Processing Setup. - Create a
Watch Folderthat points to a local watch folder and staging folder, then select the destination and processing setup it should use. - Validate settings.
- Start monitoring.
App Settings
Use App Settings for behaviour that applies to the whole app:
Launch At Login: start CNC Sync when the user logs in.Start Minimized: start hidden/minimized when supported on the current platform.Import Settings...: browse for asettings.jsonfile from another machine or previous installation and import it into the current app profile.Validate Settings: check the current configuration for missing or invalid items.
Settings are saved automatically as you change them.
Imported settings replace the current profile configuration. Passwords and SSH key passphrases are stored in the local OS secret store, so after moving a settings file between machines you may need to re-enter those secrets on the new machine.
Destinations
A destination defines one reusable delivery target:
Destination Name: friendly label shown in selectors.Remote Base Path: optional base path on the target such as/uploads.
Supported destination types:
FTP: host, port, optional anonymous mode, and username/password when needed.SFTP: host, port, username, and either password or private-key authentication.SCP: host, port, username, and either password or private-key authentication.Local Folder: a normal local filesystem path.Network Share: an SMB share such as a NAS or another computer on the network.
SSH destination authentication:
Password: standard username/password sign-in.Private Key: key file path plus optional key passphrase.
Network Share notes:
- On macOS, explicit sign-in to a Mac SMB share may require enabling that account under
Windows File Sharing. - On Linux, SMB shares work best when they are already mounted by the desktop environment.
- On Linux, explicit SMB username/password access may still require mounting the share first in the desktop file manager.
- If a destination requires a VPN first, choose it in
Required VPN. - VPN profiles used by CNC Sync must be able to connect automatically without prompting for user interaction.
- If enabled,
Check destination before starting VPNtries the destination directly first and only starts the VPN if direct access fails. - If enabled,
Disconnect VPN When Finisheddisconnects a VPN only when CNC Sync had to connect it itself, and only after a short idle window. FTP Data Modecan be set toAuto Passive,Passive, orActivedepending on how fussy the destination FTP server is about data connections.
The effective remote path is built from the destination base path plus the watch profile additional remote path.
Example: destination base path /uploads and watch additional remote path /watch1 becomes /uploads/watch1.
Processing Setups
A processing setup defines what happens to a detected file or folder before upload.
Default Upload
This is the default passthrough option. The source item is copied into staging/output and the copied result is uploaded.
External Script
This runs a local script or executable before upload.
Custom script bundles can also be imported once for the whole app from the left side of the Processing Setups tab. After import, each processing setup still chooses its own local Script Path from the imported files.
Mode: chooseExternalScript.Runner: choose how to launch the script:Auto,PowerShell,Bash,Python,Command, orDirect.Script Path: the local file to execute.Custom Script Source URL: a shared customer script source used by the left-sideCheck / Importaction.Arguments Template: arguments passed to the script at runtime.
Supported placeholders:
{sourcePath}: the detected source file or folder.{outputPath}: the prepared output folder where processed files should be written.{scriptPath}: the selected script path.
Any other text is passed through literally, which means you can add extra fixed arguments if your script expects them.
"{sourcePath}" "{outputPath}"
For example, if your script expects a literal text parameter after the normal source and output paths, you can write:
"{sourcePath}" "{outputPath}" "watch1"
In that case, the script receives the real source path, the real output path, and the literal text watch1.
The bundled legacy_revision script uses one extra flag to enable the CYC Y-coordinate update:
"{sourcePath}" "{outputPath}" --update-cyc-y
That extra --update-cyc-y text is not replaced. It is passed straight through to the script as written.
Script contract:
- Exit code
0means success. - Non-zero means failure.
- Optional stdout line:
OUTPUT_PATH=/path/to/final/output
If OUTPUT_PATH= is printed, CNC Sync uploads that folder. If not, it uploads the prepared output folder it already passed in.
Shared Custom Script Imports
- Paste the shared link once into
Custom Script Source URLin the left Processing Setups panel. - Click
Check / Import. - CNC Sync imports the files into the local Scripts folder under
Imported/CustomSource. - Each processing setup can then choose whichever imported local script it needs using
Script Path.
Imported scripts stay local and are executed locally. Repeated checks only archive and replace files that actually changed. Unchanged files are left alone, and junk files such as .DS_Store, ._*, Thumbs.db, desktop.ini, and ehthumbs.db are ignored during import.
Watch Folders
A watch folder ties everything together.
Profile Name: friendly label for this watch profile.Enabled: whether this profile participates in monitoring.Watch Folder: local folder being watched.Staging Folder: local folder used for prepared output.Additional Remote Path: optional path appended under the selected destination base path.Processing Setup: which processing rule to run.Destination: which destination to upload to.Required Quiet Time: how long files or folders must stay unchanged before processing starts.Stability Check Interval: how often CNC Sync checks pending items to see if they are ready.
Monitoring
The monitoring area shows:
- whether monitoring is running
- which watch profiles are active
- the current task
- the last processing summary
Start begins folder monitoring. Stop stops folder monitoring.
If enabled watch profiles exist and settings validate successfully, the app can auto-start monitoring on launch.
Changes to monitoring-related settings are applied live by reloading monitoring automatically.
Manual Catch-Up
Manual Catch-Up is for reconciling missed uploads.
It uses the local staging folder as a retry outbox. It:
- reads the selected watch profile
- looks for items still waiting in staging because a previous delivery did not complete successfully
- retries those staged items to the selected destination
- removes staged items after a successful upload
Use this when the destination was unavailable, monitoring was stopped, or staged items are still waiting locally after a failed delivery.
Scheduled catch-up uses the same staged-outbox model. It can only retry items that made it into staging while CNC Sync was running, so it cannot detect and reprocess files that were created while the app was not running and never made it into staging.
Activity Log
The Activity tab shows recent events with:
- time
- source/profile
- message
Timestamps include milliseconds so quick processing sequences are easier to follow.
The log text is selectable for copy/paste.
The same activity stream is also written to a text file in the app data folder. On Linux that is typically ~/.config/CNC Sync/activity.log, on macOS it is ~/Library/Application Support/CNC Sync/activity.log, and on Windows it is typically %AppData%\CNC Sync\activity.log.
Help / About
The Help / About tab includes:
- setup reminders
- destination and VPN notes
- shared custom-script import reminders
- a link to the project page
- a link to the update log / GitHub releases page
Security Prompts
CNC Sync is not yet code signed on Windows and is not yet notarized on macOS, so the first install or first launch may trigger platform trust prompts.
Windows
If the installer is flagged, keep the download and use More info then Run anyway if SmartScreen appears.
macOS
If macOS blocks the installer or app, open System Settings > Privacy & Security and choose Open Anyway.
What It Means
These prompts are expected platform trust checks for unsigned software, not CNC Sync reporting that it found malware.
Notes
- FTP timestamps are not relied on for catch-up decisions.
- Finder can be misleading for FTP or SMB browsing and refresh; use a dedicated client or your normal file manager when verifying remote contents.
- Metadata junk such as
.DS_Store,._*,Thumbs.db,desktop.ini, andehthumbs.dbis ignored during watching, staging, catch-up, and upload. - On Linux AppImage builds, make the file executable before first launch. Launch At Login uses the current AppImage path, so move it to its long-term location before enabling login startup.