Sharing
Private by default. Share with named accounts or expose to everyone.
Every Thing starts private at anything.emptyos.com/<id>. You can share an
eligible static Thing with named EmptyOS accounts, or expose it anonymously at
public.anything.emptyos.com/<id>.
Share with a named account
$ empty share olive --with alice@example.com
Shared olive with alice@example.com
Link: https://anything.emptyos.com/olive
This address can sign up when the link is opened
$ empty unshare olive --with alice@example.com
Unshared olive with alice@example.com
Send the printed owner-host link yourself; EmptyOS does not send mail. When
platform signup is open, the local grant lets a verified recipient sign up from
that link without a separate invitation. The grant creates a stable viewer
identity, not a computer or provisioning job. Any later computer claim follows
the ordinary capacity policy. EmptyOS then lets the recipient confirm the
account and link before opening it on the computer's restricted
shared.anything.emptyos.com origin. The computer checks its local grant on
every request. For someone signing up, the grant check sends their verified
email to the computer named by the link before the confirmation screen can be
shown; an existing account sees that screen first. Use
empty unshare olive --all to revoke everyone.
The recipient can ask their agent to save the link on their own computer:
$ empty shared add https://anything.emptyos.com/olive
Saved shared.anything.emptyos.com/olive
$ empty shared
Link: https://shared.anything.emptyos.com/olive
Saved links appear under Shared with me on Home. Only a recipient who owns a
computer can save there. Saving a link grants nothing; the sharing computer
remains the authority, and a revoked link opens a neutral not-found page until
it is removed with empty shared remove <url>.
Share when you put
$ empty put olive.jpg --as olive
Installed private static Thing olive from 1 file (777 bytes) at /home/exedev/things/olive
On anything.emptyos.com
See all Things: `empty things`
$ empty put notes.html --as ideas --public
Installed public static Thing ideas from 1 file (61 bytes) at /home/exedev/things/ideas
On anything.emptyos.com
Anyone on the internet can read it without signing in, and search engines can index it
Make it private again: `empty unexpose ideas`
See all Things: `empty things`
The first is at https://anything.emptyos.com/olive and needs sign-in. The second is at https://public.anything.emptyos.com/ideas for anyone.
Expose an existing Thing
$ empty expose olive
Thing olive is now public
Anyone on the internet can read it without signing in, and search engines can index it
Make it private again: `empty unexpose olive`
$ empty unexpose olive
Thing olive is now private
expose adds https://public.anything.emptyos.com/olive; unexpose removes it on the next request.
What can be public
- Static content only: a file or a static site. Services and repository-root static Things are refused.
- The whole exposed directory becomes anonymous. Check every file first; EmptyOS does not scan for secrets.
- File links open a page with the filename, type, size, and Download. Nothing downloads automatically, and visitors get no owner Home link. Downloads use the same sharing checks as the page.
- For direct downloads, append
?download=1to the file URL. Raw clients without explicit acceptabletext/html, and range requests, retain byte responses: text and common images may display inline; everything else, including SVG, downloads inertly. - On the public hostname, anything not exposed returns not-found. It does not reveal what exists.
What can be shared with people
- Static content only: the same eligibility boundary as public exposure. Services and repository-root static Things are refused.
- Grants match the recipient's verified, lowercase account email. Other signed-in accounts receive the same neutral page as a nonexistent route.
- Restricted static Things on one computer share the
shared.<computer-name>browser origin. Code in one shared Thing can reach another Thing granted to the same visitor, so share only content you trust. - Public Things never run on the restricted origin; the shared address sends them to the anonymous public hostname.