Cross-platform daemon setup for Mnemostroma (Observer + Memory + Storage).
Linux / macOS:
bash scripts/install-daemon.shWindows (PowerShell as Administrator):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
.\scripts\windows\install-daemon.ps1- Detects your OS
- Installs daemon as system service (systemd/launchd/Task Scheduler)
- Enables auto-start on login
- Starts daemon immediately
- Confirms socket is ready for clients
scripts/
├── install-daemon.sh # Universal entry point (auto-detects OS)
├── README.md # This file
│
├── linux/ → [Linux (systemd) Installation](./linux/README.md)
│ ├── install.sh # systemd setup
│ ├── mnemostroma-daemon.service
│ ├── mnemostroma-proxy.service
│ ├── mnemostroma-watchdog.service
│ └── README.md
│
├── macos/ → [macOS (launchd) Installation](./macos/README.md)
│ ├── install.sh # launchd setup
│ ├── com.mnemostroma.daemon.plist
│ └── README.md
│
└── windows/ → [Windows (Task Scheduler) Installation](./windows/README.md)
├── install-daemon.ps1 # Task Scheduler setup
└── README.md
┌─────────────────────────────────────────────┐
│ Client (VS Code, Claude Code, Cursor) │
│ └─ spawns adapter process on startup │
└──────────────┬──────────────────────────────┘
│
│ stdio/socket
↓
┌──────────────────────┐
│ Adapter (~70 MB) │
│ (ephemeral) │
└──────────┬───────────┘
│
│ daemon.sock
↓
┌──────────────────────┐
│ Daemon (~630 MB) │
│ (persistent) │
│ - Observer │
│ - Memory layers │
│ - Storage (SQLite) │
│ - MatrixSearch ANN │
└──────────────────────┘
Important: Daemon must be running before any client connects.
Linux:
systemctl --user disable mnemostroma-daemon
systemctl --user disable mnemostroma-proxy
systemctl --user disable mnemostroma-watchdog
rm ~/.config/systemd/user/mnemostroma-*.service
systemctl --user daemon-reloadmacOS:
launchctl unload ~/Library/LaunchAgents/com.mnemostroma.daemon.plist
rm ~/Library/LaunchAgents/com.mnemostroma.daemon.plistWindows (PowerShell):
Stop-ScheduledTask -TaskName "Mnemostroma Daemon"
Unregister-ScheduledTask -TaskName "Mnemostroma Daemon" -Confirm:$falseDaemon won't start:
# Linux
journalctl --user -u mnemostroma-daemon -f
# macOS
tail -f ~/.mnemostroma/daemon.log
tail -f ~/.mnemostroma/daemon.err
# Windows (PowerShell)
$task = Get-ScheduledTask -TaskName "Mnemostroma Daemon"
$task.State
Get-ScheduledTaskInfo -TaskName "Mnemostroma Daemon"Port conflicts:
Daemon uses Unix domain socket (~/.mnemostroma/daemon.sock), not TCP. No port conflicts possible.
Check daemon status:
mnemostroma status