Intent on remote machines

You can run the Intent background service (intentd) on a separate computer, such as a Linux server, a spare Mac, or a Windows PC, and control it from the desktop or iOS app. Your workspaces and agents are stored on that computer.

Once connected, see Multi-device support to move workspaces between computers, or Intent mobile to use the iOS app.

Check requirements

On the remote computer, install:

  • git (required)
  • Node.js with npm (required, used to run coding agents)
  • GitHub CLI (gh) (optional, connects Intent to GitHub without a manual token)

Install intentd

Use the option for your system.

macOS or Linux

curl -fsSL https://github.com/intent-hq/intentd-releases/releases/download/sitter-latest/install.sh | sh

Windows (PowerShell)

powershell -c "irm https://github.com/intent-hq/intentd-releases/releases/download/sitter-latest/install.ps1 | iex"

Homebrew

brew install intent-hq/tap/intentd
brew services start intentd

Debian or Ubuntu

sudo apt install ./intentd_amd64.deb
systemctl --user enable --now intentd

The install script asks whether intentd should start automatically when you log in. To answer yes without the prompt, set INTENTD_INSTALL_SERVICE=1. If you decline, start it manually with intentd start.

On a Linux server with no display, run this so intentd starts when the machine boots:

sudo loginctl enable-linger $USER

Allow other devices to connect

Apps connect on port 5181. At first, intentd only accepts connections from the same computer. Choose one way to open access:

  • Local or Tailscale network: set server.bindAddress to the computer’s network IP address, a list of addresses, or 0.0.0.0 for all addresses. Use this when your devices share a home or office network, or are all on the same Tailscale network. Apps connect directly to the computer, but only from devices that can reach it on that network.
  • Tunnel: set server.tunnel.enabled to true. The computer gets a permanent address starting with tc. Use this to reach the computer from anywhere, such as a phone on mobile data or a cloud server behind a firewall, without opening ports or setting up a VPN. To also block direct local network connections, set server.tunnel.only to true.

Change any setting with:

intentd settings <name> <value>

For example: intentd settings server.tunnel.enabled true

Get pairing details

On the remote computer, run:

intentd pair

You’ll see a QR code, a URL, a bearer token (a password-like key), and a TLS fingerprint (a code that identifies the computer’s security certificate).

Useful options:

  • intentd pair --png pair.png saves the QR code as an image.
  • intentd pair --rotate creates a new token and disables the old one.

If the connection listener is off, intentd pair offers to turn it on with no restart. Add --yes to accept automatically in scripts.

If the computer still accepts only local connections and no tunnel is running, pairing stops and tells you which setting to change.

Connect from an app

Desktop app

The quickest way is to open the intent:// link that intentd pairprints. The desktop app opens and fills in the URL, bearer token, and TLS fingerprint for you, so you don’t need to complete the form.

To add the computer by hand:

  1. Go to Settings → Machines → Add device.
  2. Enter the URL, bearer token, and TLS fingerprint.
  3. Open the device’s Edit panel, select Test connection, then select Connect.

iOS app

Scan the QR code from intentd pair with the app’s pairing scanner. The desktop app can also display a QR code for its current connection under Settings → Mobile → Intent Mobile → Show QR Code.

On the first connection, the app saves the computer’s fingerprint and checks it every time you reconnect.

Tips

  • Each workspace and agent belongs to one computer. If something seems missing, check which device is active in Settings → Machines.
  • To view a dev server running on the remote computer, open http://daemon.localhost:<port> in the app’s built-in browser. The desktop app forwards the port for you.
  • Treat pairing links, QR codes, and tokens like passwords. If one leaks, run intentd pair --rotate.
  • Scanning a QR code shares connection details only. Confirm separately that your device can reach the remote computer over the network.