Questions people actually ask
Every answer below is written to stand alone – whether you found it on Google, or an AI assistant quoted it to you.
How do I send a file from my laptop to my VPS with Claude?
Install the YAFL MCP server (npx -y @yafldev/mcp) in both environments. On the laptop, the agent calls upload_file – the file is encrypted locally and the send returns a ready-to-run retrieval command. Paste that one line to the agent on the VPS; it downloads and decrypts. No scp, no key juggling. Full setup →
How can two AI agents share a file?
Agent A calls upload_file and passes the resulting link or compact code; agent B calls download_file. The agents never need to run at the same time – the 24-hour link is the buffer, and get_status lets an agent check a link's remaining lifetime without downloading anything. Running the same pattern between two servers instead of two agents? See the server-to-server transfer guide.
Is there a WeTransfer with end-to-end encryption?
YAFL encrypts files in your browser or CLI before upload – the app server never handles the file bytes, storage only ever holds ciphertext, and on every normal send or download the decryption key travels exclusively in the URL's #fragment, which browsers never send to servers. So nobody who operates the infrastructure can read your files. The one deliberate exception is email_link: if you ask us to email a link, the client sends us the full link so we can put it in the message – use a password-protected link when that matters. Free tier: 100 MB, 24-hour links.
How do I give Claude Code a file that's on another machine?
Upload it from where it is (yafl put file.pdf or drag onto yafl.dev – sending needs a free account), then hand the agent the link. Claude Code downloads it with the YAFL MCP tool and reads it from local disk. For images and screenshots specifically, here's the walkthrough.
How does an agent on a headless server log in?
Device flow (RFC 8628): the agent runs yafl login, prints a short code and a URL, and you approve it in any browser – your phone works. The agent then holds its own named API key, which you can revoke individually if that machine is ever compromised.
What happens when a YAFL link expires?
Access stops at 24 hours – the server answers with a clear expired status (machine-readable, so agents can handle it), and storage cleanup follows as a backstop. Need it gone sooner? Send it as a one-time link that burns after the first download, or revoke it early with delete_file.
Can I password-protect a share link?
Yes – add a password at upload (upload_file with password, or in the web UI). It derives a second key layer client-side; the server never sees the password either. The recipient needs the link and the password.
Do I have to wait for the upload to finish to get the share link?
On the web uploader, no – the share link and the ready-to-run agent command appear the moment your file finishes encrypting, while the bytes are still uploading. Copy it and file it away right away; the link simply goes live once the upload completes (open it too early and it reports as not-ready). The MCP and CLI tools (upload_file, yafl put) hand back the link once the upload lands, since each call returns a finished result.
Is YAFL free?
The free tier is 100 MB per file with 24-hour expiry, MCP + CLI + web included. Larger files and custom expiry are planned as paid features.
Install: npx -y @yafldev/mcp with
YAFL_API_KEY set, or the one-liner
curl -fsSL https://yafl.dev/install.sh | sh.