Run FideliOS as a persistent background service that starts automatically at login and survives terminal close.

Overview

By default, fidelios run runs in the foreground of your terminal — closing the terminal or pressing Ctrl+C stops the server. The fidelios service commands register FideliOS with your operating system’s process manager: Once installed, the server:
  • Starts automatically at login
  • Restarts automatically on crash
  • Runs independently of any terminal window

fidelios service install

Registers FideliOS with the OS process manager and starts it immediately.
fidelios service install          # release mode (default — published binary)
fidelios service install --dev    # dev mode (runs dev-runner.mjs from your repo)

Release vs Dev mode

ModeRunsAuto-Restart When Idle toggleWhen to use
release/opt/homebrew/bin/fidelios run from $HOME — the published CLINo-opNormal operation — using FideliOS as a tool
devnode <repo>/scripts/dev-runner.mjs watch from the repo rootHonored — agents in Company FideliOS can edit source without crashing their own runsDebugging FideliOS itself with agents in Company FideliOS
Switch between modes later without uninstalling:
fidelios service dev       # shortcut for `fidelios service switch dev`
fidelios service release   # shortcut for `fidelios service switch release`
fidelios service switch dev --repo ~/some-other-checkout
The CLI remembers the selected mode in ~/.fidelios/instances/default/service-mode.json so subsequent fidelios service status calls show what’s running.
Writes a launchd plist to:
~/Library/LaunchAgents/nl.fidelios.server.plist
Then loads it with launchctl load and immediately force-starts it with launchctl kickstart. RunAtLoad=true + KeepAlive=true in the plist mean the service starts automatically at login and is restarted by launchd on any exit (clean or crash). The plist also seeds PATH with the common adapter locations (~/.claude/local/bin, ~/.codex/bin, /opt/homebrew/bin, …) so agent heartbeats can resolve claude, codex, gh, git, and friends.Expected output:
✓  Plist written to ~/Library/LaunchAgents/nl.fidelios.server.plist
✓  Service registered.
✓  Service started.
◆  FideliOS service installed. It will restart automatically on crash and at login.
Onboard shortcut: fidelios onboard offers to run service install at the end of the wizard. Answer y to skip this manual step.

fidelios service uninstall

Stops and removes the background service.
fidelios service uninstall
Runs launchctl unload on the plist and removes it from ~/Library/LaunchAgents/.
Your data in ~/.fidelios/ is not affected. Reinstall at any time with fidelios service install.

fidelios service status

Reports whether the service is installed, running, and accepting connections.
fidelios service status
Example output (macOS, running):
✓  Service file: ~/Library/LaunchAgents/nl.fidelios.server.plist
✓  Service: running (PID 12345)
✓  Port 3100: in use (server is listening)
CheckWhat it means
Service fileWhether the plist or unit file is present on disk
Servicerunning (PID …) / loaded but not running / not loaded
Port 3100Whether the server is currently accepting connections
# First-time setup
fidelios onboard

# Install as a background service
fidelios service install

# Confirm it is running
fidelios service status

# Open the web UI
open http://127.0.0.1:3100   # macOS
xdg-open http://127.0.0.1:3100  # Linux
After this, FideliOS starts automatically at login. You do not need to run fidelios run again.

Viewing logs

The service writes stdout and stderr to the FideliOS log file:
~/.fidelios/instances/default/fidelios.log
Tail it in real time:
tail -f ~/.fidelios/instances/default/fidelios.log

Stopping everything (fidelios stop)

If you see stale processes — leftover embedded PostgreSQL, stuck plugin workers, or a port still bound after Ctrl+C — use:
fidelios stop
This walks the fidelios process tree (server, embedded-postgres and its background workers, plugin workers, anything bound to ports 3100-3110 / 5173 / 54331), sends SIGTERM, then SIGKILL to stragglers, and removes any stale ~/.fidelios/instances/*/db/postmaster.pid so the next fidelios run can start cleanly. Flags:
FlagPurpose
--serviceAlso launchctl unload / systemctl --user stop the background service
--dry-run / -nPrint what would be killed without killing anything

Platform support

PlatformProcess managerSupported
macOSlaunchdYes
Linuxsystemd (user session)Yes
WindowsNot supported