Skip to main content

Diagnostic Tool

Before diving into specific issues, run the built-in diagnostic:
This checks Python/Node versions, dependencies, port availability, LLM connectivity, BLE adapters, and more. Fix any items marked with first.

Common Issues

command not found: feral

The feral binary is not on your PATH.
The installer creates a virtual environment at ~/.feral-env. Activate it:
To make this permanent, add the line to your shell profile:

No LLM Key Configured

Run the setup wizard to choose a provider and enter your API key:
For quick configuration without the wizard:
Ollama is auto-detected on localhost:11434 and requires no API key. It’s the fastest way to get running.

Port 9090 Already in Use

Another process is occupying the brain’s default port.

WebSocket Connection Refused

The dashboard or a client can’t connect to the brain. Checklist:
  1. Is the brain running? → feral status
  2. Correct port? → Default is 9090, check --port flag or FERAL_BRAIN_PORT
  3. Firewall blocking? → Allow localhost:9090 in your firewall
  4. Docker networking? → Use host.docker.internal instead of localhost from containers

Pair URL works on Mac but not on phone (LAN)

Symptom: QR scans to http://<lan-ip>:9090/pair?... but phone shows connection failed. Most common fixes:
  1. Ensure FERAL is bound on all interfaces:
  1. Regenerate the pairing link in Devices -> Pair new device.
  2. Confirm phone and Mac are on the same network and WiFi does not block client-to-client traffic (AP isolation).

Anywhere mode selected but pairing still fails

Symptom: Pairing returns remote-mode errors (no public URL / Mode C unavailable). Run:
If needed, complete Tailscale login first:
To revert:

Playwright Chromium Missing

The computer-use features (browser automation, screen capture) depend on Playwright. Install the browser:
If you don’t need computer-use features, you can skip the Playwright install — the brain boots cleanly without it; the affected skills will report Browser unavailable until Playwright is present. Earlier docs claimed a FERAL_COMPUTER_USE env flag, but that variable was never wired into the code. The supported way to keep computer-use cold is to set autonomy mode to strict from the WebUI Settings → Autonomy picker — every action then needs explicit approval before it runs.

pip Install Failures

Symptom: Dependency resolution errors or build failures during install.
1

Upgrade pip

2

Use the LLM extras

3

Install system dependencies (Linux)

Some packages need system libraries:
4

Try a fresh virtual environment

BLE Adapter Not Found

  • macOS: BLE is built-in. Grant Bluetooth permission to your terminal app in System Settings → Privacy & Security → Bluetooth.
  • Linux: Install BlueZ: sudo apt install bluez. Ensure the adapter is up: sudo hciconfig hci0 up.
  • Docker: BLE is not available in Docker containers. Use a native install for hardware features.

Memory Database Locked

Another FERAL process is holding the SQLite lock. Stop all instances and retry:
If the issue persists, the database file may be corrupted:

Voice Not Activating

Checklist:
  1. Voice enabled? → FERAL_VOICE_ENABLED=true
  2. Microphone permission granted to terminal?
  3. Wake word set? → Default is "hey feral"
  4. Audio input device correct? → FERAL_AUDIO_INPUT=default
Test audio input:

Still Stuck?

If none of the above resolves your issue:
  1. Run feral doctor and copy the full output
  2. Check logs at ~/.feral/logs/brain.log
  3. Open an issue on GitHub with the doctor output and relevant logs