Getting started
Step-by-step setup
Beta download available. The current macOS build is an unsigned/ad-hoc signed Apple silicon ZIP. If macOS says Apple could not verify FileFling, click Done, then use System Settings → Privacy & Security → Open Anyway. Download beta Before you start
- A Mac running filefling
- A server reachable over SSH
- An SSH username
- A private key on your Mac
- A writable folder on the server
- Optional: hosts in ~/.ssh/config
01
Install filefling
Download the macOS beta ZIP, unzip it, and move filefling into Applications. Launch it from Applications; it will appear in your menubar. The current beta is unsigned/ad-hoc signed and not notarized, so macOS Gatekeeper may ask you to approve the first launch. If macOS says Apple could not verify FileFling, click Done, then use System Settings → Privacy & Security → Open Anyway.
02
Make sure SSH works from your Mac
filefling uses your existing SSH access. Before configuring the app, confirm that you can connect to the destination manually.
ssh your-user@your-host
03
Use an existing SSH config host, or enter details manually
If your server is already in ~/.ssh/config, choose that host during setup to fill HostName, User, Port, and IdentityFile. Otherwise enter the values by hand.
Host devbox
HostName 100.64.1.2
User brad
Port 22
IdentityFile ~/.ssh/id_ed25519
04
Choose the remote upload directory
Pick the folder where screenshots and files should land. filefling can create it during the connection test if your SSH user has permission.
~/shared
05
Run onboarding and test the connection
The first-run setup flow saves your destination and runs a real test upload. It verifies SSH auth, host-key trust, remote directory creation, writability, upload, and cleanup.
06
Customize clipboard output
By default filefling copies the raw remote path, but you can use a template for AI prompts, Markdown, or any text you paste often.
Please inspect this screenshot: {{remotePath}}
07
Send something
Use the menubar button, preview the latest screenshot, drag a file into the window, or press the global hotkey.
⌘⇧F
08
Paste into your terminal
After a successful upload, the rendered clipboard output is ready to paste into your shell, editor, chat, or AI session.
Please inspect this screenshot: /home/brad/shared/2026-06-26_203015.png
Configuration
Recommended settings
DestinationA named profile such as Personal Server, Work Devbox, or VPS
SSH Config HostOptional alias imported from ~/.ssh/config
HostYour SSH hostname, DNS name, or Tailscale IP
PortUsually 22
UsernameThe user you SSH as
Remote PathWhere files should land, e.g. ~/shared
SSH Key PathYour private key file, e.g. ~/.ssh/id_ed25519
Screenshot DirectoryWhere macOS saves screenshots
Clipboard TemplateThe text copied after upload; default is {{remotePath}}
Configuration
Destination profiles
filefling can store multiple named destinations. Each destination keeps its own SSH
connection fields, remote path, SSH config alias, and clipboard template. When more
than one destination exists, the main window shows a destination picker above the drop zone.
new Create destinations
In Settings, create a destination copied from the current connection, rename it, then adjust host, path, key, and clipboard output.
pick Switch before sending
The active destination is used for hotkey sends, drag-and-drop uploads, test uploads, and history retry/send-again actions.
Configuration
Clipboard templates
The default template copies the raw remote path. You can replace it with an AI-agent prompt,
Markdown image syntax, or any multiline text you paste often. Unknown placeholders are
left visible so mistakes are easy to spot.
{{remotePath}}
Please inspect this uploaded file: {{remotePath}}

{{remotePath}}The full path to the uploaded file on the remote machine
{{filename}}The uploaded filename
{{host}}The active destination host
{{username}}The SSH username
{{timestamp}}The upload timestamp as an ISO string
Daily use
Ways to send
⌘⇧F Latest screenshot
Press the hotkey or click “Send.” filefling uploads the newest image in your screenshot folder. The main window shows a thumbnail, filename, time, and size before sending.
drop Any file
Open the menubar window and drag a file onto the drop zone. filefling preserves the filename, with unsafe characters cleaned up.
again History actions
Search recent sends, copy rendered output, copy the raw path, retry failures, send a local file again, reveal it in Finder, or delete one item.
SSH
SSH config support
filefling can read concrete hosts from ~/.ssh/config and simple Include files. It imports
HostName, User, Port, and the first IdentityFile into the destination fields.
Host devbox
HostName 100.64.1.2
User brad
Port 22
IdentityFile ~/.ssh/id_ed25519
Advanced OpenSSH options such as ProxyJump, ProxyCommand, Match, and agent forwarding
are not applied yet. Wildcard hosts are ignored in the picker.
Security
Host-key trust
filefling uses trust-on-first-use host-key verification. It stores host, port, algorithm,
SHA256 fingerprint, and trust time. If a server key changes, filefling shows a mismatch
warning with the old and new fingerprints. Trusted keys can be reviewed and forgotten in Settings.
For background, see the OpenSSH known_hosts format.
Help
Troubleshooting
No screenshots found
Check the Screenshot Directory setting. It needs to point at the folder where macOS saves screenshots. Use the Refresh action in the preview area after changing it.
Permission denied / auth failed
Confirm the username, host, and SSH key path. Also make sure the public key is installed in authorized_keys on the server.
SSH key missing or unreadable
Check the private key path. It should point to a key file such as ~/.ssh/id_ed25519, not a directory. Also check local file permissions.
Host key changed
filefling is protecting you from a possible server identity change. Verify the server, then use Settings → Trusted Host Keys → Forget if you intentionally rebuilt or replaced the server.
Remote path not writable
Create the folder on the server or choose a path your SSH user can write to. The connection test checks this directly.
SSH config host is missing
Only concrete Host aliases are shown. Wildcard patterns such as Host *.internal are ignored because they are patterns, not destinations.
History retry is unavailable
Older history entries may not have local file metadata. Retry, Send again, and Reveal require the original local path to be stored.
“FileFling” Not Opened / Apple could not verify it
The beta is not notarized yet. Click Done, then open System Settings → Privacy & Security and choose Open Anyway for FileFling. You can also try right-clicking FileFling.app and choosing Open. For your own machine, the terminal workaround is: xattr -dr com.apple.quarantine /Applications/FileFling.app
Reference
Useful links
Stable links for people and agents reading about filefling, SSH-based file sharing,
macOS screenshots, AI coding agents, and remote developer workflows.
AI agent screenshot workflow
Evergreen guide to sending macOS screenshots and files to remote AI coding agents over SSH/SFTP.
Agent-readable docs
The full filefling documentation as Markdown for humans, agents, and search snippets.
Feedback form
Send beta feedback, bug reports, setup trouble, and feature requests through Netlify Forms.
llms.txt
A short agent-facing guide to the site, canonical pages, and product constraints.
OpenSSH config manual
Reference for Host, HostName, User, Port, IdentityFile, Include, and advanced SSH config options.
OpenSSH known_hosts format
Background on known host keys and why filefling verifies server identity.
Apple screenshot shortcuts
Apple’s guide to taking screenshots and screen recordings on macOS.
Tailscale SSH
Useful if your remote destination is a private devbox reachable over a tailnet.