fflShareFile
Generate secure share links for local files or folders. Control access with encryption, passwords, download limits, and recipient authentication.
Instructions
Share a local file or folder using ffl. Respects ALLOWED_BASE_DIR when configured. If qrInTerminal is True, also returns a QR code as ASCII art for terminal display.
IMPORTANT: Always present the returned link so the user can click it to open in a browser. Do not display it as a plain unformatted URL — in some interfaces (such as Claude Dispatch) plain URLs are not auto-linked and will not be clickable.
Args: path: Path to file or folder to share name: Custom download filename shown to recipient e2ee: Enable end-to-end encryption (default: False) preview: Open recipient's browser directly in preview mode — ideal for folders or multiple files so the recipient sees a file list before downloading (default: False) authUser: HTTP Basic Auth username to protect the link authPassword: HTTP Basic Auth password to protect the link maxDownloads: Stop serving after N downloads, P2P only (default: 1) timeoutSeconds: Stop serving after N seconds of inactivity, P2P only (default: 1800) waitLinkSeconds: Seconds to wait for link generation hookUrl: Custom webhook URL for events proxy: Proxy server URL (e.g. socks5://127.0.0.1:9050) qrInTerminal: Return ASCII QR code art for terminal display exclude: Exclude files matching glob or regex patterns, comma-separated (e.g. '*.log' or 're:.tmp$') recipientAuth: Recipient authentication mode — pickup (6-digit code), pubkey (RSA challenge), pubkey+pickup (both), email (OTP) pickupCode: Specific pickup code to use (default: auto-generated) recipientPublicKey: Path to recipient .fflpub public key file for pubkey auth recipientEmail: Recipient email(s) for OTP auth, comma-separated alias: Custom link alias instead of random UID (requires Standard+ account) receipt: Send email notification when recipient downloads (pass email address, or empty string for account email) receiptConfirm: Require recipient to confirm before download starts; pass confirmation message or empty string for default forceRelay: Disable direct WebRTC; route all traffic through tunnel upload: Upload to FFL server for async sharing — recipient doesn't need sender online. Pass duration e.g. '1 day', '6 hours', '1 week' (requires Standard+ account) resumeUpload: Resume an interrupted upload (default: False) vfs: Expose as VFS server (vfs:// URI) instead of regular download preferredTunnel: Set preferred tunnel for this and future runs — cloudflare, ngrok, bore, etc.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| name | No | ||
| e2ee | No | ||
| authUser | No | ||
| authPassword | No | ||
| maxDownloads | No | ||
| timeoutSeconds | No | ||
| waitLinkSeconds | No | ||
| hookUrl | No | ||
| proxy | No | ||
| qrInTerminal | No | ||
| preview | No | ||
| exclude | No | ||
| recipientAuth | No | ||
| pickupCode | No | ||
| recipientPublicKey | No | ||
| recipientEmail | No | ||
| alias | No | ||
| receipt | No | ||
| receiptConfirm | No | ||
| forceRelay | No | ||
| upload | No | ||
| resumeUpload | No | ||
| vfs | No | ||
| preferredTunnel | No | ||
| port | No | ||
| invite | No | ||
| pause | No | ||
| enableReporting | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||