Synopsis
feral CLI is the primary interface for managing the FERAL brain, dashboard, hardware, and development tools.
Commands
feral start
Start the brain, dashboard, and voice pipeline.
| Option | Default | Description |
|---|---|---|
--no-dashboard | — | Start brain only, skip the web UI |
--no-voice | — | Disable voice pipeline |
--port <n> | 9090 | Brain port |
--dashboard-port <n> | 3000 | Dashboard port |
--log-level <level> | info | debug, info, warn, error |
--detach | — | Run in background (daemonize) |
feral stop
Gracefully stop all running FERAL processes.
SIGTERM to the brain, dashboard, and any voice/hardware processes. Returns exit code 0 on success.
feral serve
Start only the brain API server (no dashboard, no REPL).
| Option | Default | Description |
|---|---|---|
--port <n> | 9090 | API port |
--host <addr> | 0.0.0.0 | Bind address |
--workers <n> | 1 | Number of uvicorn workers |
feral setup
Run the interactive setup wizard.
feral status
Show the current state of all FERAL components.
--json for machine-readable output:
feral doctor
Run diagnostic checks and report issues.
feral doctor checks:
- Python and Node versions
- All pip/npm dependencies
- Port availability
- LLM provider connectivity
- BLE adapter presence
- Playwright browser (for computer-use)
- Credential vault integrity
- Memory database access
feral demo
Run a pre-built demo scenario.
| Scenario | Description |
|---|---|
morning | Simulated morning routine with health briefing |
developer | Developer flow with screen context and proactive help |
mesh | Multi-device mesh with phone, wristband, glasses |
twin | Digital twin Q&A session |
feral hardware
Manage hardware devices.
| Subcommand | Description |
|---|---|
scan | Scan for nearby BLE devices |
scan --type <type> | Scan for specific type (wristband, glasses) |
list | List all connected devices |
pair <device> | Pair a device by name or ID |
unpair <device> | Unpair a device |
Global Options
| Option | Description |
|---|---|
--version | Print version and exit |
--help | Show help for any command |
--config <path> | Use a specific config file |
--quiet | Suppress non-error output |
--verbose | Increase output verbosity |
Exit Codes
| Code | Meaning |
|---|---|
0 | Success |
1 | General error |
2 | Invalid arguments or usage |
3 | Configuration error (missing key, invalid file) |
4 | Port already in use |
5 | LLM provider unreachable |
6 | Hardware error (BLE adapter missing, device not found) |
130 | Interrupted by Ctrl+C |
