Connect
Connect your website or your assistant.
Put a file request on your own website, or let an AI assistant send files for you. Either way the files are encrypted before they leave the device.
Your website
On WordPress, Wix, Shopify, Squarespace, Webflow or any other site: the form inside your page, or a button that opens it. Only the websites you list can show the form.
- Make a file requestUnder Requests, with a checklist of what to send if you like.
- List your websiteOpen the request, press Add to your website and add your site's address.
- Paste the codePick your site builder: Share shows its steps, with the code or the link to paste. The form sizes itself to fit.
AI assistants and code
Connect your assistant once and it can make upload links, email links, show who downloaded what and set up file requests. Assistants that work on your computer go further: “send this file to Daniel” just happens, straight from disk. Either way the file is encrypted before it leaves your machine. The assistant never sees the content or the key.
The connector address below needs Studio or above. The command-line tool and its local connector for assistants on your computer work on every plan, Free included, within your plan's limits.
Claude Desktop
- Download the file below and double-click it; Claude Desktop asks to install Share by DeltaBreen.
- Say “log in to Share”, then approve in the browser once.
- Then say “send ~/Documents/contract.pdf to Daniel”. It is encrypted here and emailed.
The app runs the tool on your computer with its own Node; nothing else to install.
Claude (web)
- Settings → Connectors → Add custom connector.
- Paste the address above and name it Share.
- Sign in with your email code and approve.
No file access from the web, so Claude gives you a one-time upload link to drop the file on.
ChatGPT
- Settings → Connectors → Create (developer mode on).
- Paste the address, with authentication set to OAuth.
- Sign in and approve.
ChatGPT cannot run anything on your computer, so it gives you a one-time upload link to drop the file on.
Claude Code
Then say “log in to Share” once and approve in the browser. Claude Code encrypts files on your computer and sends them, on every plan, Free included.
Only the online connection, on Studio and above:
Then type /mcp in a session to sign in. The first time you say “send contract.pdf to Daniel”, Claude Code fetches the command-line tool and signs it in through the connection.
Codex CLI
Then say “log in to Share” once. Like Claude Code, it encrypts and sends files from your computer, on every plan, Free included.
Only the online connection, on Studio and above:
Sign in when Codex asks. It runs the command-line tool itself to send files.
Cursor
The first button installs the tool on your computer, which sends files from your disk on every plan; say “log in to Share” once. The second adds the online connection alone, on Studio and above.
VS Code
For Copilot agent mode. The first button installs the tool on your computer for sending files from disk, on every plan; the second adds the online connection alone, on Studio and above.
Antigravity
Agent panel → … → MCP Servers → Configure, then add:
{
"mcpServers": {
"share": {
"command": "npx",
"args": [
"-y",
"@deltabreen/share",
"mcp"
]
}
}
}Say “log in to Share” once. Its agent can also run the command-line tool directly.
Anything else
Any MCP client that speaks Streamable HTTP and OAuth 2.1 with dynamic client registration works with the address above; any client that launches local servers works with the Antigravity config. For scripts, use an API key from Settings, API keys and AI assistants against /api/v1.
Streamable HTTP with OAuth 2.1. Clients discover everything else from https://share.deltabreen.eu/.well-known/oauth-authorization-server.
How it works on your computer: Claude Desktop, Claude Code, Codex, Cursor, VS Code
Every plan, Free included. Sign the tool in once with npx @deltabreen/share login, or let the assistant do it; the connector address above is not needed for this.
These assistants can run commands where your files are, so “send contract.pdf to Daniel” is the whole job: the tool on your computer, signed in once, encrypts the file on your machine, uploads it and emails the link. With the online connection, on Studio and above, the assistant signs the tool in for you. No page to open and no file to pick. Under the hood it runs:
npx @deltabreen/share send ./contract.pdf --to daniel@firm.com --one-time --expires 3
The same goes for a password or a token. Say “send Daniel the database password, only him” and the assistant asks you to put it on its own in a file called secret.txt rather than typing it into the chat. It then runs this, which encrypts the value on your machine, emails Daniel a link only he can open, and deletes the file. The assistant never reads it:
npx @deltabreen/share secret --file secret.txt --rm --to daniel@firm.com --only-named
The delete is guarded: the tool only removes a small, plain, freshly written .txt note. An .env, key, certificate, sops, age or password-manager file is never deleted, whatever the assistant asks, and the assistant is told so. When it is not certain a file is a throwaway, it sends without deleting and asks you what to do with the file.
When the value already lives somewhere (a secrets manager, a config file), the assistant pipes it straight in instead, with the same result:
<command that prints the value> | npx @deltabreen/share secret --stdin --to daniel@firm.com --only-named
Needs Node 18.3 or newer, which these tools already have. Using it from a script instead? Set SHARE_API_KEY to a key from Settings, API keys and AI assistants; --json gives machine-readable output.
How it works: what your assistant can do and see
Receiving files, and how the assistant decrypts them
The assistant can also collect files. Files people send to your file requests are encrypted for your workspace, so the assistant can see one arrived (who and when) but never its name or contents. To save one to disk it asks you how you want to unlock it, because your encryption password must never be typed into the chat. Three ways, safest first:
| Way | What you do | How secure |
|---|---|---|
| In your browser | Open your inbox, enter your encryption password on the page, and click Download. Nothing to type to the assistant. | Safest. The password stays in the browser and is never stored. |
| Run a command | The assistant gives you npx @deltabreen/share receive …; you run it and enter your encryption password at a hidden prompt. | Safest. The password is a hidden prompt, not part of the command, so it never lands in your shell history and is stored nowhere. |
| Set it in the config | Add SHARE_ENCRYPTION_PASSWORD (your encryption password) to the connector's environment once; then the assistant decrypts and saves the file for you, in the chat. | Convenient, weaker. The password then sits in a config file on that machine, so anyone who can read it (or its backups) can open your inbox. Use it only on a machine you alone control. |
Either safest way, and the config way, keep the password out of the conversation: the assistant decrypts the file on your machine and never sees the password or the contents.
What happens when you connect
- Your client registers itself with us and opens a consent page in your browser.
- You sign in with a one-time email code (no password) and see exactly what is being asked for: shares, their activity, email, upload links, inboxes.
- You approve. The client gets a token for your account; you can disconnect it any time from Settings, API keys and AI assistants.
What your assistant sees
An AI assistant is another party. Its provider processes what it reads. This is exactly what reaches the model, and what reaches us, in each case.
| You say | The model sees | Our servers see | Who can open it |
|---|---|---|---|
| “Send contract.pdf to Dan” | File name, size, result | The encrypted file only | Dan, with the link |
| “Send Dan the DB password” (you put it in secret.txt) | Nothing: the value goes from the file into the tool, and the file is deleted | The encrypted secret only | Dan, after a code sent to his email |
| “Send Dan this password: hunter2” (Claude Code, Cursor, Desktop) | The password, because you typed it to the model | The encrypted secret only | Dan, after a code sent to his email |
| “Send Dan the DB password” (ChatGPT or any chat-only assistant) | Nothing: it gives you a one-time page and you type the password there | The encrypted secret only | Dan, after a code sent to his email |
Rule of thumb: never type a secret into a chat. Put it in a file and let the assistant send it from there, or let it pipe the value from where it already lives. For a file, none of this matters: the model never touches the contents.
What it can do
| create_upload_handoff | A one-time upload link for you, when the assistant cannot reach the file. The file is encrypted in your browser, and if the assistant named a recipient your browser emails them the link. The assistant never sees the file or the key. |
| send_share_link | Email a link from your branded sender, with a note. |
| get_receipts | Who opened the link, started and finished a download, and on which browser. |
| get_delivery_status | For each person: who has opened and downloaded a share you emailed, and when. No keys and no IP addresses, so the assistant can remind whoever has not. |
| list_shares / get_share / revoke_share | What is live, with download counts and expiry. Delete a link at once. |
| extend_share | Give someone more time: move a share's expiry, with the same link and key, as far as your plan allows. |
| create_secret_handoff | For a password or token when the assistant cannot run commands (web or mobile chat): a one-time page where you type it. Your browser encrypts it and emails the link to the person named. The assistant never sees the value. |
| create_request_page / list_inbox_items | A “send me files” request for a client; see what arrived. |
| list_received / receive_file | List files people sent you, and save one to disk. It decrypts on your machine with your encryption password, which the assistant never sees (see “Receiving files” above). |
| list_signature_requests / get_signature_request / remind_signer / cancel_signature_request | Signature requests: one prepared for you to check and send (the assistant never sends it), who has signed and when, a reminder to whoever's turn it is, and cancelling one. Never the document or what anyone signed. |
| get_usage | Plan, storage and active shares. |
What it cannot do: read a file name, a file, a secret or a key. Names are encrypted, and keys live only in your browser and the link. Even a chat-only assistant never handles a secret: it hands you a page to type it into.