Send a link, a screenshot or a whole file to the computer next to you.
Two computers on the same network see each other from the menu bar, and you send text, an image or a file of up to 4 GiB across, Mac to Windows included. No server, no account, nothing leaves your network. Text lands on the clipboard, files and images in Downloads, and nothing is used until you accept it. Looking for the Mac-to-PC story specifically? Start here.
Open the same tab on both computers. That is the setup.
The widget starts behind a single button, because turning it on opens ports and — on macOS — asks for the “Local Network” permission, and a permission prompt with no explanation is an uninstall. So it explains itself first, you press Enable, and each machine announces itself on the network under its own name (the machine name, which you can rename to whatever you like).
From there the other computer appears in the list with its address, and sending is one click. That opt-in is not remembered between sessions: every time you come back to the widget you enable it again, which is the flip side of the promise below — nothing is listening while you are not there.
- Discovery is a broadcast on your own network; the transfer is machine to machine
- Both sides need the tab open — the ports close when you look away
- Devices re-announce every few seconds and drop off the list after about twelve
- Lives in the Share tab, next to Clipboard history
- On macOS, a button opens the exact System Settings pane for the permission
Discovers other Toolbox instances on your network and sends them text or images. When you enable it, macOS will ask for “Local Network” permission — it’s needed to find the other devices. Content travels unencrypted: use it only on trusted networks.
Enable network sendingA PDF, a zip, a 2 GB video. It is accepted before a single byte of it crosses.
Drag a file onto the panel or press “Choose file…” and it goes across whole, up to 4 GiB, with its bytes and its name untouched: a JPG arrives as a JPG, not as a re-encoded PNG. What the app receives from you is a path, never the contents, so the file is read from disk in 256 KiB chunks and written to disk the same way. Memory use is flat whether it is 5 MB or 4 GB.
The order matters more than the speed. Your machine name, the filename with its extension and the size travel first; the other person sees exactly that and decides. Only then does the content start moving. While it arrives it is a .wtbx-part file that is not your file yet, the SHA-256 is verified at the end, and only a match earns the real name. A cut transfer leaves nothing behind, instead of a truncated archive that opens and is quietly wrong.
- Either side can cancel; a transfer already running survives hiding the popover
- Received files land in Downloads and never overwrite: a taken name gets a number
- No answer in 90 seconds counts as a no, and the sender is told
- One file at a time. No multi-select, no folders, and no resuming a cut transfer
- Both computers need an up-to-date Toolbox: older versions refuse the newer protocol
Text goes to the clipboard. Files and images go to Downloads. None of it happens behind your back.
What arrives shows up as a card with the sender’s name and a preview, and two buttons: Copy (or Save) and Discard. Until you press one, nothing has touched your clipboard or your disk — a machine on your network can offer you something, it cannot put it anywhere. Accept a text and the next paste is it; accept an image and it is a PNG in Downloads, never overwriting a file that was already there.
Compose by typing, by dragging a file, by pressing “Choose file…”, or by pasting an image from the clipboard. The split between the two is by origin, not by type: what has a path on disk travels as a file with its bytes intact, and what you pasted travels as an image. Limits are 256 KB of text, 25 MB per image and 4 GiB per file. An incoming image is not trusted: it is really decoded, with caps on dimensions and memory so a tiny file cannot claim to be 30,000 pixels wide, and then re-encoded to PNG.
- Filenames are stripped to a plain name: no paths, no invisible characters
- A taken name becomes “name (1).png” instead of replacing anything
- Text must be valid UTF-8 or it is refused
- Files keep their real extension; a dragged JPG stays a JPG
It crosses the Mac to Windows line. It still does not match AirDrop on secrecy.
AirDrop is excellent and stops at the edge of Apple’s ecosystem: the moment one of the two machines runs Windows, it is not an option. This is the gap this widget fills — same network, either direction, no account. But the comparison has to be honest in both columns: AirDrop encrypts what it sends and this does not. Here the content crosses your local network in the clear, which is fine for the office desk with your own two machines on it and wrong for airport WiFi.
The second difference used to be scope, and it mostly is not any more: this now moves a file of up to 4 GiB as well as text and images. What is left is smaller and worth saying plainly. AirDrop takes several files and folders at once and is a system service; this takes one file at a time, no folders, and needs Toolbox open on both sides. In exchange you get two things AirDrop has no notion of: text that arrives directly on the clipboard of the other machine, and a SHA-256 check on every file that lands.
- Use it on networks you trust — your own home or office, not a café
- The shared code controls who can send to you; it does not hide the traffic
- For anything confidential, use a tool that encrypts in transit
- The full Mac-to-PC walkthrough lives on its own page
A code decides who can send to you — and says nothing about who can read it.
Leave it empty and any Toolbox on your network can offer you something (you still have to accept it). Set one — the dice button makes a readable ABC-DEF, with I, O and Q left out so nobody hears “eye” and types a 1 — and only machines carrying the same code get that far.
The check is a challenge-response, not a password sent across: the receiving side issues a fresh random nonce for every connection and the sender answers with an HMAC of the code over that nonce, compared in constant time. A wrong code is refused before a single byte of content is read, and an answer captured once is useless against the next nonce. What it does not do — and this is the part worth repeating — is encrypt the content that follows.
- One port, open only while you are looking at the widget
- Unknown connections are dropped before the handshake even starts
- Announcements from a single source are rate-limited, so nobody floods the list
- No agent tools, and agent access ships off for this widget on purpose
If you set a code, only devices with the SAME code can send to you. Note: content travels unencrypted over the local network.
It comes with Toolbox. There is nothing to install.
Send to another computer is built into Webstarted Toolbox, the app that lives in your menu bar on macOS and your system tray on Windows — so it is already there the moment you install it, in the Share tab. These are a few of its neighbors:
Questions, answered.
Does it work between a Mac and a Windows PC?
Yes — that is the point of it existing. Both machines run Webstarted Toolbox and sit on the same local network, and each one sees the other in the list by its machine name. Nothing about the transfer is platform-specific: text arrives as text, an image arrives as a PNG. There is no mobile version, so phone-to-laptop is not what this does.
Is the transfer encrypted?
No, and it would be dishonest to bury that. The content travels in the clear over your local network, which is why the widget says so on the screen where you enable it: use it on networks you trust. What the optional shared code adds is authentication — who is allowed to send to you — not secrecy. If what you are moving would hurt you in the hands of whoever else is on that WiFi, this is the wrong tool for it.
Does anything go through a server or the internet?
No. Discovery is a broadcast on your own network and the transfer is a direct connection between the two machines, on a single port they both open. There is no account, no relay, no cloud storage and nothing to sign into — which also means the two computers must genuinely be on the same network, not merely both online.
Why doesn’t the other computer show up?
Almost always one of three things. Both machines need the widget open — the ports only exist while you are looking at that tab, so you open the same tab on both. On macOS, Toolbox needs the “Local Network” permission; the widget has a button that opens exactly that pane in System Settings so you can check the box. And the network has to actually pass broadcasts: a guest network with client isolation, two different WiFi bands routed apart, a VPN capturing the traffic, or two subnets will all leave the list empty. Devices announce themselves every few seconds and drop off the list about twelve seconds after they stop.
Can I send a PDF, a zip, or any file?
Yes. Drag a file onto the panel or press “Choose file…”, and anything your machine can read goes across with its bytes and its name untouched: a PDF arrives as that PDF, a JPG arrives as a JPG, a 2 GB video arrives as that video. The ceiling is 4 GiB per file. One file at a time, though: there is no multi-select and no folders, so a folder gets zipped first or sent piece by piece.
Does the file go through the browser, or through memory?
Neither, and that is the whole design. The sender hands the app a path, not the contents, and both sides work in 256 KiB chunks straight to and from disk, so memory use stays flat whether the file is 5 MB or 4 GB. It also means the receiving machine is never holding a file it has not agreed to take: the name, the size and who is sending arrive first, and the content only starts moving after you press Accept.
How do I know the file arrived intact?
It is checked, not assumed. The sender hashes the file with SHA-256 before sending, the receiver hashes what it writes, and the two have to match. While it is arriving it is a “.wtbx-part” file that is not your file yet; it is renamed to the real name only after the hash checks out, and if anything went wrong the part file is deleted and both sides say so. That is the difference between a failed transfer and a truncated zip that opens and then is not right.
Can I resume a transfer that got cut off, or pick where files land?
No to both, and both are deliberate for now. There is no resume: on a local network a 4 GiB file is minutes, so a cut transfer is retried rather than repaired. And received files always land in Downloads, the same place images already went. You can cancel from either side at any point, and a transfer that is already running survives hiding the popover, so clicking away mid-send does not kill it.
Where does what I receive end up?
Text goes to the clipboard of the receiving machine, so the next paste is it. An image is saved to the Downloads folder as a PNG, and it never overwrites: a name already taken gets a numbered one instead, and the widget offers to reveal the file. Neither happens on its own — an incoming item shows up as a card with a preview and two buttons, and until you press Copy or Save nothing has touched your clipboard or your disk.
What is the shared code for?
It is optional, and it decides who may send to you: set one on a machine and only devices carrying the same code can deliver anything to it. Under the hood it is a challenge-response — the receiver issues a fresh random nonce per connection and the sender answers with an HMAC of the code over that nonce, compared in constant time — so a wrong code is refused before a single byte of content is read, and a reply captured once cannot be replayed later. The dice button generates a readable code like ABC-DEF, with I, O and Q left out of the alphabet so nobody mistypes them as 1 or 0 while reading it aloud.
How big can something be?
Up to 256 KB of text, 25 MB for an image and 4 GiB for a file. The receiving side does not trust what arrives: it checks the magic bytes, really decodes the image with limits on dimensions and memory so a small file cannot claim to be 30,000 pixels wide and exhaust your RAM, and then re-encodes it to PNG — the sender’s raw bytes are never passed along. The filename is stripped down to a plain name too, with no paths and no invisible characters that make a file display as something it is not.
Why does macOS ask for “Local Network” permission?
Because finding the other computer means broadcasting on your network, and macOS gates that. The prompt appears when you press Enable, not when you open the app, which is exactly why the widget starts behind a short explanation instead of asking for a permission out of nowhere. If you dismissed it, the peer list stays empty — and the widget has a button that opens System Settings → Privacy & Security → Local Network so you can turn it back on.
Does it keep a port open in the background?
No. The sockets open when you enable the network in the widget and close as soon as you look away — hiding the popover shuts them, and the enable step is not remembered between sessions, so it is always a deliberate click rather than something inherited from last week. The trade is honest: a discoverable machine is only discoverable while you are at it, and in exchange nothing is listening the rest of the day.
Can an AI agent send things from my machine?
Not today, and this widget is deliberately opted out. Toolbox ships a local MCP server that widgets can expose actions to, and this one exposes none — plus it is marked as off for agents, so if actions are ever added they start disabled and need your explicit consent. Sending data off the machine is the one capability where “on by default” is indefensible.
Is it free?
Yes. Webstarted Toolbox is a free beta, needs no account, and this comes built into the app — it is in the Share tab the moment you install it. Desktop only: macOS menu bar and Windows tray.
Get Webstarted Toolbox
Free to use. Install it on both computers and it is already in the Share tab. macOS 12+ and Windows 10+.
One icon, many small tools
This is just one of the widgets in Webstarted Toolbox. Here are the rest: