> ## Documentation Index
> Fetch the complete documentation index at: https://docs.traycer.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Remote hosts

> Add a host on another machine and make it your active host.

export const FeatureVideo = ({src, label}) => {
  const videoRef = React.useRef(null);
  React.useEffect(() => {
    const video = videoRef.current;
    if (!video || typeof IntersectionObserver === "undefined") {
      return undefined;
    }
    const reduceMotion = typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
    if (reduceMotion) {
      return undefined;
    }
    let pausingOffScreen = false;
    let pausedByReader = false;
    const onPause = () => {
      if (pausingOffScreen) {
        pausingOffScreen = false;
        return;
      }
      pausedByReader = true;
    };
    const onPlay = () => {
      pausedByReader = false;
    };
    video.addEventListener("pause", onPause);
    video.addEventListener("play", onPlay);
    const observer = new IntersectionObserver(entries => {
      for (const entry of entries) {
        if (entry.isIntersecting) {
          if (!pausedByReader) {
            video.play().catch(() => {});
          }
        } else if (!video.paused) {
          pausingOffScreen = true;
          video.pause();
        }
      }
    }, {
      threshold: 0.25
    });
    observer.observe(video);
    return () => {
      observer.disconnect();
      video.removeEventListener("pause", onPause);
      video.removeEventListener("play", onPlay);
    };
  }, []);
  return <video ref={videoRef} className="w-full aspect-video rounded-xl" controls loop muted playsInline preload="metadata" aria-label={label}>
      <source src={src} type="video/mp4" />
      Unable to load video.
    </video>;
};

<FeatureVideo src="https://assets.traycer.ai/docs/videos/remote-host-add.mp4" label="Connect and activate a remote host" />

A host on another machine runs agents and works with files on that machine. To add one, open **Settings**, open the host picker, and choose **Add host…**.

## Add A Host

The **Add host** dialog lists the commands to run on the other machine:

<Steps>
  <Step title="Install the Traycer CLI">
    ```bash theme={null}
    npm install -g @traycerai/cli
    ```

    The npm package needs Node.js 22.13 or newer. On macOS and Linux you can use Homebrew instead, which needs no Node.js:

    ```bash theme={null}
    brew install traycerai/traycer/traycer
    ```
  </Step>

  <Step title="Sign in">
    ```bash theme={null}
    traycer login
    ```

    Open the link on any device, enter the code, and approve sign-in.
  </Step>

  <Step title="Install and start the host">
    ```bash theme={null}
    traycer host ensure
    ```

    This installs, registers and starts the host. It is safe to run again.
  </Step>
</Steps>

The dialog notices the host when it joins your account:

| Card | Meaning |
| - | - |
| **Host connected** | "It registered itself and is ready to run agents." Choose **Set up host** to open its settings. |
| **Host registered** | The host is in your account, but this window has no live connection to it. You can still manage it from Settings. |

On Linux, the host runs as a systemd user service. If `traycer host ensure` can't register it, run `traycer host doctor` on that machine, or see [Doctor](/reference/troubleshooting#doctor).

## Make It The Active Host

On the host's **Overview**, click **Activate**. The button becomes an **Active** tag, and new work starts on that host by default in every window.

Tabs that are already open stay on the host where they started. To continue a Chat-interface agent on another host, clone it; terminals and Terminal-interface agents can't move. See [Tabs and their host](/concepts/hosts#tabs-and-their-host).

The host's health shows in its Overview header and in the host picker. See [Overview](/settings/host).

## Remove A Host

To take a host off your account, open its **Overview**, go to **Installation**, and use **Remove from account** in the **Danger zone**. Nothing on that machine is uninstalled. See [Danger Zone](/settings/host#danger-zone).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.