Sending a file between three devices felt like mailing it

AI 2026-10-10 · Satsuma Creative · 4 min read

Mac, Windows, iPhone on one Wi-Fi, yet sending a link meant hunting for devices. Three sentences to Claude, one typo, 25 minutes: my own file-sharing tool.

The hassle

I have three devices in front of me.

A Mac mini, a Windows desktop, and an iPhone.

All three are on the same Wi-Fi.

The problem is, whenever I want to send a link from my phone to the Mac, or a video from the Windows machine to my phone, I have to stop and think: which method this time?

Email it to myself, paste it into a messaging app, upload to the cloud and download again. They all work. They're all annoying. (AirDrop? Windows isn't in that club.)

Then I installed LocalSend on all three.

It works by calling out across the local network, "Anyone there?", and listing whoever answers.

Often, nobody answers.

I never really looked into why. All I knew was that every time I wanted to send something, I first had to check whether the other device was even there.

To send one link, I first had to spend time looking for the recipient. I put up with this for a long time.

Asking a different question

A little after midnight, I handed the whole problem to Claude, just as it was.

(Roughly: three devices on the same Wi-Fi, sending files, links, and text is a pain, LocalSend often can't find them, could you build a tool? Oh, and all three have Tailscale installed.)

That last line turned out to be the key.

Tailscale gives every device a fixed name and address, whether it's on home Wi-Fi or mobile data outside.

So Claude's proposal was simple: stop making the devices look for each other.

Run a web page on one computer and use it as a shared board. All three devices open that page in a browser. Whatever one posts, the other two see immediately.

With a fixed address, "can it find it or not" stops being a question.

Honestly, I was a little annoyed when I heard it. Something this simple, and I never thought of it?

It's called "Chuan Yixia" (Just Send It)

One Python file, about 1,200 lines, no extra packages to install. The web page is bundled into the same file.

(Claude came up with the name. I had no objections.)

Using it takes exactly one step: open the page.

  • Paste text or a link, hit Enter, and it shows up on the other devices almost instantly. Every item has a "Copy" button; links get an extra "Open."
  • Drag files in, or click "Choose file." Screenshots can be pasted directly.
  • Each device has its own name and color, so you can tell at a glance who sent what.
  • Files are stored on the host machine's drive and cleared automatically after 30 days.
  • Only devices on my own Tailscale network can connect. Other people on the same Wi-Fi can't.

Open it in Safari on the iPhone, add it to the Home Screen, and it looks just like an app.

It even works when I'm out and my phone is on mobile data. An unexpected bonus.

I typed three sentences

The first was the complaint above.

About ten minutes later, the first version was ready. Claude ran its own round of tests before handing it over (upload, download, Chinese filenames, whether data survived a restart). The original plan was to host it on the Mac mini.

Second sentence: "M1 memory is already tight, can it go on WIN?"

It said yes, and went ahead and installed it on my Windows desktop. Only one dialog popped up along the way, asking whether it could use a certain folder. I clicked Allow.

(It also added, in passing: this thing only uses about 20-some MB, so putting it on the Mac would've been fine too. Okay, then.)

Along the way it stepped into a few holes, and climbed out on its own:

  • The first version only auto-started on boot on the Mac. The Windows part was written on the spot.
  • Windows' default Chinese encoding (cp950) couldn't read the status Tailscale returned, and the program spat out a wall of errors. It read the error messages, fixed the code, and reinstalled.
  • Letting other devices connect would normally mean opening a port in Windows Firewall. Instead of touching the firewall, it had the program listen only locally and let Tailscale forward connections in.

Finally, it uploaded a 2 MB file and downloaded it again, confirmed the contents matched, and only then told me it was done.

Third sentence: "Change to store locally on the D drvie"

(Yes, I typed "drvie" instead of "drive." It understood.)

Two minutes later, everything had moved to the D drive. The two videos I'd just uploaded as a test moved too; it verified each file before deleting the originals.

From the first complaint to this point: twenty-five minutes.

I didn't write a single line of code.

What's not done yet

  • The Windows desktop has to stay on. If it sleeps, the board disappears.
  • After a reboot, someone has to log in to Windows before it starts running.
  • On the iPhone, I can't yet send things straight from another app's share menu; I have to open Chuan Yixia first and paste. Claude says it can be hooked up with Shortcuts. Not done yet.

Good enough.

And then I got thinking

This hassle had followed me for a long time.

So long that I treated it like weather: when it rains, you open an umbrella. You don't try to fix the rain.

And fixing it took twenty-five minutes and three sentences, one of them with a typo.

So what exactly had I been putting up with all this time?

Maybe laziness. Maybe I kept assuming "there must be a ready-made tool for this," so I'd install one, be unsatisfied, and go looking for the next.

Building one myself used to not be an option. Now it is.

(The problem is, now every object on my desk looks like it owes me a tool.)