Background Daemon
The daemon runs in the background, polling your vault and automatically syncing files. Installed by default during dhd init.
Installation
| Platform | Service | Location |
|---|---|---|
| macOS | launchd | ~/Library/LaunchAgents/com.daemon-hound.plist |
| Linux | systemd | ~/.config/systemd/user/daemon-hound.service |
| Windows | Task Scheduler | User-level task |
How it works
- Every 30 seconds, fetch from the Git remote
- Compare local vs. remote state
- Pull new files, restore to correct local paths
- Detect local changes and push
- On conflict: attempt smart merge; if unresolvable, halt
Management
Shell
dhd daemon run # Run in foreground (debugging)
dhd daemon start # Start background daemon
dhd daemon status # Check state
dhd daemon stop # Stop daemon
dhd daemon restart # Restart daemon
dhd daemon logs -f # Follow logs
dhd daemon errors -f # Follow error logs
dhd daemon resume # Resume after haltConflict behavior
When the daemon can smart-merge, it does. True conflicts halt the daemon:
- Syncing pauses for the conflicted namespace
- Halt reason visible in
dhd statusand web UI - Resolve with
dhd conflicts resolveor the web UI dhd daemon resumeto restart syncing
Logging
daemon.log— general output (rotated at 10 MB)daemon.error.log— errors only (rotated at 5 MB)- 30-day retention, hourly rotation
Security
- Runs as current user — no elevation
- Only contacts your configured Git remote
- Logs at
~/.dh/(0700) - No telemetry, no third-party connections
No file watching. Polling-only at 30s intervals. Watch-based mode planned for v1.2.0.
Removal
Shell
dhd cleanup --forceStops and uninstalls the daemon, removes ~/.dh/, clears keychain. Does not affect the remote vault.