Fflsharefile
fflShareFileShare a local file or folder through a clickable link, with optional upload-based async sharing, encryption, and access controls.
Instructions
Share a local file or folder using ffl. Respects ALLOWED_BASE_DIR when configured. Managed-sandbox policy: When running inside ChatGPT Work, Grok Bot, a cloud-hosted Codex sandbox, or a Claude Code cloud session (Claude Code on the web / claude.ai/code, or a remote session started from the Claude app), use relay immediately: forceRelay=True and preferredTunnel="default:web". These environments may only allow outbound HTTPS through a proxy, with no usable UDP/ICE or raw TCP tunnels. Do not apply this rule to local Claude Code CLI, local Codex CLI, local Grok Build, or ordinary user machines.
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.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| vfs | No | Expose as VFS server (vfs:// URI) instead of regular download | |
| e2ee | No | Enable end-to-end encryption (default: False) | |
| name | No | Custom download filename shown to recipient | |
| path | Yes | Path to file or folder to share | |
| port | No | ||
| alias | No | Custom link alias instead of random UID (requires Standard+ account) | |
| pause | No | ||
| proxy | No | Proxy server URL (e.g. socks5://127.0.0.1:9050) | |
| invite | No | ||
| upload | No | 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) | |
| exclude | No | Exclude files matching glob or regex patterns, comma-separated (e.g. '*.log' or 're:\.tmp$') | |
| hookUrl | No | Custom webhook URL for events | |
| preview | No | 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) | |
| receipt | No | Send email notification when recipient downloads (pass email address, or empty string for account email) | |
| authUser | No | HTTP Basic Auth username to protect the link | |
| transport | No | ||
| forceRelay | No | Disable direct WebRTC; route all traffic through tunnel | |
| pickupCode | No | Specific pickup code to use (default: auto-generated) | |
| authPassword | No | HTTP Basic Auth password to protect the link | |
| maxDownloads | No | Stop serving after N downloads, P2P only (default: 1) | |
| qrInTerminal | No | Return ASCII QR code art for terminal display | |
| resumeUpload | No | Resume an interrupted upload (default: False) | |
| recipientAuth | No | Recipient authentication mode — pickup (6-digit code), pubkey (RSA challenge), pubkey+pickup (both), email (OTP) | |
| receiptConfirm | No | Require recipient to confirm before download starts; pass confirmation message or empty string for default | |
| recipientEmail | No | Recipient email(s) for OTP auth, comma-separated | |
| timeoutSeconds | No | Stop serving after N seconds of inactivity, P2P only (default: 1800) | |
| enableReporting | No | ||
| preferredTunnel | No | Set preferred tunnel for this and future runs — cloudflare, ngrok, bore, etc. | |
| recipientPublicKey | No | Path to recipient .fflpub public key file for pubkey auth |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||