hoziron start / stop
Start and stop the Hoziron kernel daemon.
hoziron start
Synopsis
hoziron start [--yolo] [--listen <address>]
Flags
| Flag | Description |
|---|---|
--yolo | Auto-approve all tool calls (no confirmation prompts) |
--listen <address> | Listen address (host:port). Overrides HOZIRON_LISTEN env var and config |
Listen Address Resolution
Priority order (first match wins):
--listenCLI flagHOZIRON_LISTENenvironment variable[server].listeninconfig.toml- Default:
127.0.0.1:4200
Examples
# Start with defaults (127.0.0.1:4200)
$ hoziron start
INFO hoziron_api: Hoziron daemon listening on 127.0.0.1:4200
# Start on all interfaces (containers, remote access)
$ hoziron start --listen 0.0.0.0:4200
# Start with auto-approve (development/testing)
$ hoziron start --yolo
# Start with custom config
$ hoziron --config /opt/hoziron/config.toml start
# Start with verbose logging
$ HOZIRON_LOG=debug hoziron start
# Start in background (systemd, Docker, etc.)
$ hoziron start &
What Happens on Start
- Loads configuration from
$HOZIRON_HOME/config.toml - Initializes the execution kernel with the data directory
- Registers configured providers (validates API key env vars exist)
- Starts health monitoring (if enabled)
- Auto-loads agent manifests from
[agents].manifests_dir(if configured) - Binds HTTP server to the listen address
- Writes
daemon.jsonwith connection info for the CLI client
Daemon Info File
On successful start, writes $HOZIRON_HOME/daemon.json:
{
"pid": 12345,
"listen": "127.0.0.1:4200",
"tls": false,
"socket_path": null,
"started_at": "2026-06-04T10:00:00Z"
}
The CLI reads this file to discover where to connect.
hoziron stop
Synopsis
hoziron stop
Flags
None.
Examples
# Stop the running daemon
$ hoziron stop
✓ Daemon stopped
# Stop is idempotent — safe to call if already stopped
$ hoziron stop
⚠ No running daemon found
Graceful Shutdown Sequence
When stop is called (or SIGTERM is received):
- Stops accepting new HTTP requests
- Suspends running agents (preserves state)
- Flushes memory stores to SQLite
- Closes database connections
- Removes
daemon.json - Exits with code 0
Notes
- The daemon also handles
SIGTERMfor graceful shutdown (containers, systemd) - Ctrl+C (SIGINT) exits immediately with code 130
- If the binary is locked by a running daemon, use
--libflag for build commands - In Kubernetes, set
terminationGracePeriodSeconds >= 30to allow flush
See Also
- init.md — Initialize before first start
- utilities.md — Check if daemon is running
- utilities.md — View daemon status