Skip to content

Share a link

The base case is one argument:

Terminal window
s2u report.pdf

Everything below narrows that link in some way. The flags combine unless a page says otherwise.

Terminal window
s2u secret.env --password # prompts, so it stays out of your shell history
s2u brief.pdf --to alex@acme.dev # only that address, after they verify it
s2u tax-2025.pdf --private # nobody at all, including you until you sign in

--password with no value prompts you. That is deliberate: a password typed as an argument is in your shell history and in the process list.

--to restricts the share to a recipient. They prove the address before the file is served, so forwarding the link on its own does not carry access with it.

Terminal window
s2u photo.jpg --one-time # dies after a single download
s2u notes.md --max-views 5 # stops working after five
s2u brief.pdf --expires 7d # stops working after a week

--one-time is exactly one successful download, which makes it the right choice for a credential you are handing over once and then rotating. It overrides --max-views: pass both and the view cap is ignored.

Views and downloads are counted separately. --max-views limits opening the share page; downloading does not consume a view.

Terminal window
s2u "some quick text" --qr # a QR of the text itself, nothing uploaded
s2u report.pdf --qrl # upload, then a QR of the link

The distinction is worth reading twice. --qr on text encodes the text in the code, so nothing leaves the machine. --qrl uploads first and encodes the link.

Terminal window
s2u app.log --live

Streams text updates to the same link until you stop it with Ctrl-C. The person holding the link sees it change.

A text or office document can be converted on the way out, so nothing extra is installed on the receiving machine:

Terminal window
s2u get s.share2.us/7Kf9aQ2m --convert-pdf # saves notes.pdf
s2u get 7Kf9aQ2m --convert-docx # saves notes.docx

The two cannot be combined. Conversion needs the plaintext, so it is not available for an end-to-end encrypted share: fetch that with its key instead. It is also rate limited on the server, so if you hit the limit, wait rather than retrying in a loop.

Markdown is rendered, CSV shows as a table, and code is syntax highlighted. Each has a Preview/Raw toggle. Other text, such as logs, shows as raw text. Every text view has a Copy button for the raw text. Text over 10 MB gets a download card instead.

Images and PDFs preview inline. Other files get a download card.

The page follows the visitor’s system light or dark theme. The header’s sun/moon switch overrides it for that page only. That choice is not remembered.

Terminal window
s2u ls # list your shares
s2u revoke 7Kf9aQ2m # kill one immediately