Install guide

Install Vyre on your server and your Mac.

Every step, in the order you run them.

Vyre isn't on npm yet, and we haven't signed the Mac app. For now the server and the Mac both install from one tarball on vyre.run, and the installer checks it against a published SHA-256. Vyre needs a Linux server today. A setup that runs on one Mac is coming.

00

What you need

  • A Linux server you can ssh into, with sudo. If it has no Docker, the installer adds it.
  • A Mac with Node 22.5 or newer (node --version).
  • A Claude Pro or Max plan, or an Anthropic API key.
  • A Tailscale account. The free plan works.
01

The server

From your Mac, ssh to the server and run the install line.

ssh <you>@<server>
curl -fsSL https://vyre.run/install.sh | sh

The installer asks before it installs Docker. It sets up the stack in /srv/vyre, installs the vyre command to /usr/local/bin/vyre, builds the image from vyre.run/box/vyre.tgz after checking its checksum, and starts two containers: tailscale and vyre. The first build takes a few minutes.

If /srv/vyre already has a stack in it, the installer keeps its /srv/vyre/.env. To start clean, run curl -fsSL https://vyre.run/install.sh | sh -s -- --uninstall, then the install line again. Your data stays unless you add --purge.

At the end, vyre up prints a setup link. You're on ssh, so it also prints the tunnel command you need to open it.

Output of vyre up
  Open this link to set up Vyre (it works once, for an hour):

    http://127.0.0.1:7300/onboard?t=...

  This server is headless. On your own computer, run this first, then open the link there:
    ssh -N -L 7300:127.0.0.1:7300 <you>@<server>

If your account isn't in the docker group, put sudo in front of each vyre command on the server.

02

Setup, in your Mac's browser

  1. In a second Terminal tab on your Mac, run the ssh -N -L 7300:... command and leave it running.
  2. Open the http://127.0.0.1:7300/onboard?t=... link in your Mac's browser. It works once, for an hour. If it has expired, run vyre up on the server to get a new one.
  3. You. Your name, like alex, and a name for your assistant.
  4. Claude Code. Sign in with your subscription or paste an API key. The page runs claude setup-token for you and shows Anthropic's sign-in link. Vyre stores the result in the vault.
  5. Tailscale. Press Connect. Tailscale's sign-in page opens. Sign in, and the setup page waits until your server shows up on your tailnet.
  6. Your address. Vyre gets a certificate for the server's tailnet name, https://vyre.<your-tailnet>.ts.net. The first time, Tailscale needs HTTPS turned on for your tailnet: press Turn on HTTPS, flip the switch on the page that opens, then press Check again. The page then moves to your new address and the 127.0.0.1:7300 link stops working. You can close the ssh tunnel now.
  7. You can skip Your history and Your devices for now and finish them later in Settings.

Only your own devices on your tailnet can open your address. Install Tailscale on your Mac and your phone (tailscale.com/download) and sign in with the same account.

03

The Mac

Install the CLI from the same tarball the server uses, then run vyre up.

npm i -g https://vyre.run/box/vyre.tgz
vyre up

vyre up starts Vyre's daemon on this Mac and looks for your server on your tailnet, so sign the Mac in to Tailscale first. When it asks where Vyre should run, pick 3, I already set up a box (a box is what the CLI calls your server), and give it your address, https://vyre.<your-tailnet>.ts.net. It then asks the server to pair with this Mac and prints a code.

Output of vyre up
  Approve this Mac in your Deck: it names this Mac (alex-mac) and asks for your passkey. Code: 123-456
  vyre link shows when it is done.

Approve the Mac from the Deck on your phone, or on another computer on your tailnet. Type the code into the pairing card on Now and confirm with your passkey. The Deck open on the Mac you're pairing can't approve that same Mac, and neither can vyre link approve on the server. Run vyre link on the Mac to see when it's paired.

The install is about 480 MB. Most of that is an optional local model that lets search match by meaning. Without it, search matches keywords.

To use Vyre's tools inside Claude Code on the Mac, start Claude like this.

claude --plugin-dir "$(npm root -g)/vyre/harness"
04

The Capsule

The Capsule comes with the CLI from step 03. Open it with this command.

vyre capsule

The first time, it builds the Capsule on your Mac, which takes under a minute. If it says the Command Line Tools are missing, run xcode-select --install, then vyre capsule again.

Option-Space opens the Capsule from any app, with no extra permission. You can switch to Control pressed twice from the menu bar icon. macOS then asks for Input Monitoring, which it needs to see that key. Contacts access is optional and adds people to the results.

!

Known gaps

What works today

  • The server install. The install line adds Docker if you agree, checks each file against a published SHA-256, builds the image and prints the setup link. We tested it end to end on a fresh Linux server.
  • Setup in the browser. The one-time link over the ssh -L tunnel, and the name, Claude and Tailscale steps.
  • The Mac CLI and Claude Code plugin. npm install -g from the tarball, vyre up, and Vyre's tools inside Claude Code.
  • The Capsule. vyre capsule builds it on your Mac. Option-Space opens it, or Control twice if you switch.
  • Finding the server. vyre up on the Mac finds the server on your tailnet, or takes its address.

We haven't yet checked the Tailscale sign-in, the certificate for your address or pairing on a real server. They pass in tests against a simulated tailnet.

What's coming

  • npm. npm install -g vyre works once the package is published. Until then, use the tarball URL.
  • A Mac-only setup. Today Vyre needs a Linux server. A setup that runs on one Mac, with no server, is coming.
  • A published image. Today each server builds its own image from the tarball, which takes a few minutes. vyre update rebuilds it.
  • A signed, notarized Mac app to download. Until then the Capsule is built on your Mac by vyre capsule.
  • A vyre.run name. Your address is your tailnet name today. A <you>.vyre.run name needs a hosted name directory. We've designed it (ADR 0002) but not built it.
  • Pairing with only a Mac. You approve a new Mac from the Deck on another device, like your phone. If the Mac is your only device, you can't pair it yet.
  • Updates. Nothing updates itself. On the server, vyre update. On the Mac, run the npm i -g line again.
?

If something goes wrong

  • If the link says it expired or was used, run vyre up on the server for a new one.
  • If the page won't load, check that the ssh -N -L command is still running and that you opened 127.0.0.1:7300, not localhost:7300.
  • To see what the server is doing, run vyre status, vyre logs or docker compose -p vyre ps there.
  • To start over on the server and keep your data, run curl -fsSL https://vyre.run/install.sh | sh -s -- --uninstall, then the install line again. Add --purge to delete the vault, sign-ins and projects as well.