Hosted setup

ushr login takes a fresh host to a running agent on the hosted control plane. Run it on the runner host.

ushr login

What ushr login does

  • It writes a default agent config to ~/.config/ushr/agent.yaml if none exists. macOS hosts get the Tart driver. Linux hosts get the Docker driver.
  • It checks the driver prerequisites and offers to install what is missing. Examples: Tart and a macOS runner image, or Podman.
  • It opens a browser page on ushr.io and prints a confirmation code. Approve only if the page shows the same code. On a headless host, open the URL on any other device.
  • It writes the agent token to credentials.yaml next to agent.yaml.
  • For each enrolled org or repo with no GitHub App key on this host, it prints a link to connect GitHub. You can open that link from any device. Then it asks you to install the new App on GitHub.
  • It installs and starts the ushr-agent service.

At the end, the CLI prints the runs-on labels for this host and a link to the dashboard.

Flags

--control-planeControl plane base URL. Default https://cp.ushr.io.
--webWeb app base URL for browser approval. Default https://ushr.io.
--configAgent config path. Default ~/.config/ushr/agent.yaml.
--key-dirDirectory for GitHub App private keys. Default ~/.secrets.
-yAnswer yes to prompts.

Resume or change access

Run ushr login again to resume an interrupted setup. If the host is already enrolled, the CLI asks if you want to change its GitHub access.

Each host runs its own GitHub App. The App key stays on that host. Hosts that already serve a scope keep their own App.

Service logs

# macOS
tail -f ~/Library/Logs/ushr/agent.log

# Linux
journalctl --user -u ushr-agent -f

next Target your workflows →