Run your app’s services remotely
Start a project’s scripts on the host, reach them from another screen, and expose one on a URL when you need to.
Start a service on the host
Lyre starts the commands you configure, on the computer running the host. They are
declared as scripts in the project’s paseo.json.
- Open Project settings → Scripts for the workspace.
-
Add a script named
previewfor your frontend, enter its command, and turn on Run as service. -
If your app has a separate backend, add a service named
backend,apiorserveron a different port. Lyre starts one named companion before the selected frontend. - Save, then start the app from the workspace’s app/service control.
New services receive a port through PASEO_PORT; make your command read it,
or set a matching fixed port. See
Connect an existing app and
Start commands by app type for worked examples.
Reach it from another device
The app runs on your computer; the device connects to it. Start with both on the same trusted network, pair the device, and open the approved app. Local-network app previews are free; live app previews from outside your network need the supported remote connection and Lyre Pro. Remote development — connecting, editing, agents and starting projects — is free.
Keep the host awake and Lyre running. If it is unreachable, the device cannot start the app. See Connectivity and Test from another screen.
Expose a service on a URL
When a service starts, the host registers a route for it. Local addresses always work and follow this shape:
<script>--<branch>--<project>.localhost
For example, a script named dev in the miniweb project on
branch main is dev--miniweb.localhost. To reach it from other
machines, add a serviceProxy block under daemon in the host
config with a publicBaseUrl, and point a wildcard DNS record at the host:
*.apps.example.com → <host address>
Any reverse proxy in front of Lyre must forward the Host header unchanged,
because the host uses it to choose the service. See the service-proxy reference for the
exact config fields, forwarded headers and environment variables.
Manage scripts without a terminal
Configured scripts can be listed and controlled by name:
paseo script ls
paseo script start <name>
paseo script stop <name>
Each command reports lifecycle, service port, proxy URLs, health, exit code and the supervised terminal id. Stopping a script ends its managed terminal rather than only removing the route. An agent can do the same through the matching workspace-script tools, which require an explicit workspace id.
Security
A public service URL exposes the workspace service itself. The daemon’s password protects the daemon API and WebSocket; it does not protect a proxied development service. Use HTTPS at your reverse proxy for anything reachable outside your machine, and keep the service’s own authentication in place.
Do not expose a project’s development server publicly as a substitute for an authorized private preview. A public URL has a different access boundary. Keep credentials out of the service’s client code, and revoke or rotate anything that has been exposed.