Configure Tai Link and connect a remote machine to your Yao Agents instance using a Server Key. ## Before you start - Tai Link is [installed](/docs/en-us/tai-link/installation) on the remote machine. - A running Yao Engine server (Yao v1.0.0-rc10+) that the remote machine can reach over the network. ## Step 1 — Create a Server Key If you already have a Server Key, you can reuse it — a single key works for multiple nodes simultaneously. Otherwise, create a new one: In Yao Engine, click **Open Terminal** at the bottom of the application window.  Run: ```bash yao server-key create --name "my-node" ``` Output: ``` Server key created successfully Key ID: sk-a1b2c3d4e5f6 Name: my-node Key: yao-sk:64-char-hex-string... ⚠ Save this key now. It will not be shown again. ``` Copy the full key (`yao-sk:...`). You'll need it in Step 2. ## Step 2 — Write the config file Create `config.yml` on the remote machine: **macOS / Linux:** ```yaml yao: server: "<YOUR_YAO_SERVER>" node_id: "my-node" display_name: "Office Server" server_key: "yao-sk:your-key-here" data: /path/to/your/data host_exec: only: true full_access: true log: level: info ``` **Windows:** ```yaml yao: server: "<YOUR_YAO_SERVER>" node_id: "my-node" display_name: "Office Server" server_key: "yao-sk:your-key-here" data: "C:\\TaiData" host_exec: only: true full_access: true log: level: info file: logs/tai.log ``` | Field | Description | |-------|-------------| | `yao.server` | Yao Agents server address. Found on the Yao Engine welcome page (same as client login address). | | `yao.node_id` | Unique identifier for this node. Must be different across all connected machines. | | `yao.display_name` | Friendly name shown in the Yao Agents UI. | | `yao.server_key` | The Server Key created in Step 1. | | `data` | Workspace storage directory. Agents read and write files here. On Windows, use double backslashes (`\\`) for paths. | | `host_exec.only` | Run in host-execution mode — agents execute commands directly on this machine instead of inside Docker containers. | | `host_exec.full_access` | Allow unrestricted command execution (no whitelist or path sandbox). | ## Step 3 — Start Tai Link ```bash tai server --config config.yml ``` You should see output like: ``` level=INFO msg="logger initialized" level=info format=text file=logs/tai.log level=INFO msg="tai server" module=server version=1.8.6 ... level=INFO msg="tai server starting" module=server grpc=[127.0.0.1:0] ... ``` Tai Link authenticates automatically using the Server Key — no browser login needed. The device appears in your Yao Agents UI within a few seconds. ## Step 4 — Confirm in Yao Agents Click **Computers** in the top navigation bar to open the Computers panel. Your new device should appear as **Running**.  When creating a workspace, you can now select this node as the execution environment. ## Manage Server Keys List all keys: ```bash yao server-key list ``` Revoke a key: ```bash yao server-key revoke sk-a1b2c3d4e5f6 ``` ## Troubleshooting **Device doesn't appear in the Tai Link panel.** Check that the remote machine can reach the Yao server. Verify no firewall blocks outbound connections. Look at the Tai Link terminal for error messages. **Device shows "Offline" even though Tai Link is running.** The tunnel may have disconnected. Tai Link reconnects automatically with exponential backoff. Check network connectivity and wait a moment. ## What's next - [Device management](/docs/en-us/tai-link/device-management) — rename, organize, and monitor devices - [Remote desktop](/docs/en-us/tai-link/remote-desktop) — watch agents work in real time - [Tunnel mode](/docs/en-us/tai-link/tunnel-mode) — how NAT traversal works behind the scenes