📦 Overview

ClumsyFileMover™ is a desktop FTP/SFTP/SCP client for Windows built with Electron. It gives you a dual-pane layout — local filesystem on the left, remote server on the right — with direct drag-and-drop transfers, a folder sync tool, synchronized browsing, and remote file editing that auto-uploads on save.

Supported protocols: FTP, FTPS (explicit TLS), SFTP, and SCP. Auth supports password, private key, and key passphrase for SFTP/SCP.

Public Beta ClumsyFileMover™ is currently available as a public beta for Windows. This documentation is being refreshed for the current build.

⬇️ Installation

Download the current public beta installer from the Downloads page.

  1. Run the ClumsyFileMover Setup .exe you were provided.
  2. Follow the NSIS installer — you can change the install directory if needed.
  3. Launch ClumsyFileMover from the Start Menu or the shortcut on your desktop.
  4. The app checks for updates on launch automatically. When a new version is available a banner appears in the header — click to download, then restart when prompted.
Public beta download The Downloads page lists the current public beta release and checksum.

🔌 First Connection

  1. Click New Connection in the left sidebar.
  2. Select your protocol (SFTP, FTP, FTPS, or SCP), then fill in the host, port, and username.
  3. Enter a password or paste a private key (PEM format). For SFTP/SCP you can leave the password blank if you use key auth.
  4. Click Test Connection to verify credentials before saving.
  5. Give the connection a name, optionally assign it to a group, and add a note if useful. Then click Save.
  6. Click the connection in the sidebar to open it in a new tab.

For a one-off session without saving credentials, use Quick Connect below the New Connection button. That session is discarded when the tab closes and is not restored on relaunch.

Connection notes

The optional Notes field on each connection stores a free-text reminder — environment, purpose, owner, whatever is useful. The note appears as a tooltip when you hover the connection name in the sidebar.

🖥️ The Interface

Dual-pane layout

The left pane shows your local filesystem. The right pane shows the remote server. Drag the center divider left or right to resize. On Windows, the local pane shows all available drives at the top level. Both panes sort numerically within filenames, so file10 sorts after file9.

Tabs and session restore

Each connection opens in its own tab. Switch tabs with Ctrl+Tab / Ctrl+Shift+Tab, or close the active tab with Ctrl+W. Multiple connections run simultaneously and each keeps its own session.

Tabs from saved connections are automatically restored the next time you open the app. The last active tab is also remembered. Quick Connect tabs are temporary and are not restored.

Connection sidebar

Saved connections live in the left sidebar. Assign a group name when creating a connection to put it in a collapsible section. Click the sort button at the top of the list to sort A–Z by name or by protocol. Use the search bar at the top of the sidebar to filter connections by name or hostname — results update as you type.

Sidebar context menu

Right-clicking a connection in the sidebar opens a context menu with options to Edit, Move to Group (shows a sub-list of all existing groups), or Delete the connection. Right-clicking a group header lets you Rename the group inline. Right-clicking an empty area in the sidebar offers New Connection and New Group shortcuts.

Sidebar drag-and-drop

Connections can be dragged to a different group header to move them into that group. Dropping a connection onto the ungrouped area below all groups removes it from its current group. A ring highlight indicates the current drop target while you drag.

Taskbar jump list

Right-clicking the ClumsyFileMover icon in the Windows taskbar shows a jump list of all saved connections. Clicking one opens a new tab for that connection, even if the app is minimized. Only one instance of the app runs at a time — launching a second shortcut focuses the existing window.

Remote pane columns (SFTP/SCP)

On SFTP and SCP connections, the remote pane shows additional columns alongside Name, Size, and Modified:

  • Type — shows a dir badge for directories and a lnk badge for symlinks. Blank for regular files.
  • Permissions — the file mode in rwx notation (e.g. rwxr-xr-x).
  • Owner — the numeric UID of the file owner as returned by the server.
  • Group — the numeric GID of the file group.

All columns are resizable — drag the right edge of any column header to adjust the width.

Theme

The sun/moon icon in the header cycles between light, dark, and system theme. Preference is saved across restarts.

↕️ File Transfers

Selecting files and folders

Click a row to select it (and deselect everything else). Use the checkbox at the start of each row to toggle individual items. To select multiple items:

  • Ctrl+click — add or remove individual items from the selection without affecting others.
  • Shift+click — select a contiguous range from the last clicked item to the one you Shift-click.
  • Checkbox in the header — select or deselect all visible items at once.

Directories are selectable on both panes. A selected folder is included in transfers and copied recursively.

Tip Clicking a directory without Ctrl or Shift navigates into it. To select a folder for transfer, use its checkbox or Ctrl+click it.

Navigating with ".."

Both panes show a .. row at the top of every directory listing. Click it to navigate up to the parent directory. It is hidden at the root level (drive root on local, or / on remote).

Direct pane transfers

Select files in the local pane and click the arrow in the center divider to upload them to the current remote directory. Select files in the remote pane and click to download them to the current local directory.

Drag and drop

Drag files from the local pane and drop them anywhere in the remote pane to upload. Drag remote files and drop them in the local pane to download. The pane highlights when you drag over it.

Download with dialog

Double-click a remote file, press Enter, or use the Download button in the toolbar to open a Save dialog and download to a specific location.

Folder transfers

Uploading or downloading a folder copies the full directory tree recursively, creating subdirectories on the destination as needed. Select one or more folders using their checkboxes or Ctrl+click, then use the transfer arrow or the Download button to start. Recursion is capped at 50 levels.

Auto-refresh after download

When a download completes, the local pane automatically refreshes to show the new files. You do not need to press F5. Any selection you had in the local pane is preserved across the refresh.

Pre-transfer size summary

Before a batch of files enters the queue, a brief notification shows the file count and total size (e.g. Uploading 12 files · 48 MB). This appears before the conflict check, so you can cancel before anything starts.

Create new blank remote file

The file-plus icon in the remote toolbar (or New File Here in the right-click context menu) creates a new zero-byte file on the server. A name field appears inline — type the filename and press Enter to create it, or Escape to cancel.

Upload via toolbar

The upload icon in the remote toolbar opens a file picker to choose files to upload into the current remote directory.

⚠️ Overwrite Conflicts

When files being transferred already exist at the destination, the conflict modal appears before anything is queued. It lists each conflicting file with a side-by-side comparison of the source and destination size and modification date. Newer values are highlighted in green.

Choose how to handle the conflicts:

ActionWhat happens
CancelAbort the transfer entirely. Nothing is queued.
Skip conflictsTransfer only files that do not conflict. Conflicting files are skipped.
Overwrite if newerTransfer only files where the source is newer than the destination. Files that are not newer are skipped.
Overwrite if largerTransfer only files where the source is larger than the destination. Useful for resuming partial downloads.
ResumeResume a partial download from the existing local file's byte offset. Only shown when a partial local copy exists. See Transfer Resume.
Overwrite conflictsOverwrite every conflicting file. Non-conflicting files are also included.
Overwrite allOverwrite everything unconditionally, including non-conflicting files.
Tip The Newer and Larger options compare the file at the source against the file at the destination — not the other way around. If you are downloading, "newer" means the remote file is newer than the local copy.

Transfer Resume

When a download is interrupted — connection drop, manual cancel, or an app restart — the partial file stays on disk. The next time you try to download the same file, the conflict modal detects the partial copy and shows a Resume option alongside the normal overwrite choices.

Selecting Resume starts the download from the byte offset of the existing local file instead of from the beginning. Only the remaining bytes are transferred. When the download completes, the local file is the full remote file.

Protocol support

ProtocolResume support
SFTPYes — uses readStreamOptions.start to skip the already-downloaded portion.
FTP / FTPSYes — uses the FTP REST command to set the byte offset before RETR.
SCPNo — SCP does not support partial transfers. Use SFTP on the same server if resume is needed.
Note Resume is for downloads only. Uploads always start from the beginning. If an upload was interrupted, delete the partial remote file and re-upload.
Tip If the remote file has been updated since the partial download, resuming will produce a corrupt file. Use Overwrite instead of Resume if you are not sure whether the remote file has changed.

Folder Sync

The button in the center divider (below the transfer arrows) opens the Folder Sync modal. It compares the current local directory against the current remote directory and shows each file's status:

StatusMeaning
Local onlyFile exists locally but not on the remote.
Remote onlyFile exists on the remote but not locally.
DiffersFile exists in both places but the sizes don't match.
SameFile exists in both places with matching sizes.

Choose Push (local → remote) to upload local changes, or Pull (remote → local) to download remote changes. Files with actionable status are auto-checked; uncheck anything you want to skip. Click Sync to run. The Re-scan button refreshes the comparison.

Files only The current sync compares files at the top level of each directory — it does not recurse into subdirectories. Folder-level recursive sync is planned for a future release.

🔗 Synchronized Browsing

The Link2 button in the center divider (below the sync button) toggles synchronized browsing. When active, navigating into a folder on either pane automatically opens the same path on the other pane. The button shows a teal tint when linked.

This is useful when your local and remote directory structures mirror each other — you can navigate both panes simultaneously without clicking twice. The link is per-tab and does not persist across restarts.

Tip If the remote path does not exist when synchronized browsing tries to follow a local navigation, the remote pane stays on its current path rather than showing an error.

📋 Transfer Queue

The transfer drawer at the bottom of each tab manages the queue for that connection. It has three tabs:

  • Active — transfers currently running or waiting. Shows a progress bar, speed, and ETA for each file.
  • Done — successfully completed transfers. Cleared automatically when you navigate away or close the tab.
  • Failed — transfers that errored. Shows the error message per file. You can retry or clear them.

Pause and resume

The Pause button halts the queue after the current file finishes its active chunk. The progress bar turns amber while paused. Click Resume to continue. Pausing does not disconnect the session.

Cancel

Cancel a single file by clicking the X on its row. Cancel all active transfers with the Cancel All button. Cancelled transfers move to the Failed tab.

✓️ Remote Edit

Press F4 or click the edit icon in the remote toolbar to open a file in an external editor. The app downloads the file to a temp location, opens it, then watches for saves. Any time you save, the file is automatically re-uploaded to the server.

Configuring editors

Open Preferences → Editors to add named editors. Each entry has a name (shown in the menu) and a command (the path or shell command). Use Browse to pick an .exe — paths containing spaces are quoted automatically.

  • F4 and the toolbar button always use the first editor in the list.
  • Right-click a remote file and choose Edit with → to open a submenu with all configured editors.
  • Settings changes take effect immediately — no restart required.
Path examples notepad++ · "C:\Program Files\Notepad++ otepad++.exe" · code --wait · vim

How temp files work

Temp files use a WinSCP-compatible directory structure: %TEMP%\CFM_<id>\<remote-path>\filename.ext. The editor tab shows the real filename (e.g. index.html) so you can always tell which file you are editing.

Stopping an edit session

Closing the connection tab cleans up the temp file automatically. You can also right-click the file in the remote pane and choose Stop Editing to stop watching it without closing the tab.

Remote Commands

On SFTP and SCP connections, a terminal button in the remote toolbar opens the Remote Commands panel. Run shell commands directly on the server from within ClumsyFileMover.

Defining saved commands

  1. Open Preferences and scroll to Custom remote commands.
  2. Enter a short name (e.g. "Restart nginx") and the shell command to run (e.g. sudo systemctl restart nginx).
  3. Use %path% anywhere in the command string — it expands to the current remote directory at run time.
  4. Click Add, then Save in Preferences.

Running commands

Click the terminal icon in the remote toolbar to open the command panel. Saved commands appear as one-click buttons at the top. Below is a free-form input — type any command and press Enter to run it.

  • stdout is shown in white text in the output area.
  • stderr is shown in red.
  • A non-zero exit code is displayed next to the command.
  • Output accumulates — multiple commands can be run in one session.
SFTP/SCP only Remote commands require an SSH connection. The terminal button does not appear on FTP or FTPS connections.
Tip Use %path% in commands like du -sh %path%/* or find %path% -name "*.log" -mtime +7 to operate on the current remote directory without typing the full path.

Bookmarks & History

The star icon in the remote breadcrumb bar saves the current remote path as a bookmark for that connection. Bookmarks are stored per-connection in local storage.

Click the star or the dropdown arrow next to it to see your saved bookmarks and the last 15 visited paths. Click any entry to navigate there immediately.

Global bookmarks

The globe icon next to the star saves the current path as a global bookmark — visible across all connections, not just the current one. The bookmark dropdown shows a blue Global section at the top, above the amber This Connection section. Global bookmarks are useful for paths that appear across multiple servers (e.g. /var/www, /home/deploy).

📄 Session Log

Each tab has a collapsible session log panel at the bottom of the remote pane. It records timestamped events for that connection:

  • Connect and disconnect events
  • Transfer completions (filename, size, direction)
  • Errors and reconnect attempts

Click the log header to expand or collapse the panel. The log is per-session and is cleared when the tab closes.

Exporting the log

When the log is expanded and has entries, a download icon appears next to the clear button. Clicking it opens a save dialog and writes the log to a structured XML file with timestamps, event types, and message content. Use this for troubleshooting session issues or sharing a log with support.

⚙️ Preferences

The gear icon in the header opens Preferences. Settings are saved immediately on clicking Save.

Default local directory

Sets the path the local pane opens to when a new connection tab is created. Leave blank to use your home directory. Click Browse to pick a folder.

Editors

Add named editors in the Editors section. Each entry has a name (shown in the right-click submenu) and a command (path or shell command). Click Browse to select an .exe — spaces are quoted automatically. F4 uses the first editor in the list. See Remote Edit for full details.

File hide rules

A comma-separated list of filenames and glob patterns to hide in the remote pane. Supports * wildcards (e.g. *.pyc, __pycache__, .DS_Store). Matching files are filtered out after the next directory refresh. Local pane listings are not affected.

Preserve file timestamps

When enabled, ClumsyFileMover sets the destination file's modification time to match the source file after each transfer. This applies to both uploads and downloads. Always supported on SFTP/SCP. For FTP, the server must support the MFMT command; if it does not, timestamps are left at transfer time.

FTP ASCII / Binary extension overrides

Two fields in Preferences let you override FTP transfer-mode auto-detection on a per-extension basis. These apply when a connection's transfer mode is set to Auto.

  • ASCII extensions — force ASCII mode for these extensions, complementing the built-in list (e.g. add .log if your server needs it).
  • Binary extensions — force binary mode, overriding both the built-in list and the ASCII list. Use this to force .xml or .html as binary when the server requires it.

Enter extensions comma-separated; leading dots are optional.

Transfer masks

Two fields in Preferences let you filter which files are included or excluded during uploads and downloads. Masks use glob patterns with * wildcards. Both fields accept comma-separated patterns.

  • Transfer include mask — when set, only files matching at least one pattern are transferred. Leave blank to include everything.
  • Transfer exclude mask — files matching any pattern are skipped entirely. Takes precedence over the include mask. Useful for skipping hidden files, compiled artifacts, or large directories.

Example: include mask *.php,*.js,*.css with exclude mask node_modules,*.min.js transfers only PHP and JS/CSS source files, skipping node_modules and minified bundles.

Proxy

Route all connections through a proxy server. Enable the checkbox in the Proxy section and configure:

  • Type: HTTP (CONNECT tunnel), SOCKS4, or SOCKS5
  • Host and Port of the proxy server
  • Username and Password — optional, for authenticated proxies

The proxy applies to all protocols (FTP, FTPS, SFTP, SCP) for every new connection. Open sessions are not affected until reconnected. Disable by unchecking the proxy checkbox and saving.

Privacy & Telemetry

ClumsyFileMover collects anonymous product telemetry to help improve the app during beta. Telemetry is opt-out and can be disabled from Preferences → General → Privacy.

What is sent: startup events, transfer success/failure, app version, OS version, architecture, transfer type, and error category.

What is never sent: file names, folder paths, server names, IP addresses, usernames, passwords, connection strings, or file contents. All identifiers are one-way hashed before transmission.

Tip To disable telemetry, open Preferences, go to the General tab, and uncheck Share anonymous product telemetry.

🚦 Transfer Speed Limit

ClumsyFileMover can cap the bandwidth used by uploads and downloads globally. Open Preferences and enter a value in the Transfer speed limit field (KB/s). Setting it to 0 or leaving it blank disables throttling.

The limit is enforced by a token-bucket throttle applied to the raw data stream for both FTP and SFTP/SCP connections. It applies to all active transfers simultaneously — if you are running two parallel uploads, each is limited individually.

When to use it

  • Prevent large transfers from saturating a shared internet connection.
  • Avoid hitting upload quotas on hosting providers that rate-limit accounts.
  • Keep background transfers from competing with active work.
Tip The speed limit is a ceiling, not a guarantee. If the network is already slower than the limit, the actual transfer rate will be the network rate. The limit only kicks in when your connection is faster than the cap.

Checksum Verification

When Verify checksums after download is enabled in Preferences, ClumsyFileMover verifies the integrity of each downloaded file by computing its SHA-256 hash and comparing it against the server’s copy.

How it works

  1. After a file downloads, ClumsyFileMover runs sha256sum <remotepath> on the server via SSH.
  2. The SHA-256 hash of the local downloaded file is computed.
  3. The two hashes are compared. A match logs ✓ Checksum verified: filename to the session log.
  4. A mismatch flags the file as failed in the transfer drawer’s Failed tab with a “Checksum mismatch” error. The local file is kept for inspection.

Protocol support

ProtocolVerification
SFTPYes — sha256sum run via SSH exec.
SCPYes — sha256sum run via SSH exec.
FTP / FTPSNot supported — silently skipped.
Performance note Verification adds one SSH round-trip per file after download. For large batches it may add noticeable time. Disable the setting if speed matters more than verification.
Requirement sha256sum must be available on the remote server. It is included by default on most Linux distributions. If unavailable, verification is silently skipped.

📐 Transfer Profiles

Transfer profiles are named bundles that combine an overwrite action and a preserve timestamps setting. Once a profile is set as active in Preferences, ClumsyFileMover skips the overwrite conflict modal entirely and applies the profile's action automatically to every transfer.

Creating a profile

  1. Open Preferences and go to the Transfer Profiles section.
  2. Click New Profile and give it a name (e.g. "Skip existing", "Always overwrite", "Newer only").
  3. Choose the overwrite action: Overwrite all, Skip conflicts, Overwrite if newer, or Overwrite if larger.
  4. Toggle Preserve timestamps on or off for this profile.
  5. Click Save.

Activating a profile

In the Transfer Profiles section of Preferences, select a profile from the Active profile dropdown. With an active profile set, the conflict modal is bypassed — transfers queue immediately with the profile's settings applied.

To return to manual conflict prompts, clear the active profile (select "None").

Profile actionBehaviour when conflict is detected
Overwrite allOverwrites every conflicting file unconditionally.
Skip conflictsSkips files that already exist at the destination.
Overwrite if newerOverwrites only when the source is newer than the destination.
Overwrite if largerOverwrites only when the source is larger than the destination.
Note When an active profile is set, no conflict prompt appears — transfers run silently with the profile rules applied. Make sure your active profile is appropriate before starting a large batch transfer.

🔒 Master Password

The master password feature encrypts all stored connection credentials — passwords, private keys, and key passphrases — using AES-256-GCM with a PBKDF2-derived key (200,000 SHA-256 rounds). Without the master password, stored credentials cannot be read even if someone accesses the app data directory directly.

Enabling the master password

  1. Open Preferences and go to the Master Password section.
  2. Click Manage to open the Master Password panel.
  3. Enter a strong password twice to confirm and click Enable.
  4. All existing credentials are immediately re-encrypted under the new master password. A success message confirms when the process is complete.
No recovery If you forget the master password, there is no recovery option. All stored credentials will be permanently inaccessible. Write it down and keep it somewhere safe.

The lock screen

When the master password is enabled, a full-screen lock overlay appears every time the app launches. You must enter the correct master password to unlock the app before any connections, tabs, or saved data are accessible. The lock screen cannot be dismissed without the correct password.

Changing the master password

Open Preferences → Master Password → Manage, then select Change password. Enter your current password, then enter and confirm the new password. All credentials are re-encrypted with the new key immediately. The old password no longer works after this.

Disabling the master password

Open Preferences → Master Password → Manage and select Disable. Enter your current master password to confirm. All credentials are decrypted and stored in plain form. The lock screen will no longer appear on launch.

Tip The master password protects credentials at rest. It does not encrypt credentials in memory while the app is running. For maximum security, close the app when not in use rather than leaving it unlocked on an unattended machine.

📂 Import / Export

The Import / Export panel (click Import / Export at the bottom of the connection sidebar) lets you migrate connections from other FTP clients and back up or restore your connection list. Open it from the sidebar footer at any time — no active connection required.

Always verify after importing. Passwords may not transfer from other clients. After any import, open each connection in the editor and confirm the credentials are correct. Re-enter any missing passwords before connecting.

Import from WinSCP

Reads saved sessions directly from the Windows registry (HKCU\Software\Martin Prikryl\WinSCP 2\Sessions). No file selection required — click Import WinSCP and ClumsyFileMover finds the sessions automatically.

WinSCP uses a proprietary password obfuscation scheme. ClumsyFileMover decodes passwords where possible, but some session types or older WinSCP versions may result in blank passwords on import. Check each imported connection.

  • Connections are matched by host, port, username, and protocol — existing duplicates are skipped.
  • Connection groups are preserved if WinSCP sessions were organized into folders.

Import from FileZilla

Reads the FileZilla Site Manager from its default location: %APPDATA%\FileZilla\sitemanager.xml. No file selection required — click Import FileZilla and the file is read automatically.

FileZilla passwords encoded with a master password (crypt encoding) cannot be decrypted and will not be imported. Passwords stored without a master password are imported. Either way, verify credentials after importing.

  • Site groups from the FileZilla Site Manager are preserved.
  • Connections already in ClumsyFileMover (matching host/port/username/protocol) are skipped.
  • Site comments are imported as connection notes.
  • Key-file authentication type is detected and set; the key path itself is not transferred.

Export to FileZilla

Click Export in the FileZilla card to save all your connections to a sitemanager.xml file compatible with FileZilla. A save dialog lets you choose the destination. Connection groups are preserved in the output.

Use this to share your connection list with a colleague who uses FileZilla, or to migrate back to FileZilla. The exported file can be opened directly in FileZilla via File → Import.

Export backup

Saves all connections and their credentials to an encrypted .cfmbak file. You choose the save location. The file is encrypted with AES-256-GCM using a passphrase you provide — without the passphrase the file cannot be opened.

Use this before reinstalling Windows, moving to a new machine, or any time you want a point-in-time backup of your connection list. Keep the passphrase somewhere safe — there is no recovery option if it is lost.

Import backup

Opens a .cfmbak file and merges the connections into your current list. Existing connections (matched by ID) are not overwritten, so it is safe to import into a partially set up installation. Enter the same passphrase used when the backup was created.

💾 Portable Mode

In standard mode, ClumsyFileMover stores all data in %APPDATA%\ClumsyFileMover. Portable mode moves that data to sit alongside the executable, making the app fully self-contained.

Enabling portable mode

  1. Locate ClumsyFileMover.exe (wherever you installed or extracted the app).
  2. In the same folder, create an empty file named exactly portable with no extension.
  3. Restart the app. ClumsyFileMover now reads and writes connections.json and settings.json in that folder instead of %APPDATA%.
USB drive use Put ClumsyFileMover.exe, the portable marker file, and the data files in one folder on a USB drive. Plug it into any Windows machine and run the exe — all connections and settings come with you. No installation needed.
Note Portable mode only works in packaged builds. Development mode always uses the AppData path regardless of the marker file.

Migrating existing data to portable mode

Copy connections.json and settings.json from %APPDATA%\ClumsyFileMover to the folder containing the exe, then create the portable marker file and restart the app.

🔗 URI / Deep-Link Scheme

ClumsyFileMover registers itself as the handler for cfm:// URIs during installation. Opening a cfm://open/<connection-id> link from a browser, script, or command line focuses the app and immediately opens that connection.

Getting a connection's ID

Right-click a connection in the sidebar and choose Copy ID (or check the connection edit dialog). The ID is a UUID. Example link: cfm://open/3a4b5c6d-...

Single-instance If ClumsyFileMover is already running, the URI focuses the existing window. If it is not running, the app launches and then opens the connection.

🌐 IPv6

Enter IPv6 addresses in bracket notation in the host field: [::1], [2001:db8::1], [fe80::1%eth0]. The brackets are stripped before connecting so the underlying library receives a bare IPv6 address. All protocols (FTP, FTPS, SFTP, SCP) support IPv6 addresses.

🔑 SSH Host Keys

On the first connection to an SFTP or SCP server, ClumsyFileMover shows the server's host key fingerprint and asks you to verify it. This is a standard SSH security check — it confirms you are connecting to the expected server and not an impersonator.

  1. Compare the displayed fingerprint against the known fingerprint for your server (available from your hosting provider or via ssh-keyscan).
  2. Click Accept & Connect if it matches. The fingerprint is stored for this connection.
  3. Click Reject to abort the connection if something looks wrong.

On subsequent connections, the stored fingerprint is compared automatically. If the server's fingerprint has changed — due to a server reinstall or a potential man-in-the-middle situation — a warning is shown before connecting. You can accept the new fingerprint to update the stored value, or reject to abort.

Security An unexpected fingerprint change on a known server is a red flag. Verify with your server administrator before accepting.

⌨️ Keyboard Shortcuts

KeyAction
F1Open keyboard shortcuts overlay
F2Rename selected file or folder
F3View selected file (text/binary preview)
F4Edit selected file in external editor
F5Refresh remote listing
F8 / DelDelete selected items
EnterDownload selected file (opens Save dialog)
Ctrl+FOpen remote file search
Ctrl+TabSwitch to next tab
Ctrl+Shift+TabSwitch to previous tab
Ctrl+WClose active tab
Ctrl+BToggle connection sidebar (open / hidden)
EscapeCancel rename / close dialogs
BackspaceGo up one directory (remote pane)

🔗 Protocols

ProtocolDefault PortAuthNotes
SFTP22Password or private keySupports chmod, recursive chmod, symlinks, key passphrase
SCP22Password or private keyUses SSH transport; supports chmod, recursive chmod, symlinks
FTP21PasswordPlaintext — use on trusted networks only. Configurable transfer mode (ASCII / Binary / Auto).
FTPS21PasswordExplicit TLS; self-signed cert option available. Configurable transfer mode.

Private keys should be in PEM format. Paste the full key content (including the header/footer lines) into the Private Key field when creating or editing a connection.

FTP transfer mode

FTP and FTPS connections have a per-connection transfer mode setting: Auto (default), Binary, or ASCII. Auto detects common text file extensions and sends those as ASCII; everything else goes Binary. Use explicit Binary or ASCII if your server requires it. Set this in the connection edit dialog. SFTP and SCP always use binary mode.

File permissions (chmod)

Right-click any file or folder on an SFTP or SCP connection and select Permissions to open the chmod modal. Enter the mode in octal (e.g. 755, 644). For directories, check Apply recursively to apply the mode to the directory and all files and subfolders inside it.

🛠️ Support & Bug Reports

The quickest way to report a bug is the Send Feedback button (message icon in the header toolbar). Choose Bug Report, fill in a title and description, and optionally tick Include basic diagnostics to attach OS and runtime info. You’ll get a tracking number on submission.

If the app won’t launch, email bugs@clumsyslab.tech with the version number, protocol, OS, and steps to reproduce.