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:
- macOS — launchd (
~/Library/LaunchAgents/) - Linux — systemd user session (
~/.config/systemd/user/)
- 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.
Release vs Dev mode
| Mode | Runs | Auto-Restart When Idle toggle | When to use |
|---|---|---|---|
release | /opt/homebrew/bin/fidelios run from $HOME — the published CLI | No-op | Normal operation — using FideliOS as a tool |
dev | node <repo>/scripts/dev-runner.mjs watch from the repo root | Honored — agents in Company FideliOS can edit source without crashing their own runs | Debugging FideliOS itself with agents in Company FideliOS |
~/.fidelios/instances/default/service-mode.json so subsequent
fidelios service status calls show what’s running.
- macOS
- Linux
Writes a launchd plist to: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:Onboard shortcut:fidelios onboardoffers to runservice installat the end of the wizard. Answeryto skip this manual step.
fidelios service uninstall
Stops and removes the background service.
- macOS
- Linux
Runs
launchctl unload on the plist and removes it from ~/Library/LaunchAgents/.~/.fidelios/ is not affected. Reinstall at any time with fidelios service install.
This is the single command for stopping either a release or a dev service —
both register under the same service name (nl.fidelios.server). A dev service
runs dev-runner.mjs, which kills its entire child process tree (pnpm →
tsx → the node server → plugin workers) on shutdown, so uninstall leaves
nothing running behind it. To stop a dev service without removing it, switch it
back to release mode with fidelios service release.
fidelios service status
Reports whether the service is installed, running, and accepting connections.
| Check | What it means |
|---|---|
| Service file | Whether the plist or unit file is present on disk |
| Service | running (PID …) / loaded but not running / not loaded |
| Port 3100 | Whether the server is currently accepting connections |
Recommended workflow
fidelios run again.
Viewing logs
The service writes stdout and stderr to the FideliOS log file: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/instances/*/db/postmaster.pid so the next fidelios run can start
cleanly.
Flags:
| Flag | Purpose |
|---|---|
--service | Also launchctl unload / systemctl --user stop the background service |
--dry-run / -n | Print what would be killed without killing anything |
Stray servers started outside the service
fidelios service uninstall and fidelios stop --service only manage the
registered service. A server started outside that system — for example a
bare pnpm --filter @fideliosai/server dev or pnpm dev run in a terminal — is
not a registered service: neither command targets it, and if its terminal
closes it keeps running (re-parented to PID 1) until the machine reboots.
Always run a background dev server with fidelios service install --dev —
never a bare pnpm dev. A registered dev service stops with one command
(fidelios service uninstall) and shows up in fidelios service status.
To check for a stray server (macOS / Linux):
Platform support
| Platform | Process manager | Supported |
|---|---|---|
| macOS | launchd | Yes |
| Linux | systemd (user session) | Yes |
| Windows | — | Not supported |