Skip to main content
Loom can run as a long-lived background service. The loom serve command supports subcommands for daemon lifecycle management, log viewing, and boot auto-start.
Only one Loom daemon can run at a time. If a daemon is already running, loom serve start will refuse to start a new one regardless of the port specified. Use loom serve stop first, then start with a new port.

Running modes

Run the server in the current terminal session. Stops when you press Ctrl+C or close the terminal.

Port configuration

The server port can be specified in two ways (highest priority wins):
  1. Command-line flag: loom serve --port 9000 start
  2. Config file: server.port in configs/loom.yaml
  3. Default: 8666
The --port flag is defined on the serve group, so it works with all subcommands and foreground mode.

Daemon management

Start

Options --host, --port, and --template are defined on the parent serve command and apply to all subcommands. Pass --autostart to also enable boot auto-start via systemd.

Stop

Sends SIGTERM to the daemon and waits for graceful shutdown. Falls back to SIGKILL after 15 seconds if the process does not exit. Pass --remove-autostart to also disable the systemd auto-start service.

Restart

Stops the running daemon (if any), then starts a new one.

Status

Displays:
  • Running state and PID
  • Log file location
  • Uptime, memory usage, and CPU (when psutil is installed)
  • Whether auto-start is enabled
Install psutil (pip install psutil) for uptime, memory, and CPU metrics in the status output.

Boot auto-start

Use the --autostart flag on start to register a systemd user service:
This:
  1. Starts the daemon immediately
  2. Generates a systemd unit file at ~/.config/systemd/user/loom.service
  3. Enables the service with systemctl --user enable loom
  4. Runs loginctl enable-linger so the service survives user logout
To remove auto-start later:
Auto-start requires a Linux system with systemd. It is not supported on macOS or Windows.

Manual systemd control

After enabling auto-start, you can also manage the service directly with systemctl:

Log management

View recent server output:
Log file location: ~/.loom/loom.log

File locations

Command reference