Documentation Index
Fetch the complete documentation index at: https://docs.feral.sh/llms.txt
Use this file to discover all available pages before exploring further.
Pairing & Access
FERAL pairing depends on access mode. If mode and network are wrong, QR scans still fail.Modes
| Mode | Setup label | Pair URL shape | Typical use |
|---|---|---|---|
local | Same WiFi | http://<lan-ip>:9090/pair?t=... | Phone and brain on same network |
remote | Anywhere | https://<tailnet-host>/pair?t=... | Phone outside your LAN |
localhost | This Mac only | no pair URL emitted | Skip pairing for now |
LAN flow (Same WiFi)
- In setup, select Same WiFi.
- Go to
Devices->Pair new device->Web phone. - Click
Generate one-time link. - Scan QR on phone.
- If PIN is required, type the PIN shown on the Mac.
- Tap
Pair this deviceon phone.
Anywhere flow (Remote / Tailscale Funnel)
Current behavior: setup attempts tunnel activation automatically when you pickAnywhere.
If that step fails, use the CLI fallback below (or use Settings -> Access to retry).
- In setup, select Anywhere.
- If setup fails to bring tunnel up, run:
- If prompted, complete Tailscale login (
tailscale up) and Funnel enable steps. - Regenerate pairing link from
Devicesand scan from phone.
Pair modal tabs
- Web phone: default browser-based phone pairing flow.
- Daemon token: token for SDK/daemon node registration.
- Native app QR: compatibility QR path for native app flows.
- Bluetooth: browser BLE scan path.
Common errors and fixes
| Error symptom | Likely cause | Action |
|---|---|---|
Mode B (localhost) does not expose pairing | Mode is localhost | Rerun feral setup and choose Same WiFi or Anywhere |
LAN IP not detected | Host has no active LAN address | Connect to network and retry |
Mode C (remote) ... no public URL | Remote mode selected but tunnel not enabled | feral access remote-up |
QR opens /pair but phone cannot connect | Brain bound to loopback or WiFi isolation | restart with FERAL_HOST=0.0.0.0; test another network |
| Wrong PIN / expired token | Old token or PIN retries exhausted | Regenerate one-time link |
