Run a Local Linkup Session
Prerequisites
Section titled “Prerequisites”Installing the CLI
Section titled “Installing the CLI”With the install script (recommended)
Section titled “With the install script (recommended)”curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/mentimeter/linkup/refs/heads/main/linkup-cli/install.sh | bash
# Or to install a pre-release version (beta)
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/mentimeter/linkup/refs/heads/main/linkup-cli/install.sh | bash -s -- --channel betaWith Homebrew
Section titled “With Homebrew”brew tap mentimeter/mentimeterbrew install linkupBasic workflow
Section titled “Basic workflow”linkup start # Start Linkup and get your unique session namelinkup status # See all running sessions and which services are healthylinkup route local web # Route the `web` service to your local dev serverlinkup route remote web # Route the `web` service back to the remote serverlinkup stop # Stop your session and clean uplinkup start
Section titled “linkup start”linkup start does several things in order:
- Starts the local server (a reverse proxy that runs in the background on your machine)
- Uploads your session configuration to the Cloudflare worker
- Starts a Cloudflare tunnel so remote services can reach your local server
- Prints a table of your session name and domain URLs
- Prints a table of your session name and domain URLs
Linkup re-uses your session name across restarts, so your URLs stay stable. A new name is only generated on the very first run.
Environment files
Section titled “Environment files”For each service that has a directory field in your config, Linkup looks for
.env.*.linkup files in that directory and appends their contents into the
corresponding .env.* file (e.g. .env.development.linkup →
.env.development). Your services use these files to point at your Linkup
domain. The added block is clearly delimited and is reverted by linkup stop.
Start modes
Section titled “Start modes”See Managing Sessions for a full comparison of session types.
linkup route
Section titled “linkup route”linkup route changes which URL Linkup routes traffic for a named service to:
either the local or remote URL defined in your config. The change takes
effect immediately, with Linkup pushing the updated state to the local server
(and, for tunneled sessions, on to the Cloudflare worker).
linkup route local web # Route `web` to http://localhost:3000 (or whatever local is set to)linkup route remote web # Route `web` back to https://web-dev.hosting-provider.comlinkup route local --all # Switch every service to local at oncelinkup route remote --all # Switch every service to remote at oncelinkup status
Section titled “linkup status”Shows a session table (all running sessions) and, for the target session, the live health of every service, checked in parallel as you watch.
linkup status # Inspect the main sessionlinkup status --session my-feature # Inspect a specific sessionlinkup status --json # Machine-readable outputThe service table shows each service’s name, whether it is currently routing to
local or remote, and whether its health endpoint is responding.
linkup stop
Section titled “linkup stop”Stops the local server and the Cloudflare tunnel. Also reverts the env file
changes that linkup start made: the Linkup block is removed from each .env.*
file, restoring the files to their original state.
See Managing Sessions for details.