tesser daemon runs a small proxy on your laptop. http://localhost:3000
shows whichever box you have selected, and switching boxes does not change the
address, so bookmarks, cookies, and OAuth callbacks keep working as you move
between branches.
Keep the daemon running in a spare terminal. If port 3000 is already in use,
tesser daemon --port 3300 moves the proxy there, and tesser dev will tell
you which port to open.
Switching between boxes
The firsttesser dev selects its box. After that, you choose what
localhost:3000 shows in one of three ways:
- The panel in the bottom-right corner of every page served through the proxy. It lists your boxes, and clicking one switches to it.
- The widget page at
http://localhost:4100, which is the same list outside of any page. tesser use <box_id>, from a terminal or a script.
Two branches side by side
Every box also has its own address, whether or not it is selected:*.localhost to your own machine without any configuration,
so you can open two tabs on two box ids and compare branches directly.
Other ports
Every port a service declares in its manifest is also available on your laptop. Withports = [3000, 9229], localhost:9229 reaches the selected
box’s port 9229, and <box_id>.localhost:9229 reaches that port on a specific
box. When two boxes both declare port 8080, they share a single
localhost:8080 listener on the laptop and are told apart by the host name.
The selected box’s dependencies are mirrored on the laptop as well. If its
manifest says 5001 = "api", then localhost:5001 on your laptop reaches
the same api instance the box reaches, so browser code that calls
localhost:5001 behaves the same as server code on the box. See
Wiring services together.
Adding a local server to the list
A server running on your laptop can appear in the switcher alongside the boxes:localhost:3000 show the server on your local port 3001.
Over Tailscale
The daemon answers requests from your own machine and from Tailscale peers, so a phone or a second laptop on your tailnet can open the proxy’s address and see the same selection. It refuses requests from the rest of your LAN unless you start it with--allow-lan.