A self-hosted PWA for moving images, text, links, and JSON between your devices on the same WiFi. Runs on your machine, uses your network, stores nothing in the cloud.
Node.js 22.5+. First run prompts for a 4–6 digit PIN.
Files live on your laptop. Traffic stays on your home WiFi. No cloud account, no monthly fee.
Paste on your phone, it shows up on your laptop in under a second over Server-Sent Events.
Images, links, JSON, and plain text each render as their own card. Filter, copy, or download in one tap.
Add to your phone's home screen and it feels like a native app. Dark theme, mobile-first, ~16 KB JS.
The startup banner prints a QR code of the phone URL. Scan with your phone camera — no typing 192.168.x.x.
Forgot Ztash is running? npx @jjosephgalicio/ztash --stop from any terminal frees the port.
Node.js 22.5 or newer if you don't have it.npx @jjosephgalicio/ztash. Set a 4–6 digit PIN when prompted.http://localhost:4123 is for the laptop browser; the QR (or the printed http://192.168.x.x:4123) is for your phone.Ctrl+C in the terminal stops it. Or from anywhere: npx @jjosephgalicio/ztash --stop.Httponly cookie session, constant-time compare, rate-limited login attempts.
Items stored in ~/.ztash/ztash.sqlite. Survives restarts. Delete the file to wipe everything.
MIT licensed. Audit it, fork it, customize it. The whole client is <800 lines of vanilla JS.
Nothing to deploy, nothing to pay for, nothing to go offline. Your laptop is the server.