For developers
Share localhost with the people you name.
One command turns a port on your machine into a link only the people you invite can open. They sign in from their email, use the app, and the link is gone when you press Ctrl-C or the time runs out.
- One download for macOS, Linux and Windows
- Named people only, by default
- Who signed in, in your team's log
- Ends on Ctrl-C, on time, or after 90 s away
- No account for viewers
$ houseguest share 3000 \ --invite alice@acme.com --for 2h https://k7f2.acme.houseguest.page/ (invite sent · ends in 2h · Ctrl-C ends it now) ✓ 14:02 alice@acme.com signed in ← 14:31 alice@acme.com signed out ^C Ended. The preview and its micro agent are removed.
How it works
A temporary preview, opened from your terminal.
Sign in once
The first run opens the browser for your workspace's sign-in, second step included. The command line then stays signed in for 12 hours. --workspace picks one when you belong to several.
Share a port
houseguest share 3000 starts a temporary agent and a preview at a new random address. The agent forwards that port on this computer, 127.0.0.1 or ::1, and nothing else. --path /api=8080 sends /api to a second port on the same address. --name names the preview in the console.
They sign in
Each invited person opens a single-use link from their inbox. --code also asks for a code sent to that address; --allow lets listed addresses or a whole @company.com sign in with an emailed code.
It ends
Ctrl-C, the end of --for, or the computer staying away more than 90 seconds ends the preview, removes the temporary agent, and stops every session. A brief sleep or Wi-Fi drop carries on.
Your workspace's rules
A share from the terminal is a preview like any other.
Named people
Invites by email, an allow list of addresses or a whole @company.com, and emailed codes, as the workspace sets them.
Only the ports named
The command line forwards only to the ports named in the command, on this computer: the main port, and each --path /api=8080 on the same address and sign-in. The edge keeps the share to those ports and refuses any other target, path or TCP service. Apps on several hostnames use the full agent.
An audit trail
Every share's start and end is in the workspace's activity log. Every sign-in and request is in the request log: who, when, method, hostname and path. Never query strings or bodies.
Who signed in
The command line prints each sign-in as it happens. The logs keep who signed in and when, and admins see each person's share time in Insights.
Permissions
Sharing needs permission to create previews and use Houseguest addresses: Owner, Admin and Member by default. Revoke a person or end the share from the console at any moment.
An off switch
Admins turn terminal sharing off for the whole workspace in one setting.
Compared with
Each of these is the right tool somewhere.
| A good fit when | Where Houseguest differs | |
|---|---|---|
| Quick tunnels and public share links | Webhooks, APIs and public demos, or a free share for an afternoon. Public by link unless the sharer adds a rule. | Gated by default, not by a rule the sharer writes. Viewers sign in from an emailed invite or code, with no provider account. People are added or revoked while the share is open, at the same address, and the request log shows who signed in. |
| Access proxies and zero-trust tunnels under your own zone | Standing access under your own DNS zone, run by someone with admin rights on it and on the identity setup. | One command from the person sharing, with no policy to write, and an end time on every share. |
| Mesh VPN sharing and public port exposure | Sharing a device with people already on the same network tool, or putting a port on the public internet. | A named person signs in from any browser, with nothing to install, no network to join and nothing public. |
| Editor and IDE port forwarding | Testing on your own phone or with your own team, inside your own account or organisation. | Access per named person outside your organisation, by email, with a log the team can read. |
| Throwaway public tunnels | A free public URL while the command runs, with nothing to sign up for. | Only named people get in, and workspace rules apply to every share. |
Questions
Before you ask.
Is it available now?
Yes, in early-access workspaces. It is part of the houseguest command line, the same binary that reaches SSH and other TCP services.
How do I install it?
With one line on macOS, Linux or Windows. The download details come with the early-access invitation. The installer checks the download against the published SHA256SUMS, installs it without sudo or administrator rights and adds it to your PATH. Nothing else to install.
Does the viewer need an account?
No. They open the emailed link in any browser, with a code sent to their email where the share asks for one. Nothing to install, no Houseguest account, no Google or GitHub sign-in.
Can it receive webhooks?
Not as a public endpoint. Every request needs a signed-in person, so a webhook sender is refused unless its path is listed as open for the preview. For webhook testing, a public tunnel is the better tool.
What can reach my machine?
Only signed-in viewers, and only the ports you named. The agent dials out on port 443; nothing connects in, and nothing is reachable after the share ends.
Does my dev server need changes?
Usually not. Pages and the API calls they make carry the viewer's session, and WebSockets work, so hot reload keeps working for viewers. Apps that write absolute links to localhost need relative links, as on any Houseguest address.
Can my company turn it off?
Yes. Workspace admins switch terminal sharing off in one setting, and every share follows the workspace's invite, allow-list and code rules.
What does it cost?
It is included in every workspace plan. Each plan sets how many shares a person can run at once and for how long, up to 7 days, and each share also counts as an open preview. Viewers are always free.
Show the work, not the internet.
Terminal sharing is available in Houseguest™ early access. Tell us what you share today, and with whom.
hello@houseguest.dev