Keep GNO Fresh Without the Web UI
Run GNO as a headless long-running watcher process. gno daemon keeps the same watch, sync, and embedding loop alive for terminal, agent, and local automation workflows.
Key Benefits
- Continuous indexing without opening the browser
- Reuses the same watch/sync/embed runtime as gno serve
- Great fit for CLI, skills, and local automation
- Foreground process keeps lifecycle simple and observable
- Supports --no-sync-on-start for watcher-only startup
- Works with --offline and manual download policy
Example Commands
gno daemon
gno daemon --no-sync-on-start
nohup gno daemon > /tmp/gno-daemon.log 2>&1 &
Get Started
Ready to try Daemon Mode?
Why It Exists
Sometimes you want GNO to stay current, but you do not want a browser tab or desktop shell open all day.
gno daemon gives you the same watch, sync, and embed loop as gno serve,
just without the HTTP server and UI layer.
Good Fits
- terminal-first workflows
- local agents installed via skill or MCP-adjacent shell flows
- always-on note/project directories
- small home-server or workstation setups
Start It
gno daemon
It stays in the foreground in v0.30.
If you want supervision:
nohup gno daemon > /tmp/gno-daemon.log 2>&1 &
Skip The Initial Sync
gno daemon --no-sync-on-start
Use that when the index is already current and you only want to react to future file changes.
daemon vs serve
| Command | Best for |
|---|---|
gno serve |
browser sessions, desktop shell, REST API, dashboard |
gno daemon |
headless continuous indexing only |
Avoid running both against the same index at the same time in v0.30.
Typical Workflow
gno init ~/notes --name notes
gno index
gno daemon
Then use normal CLI commands in another terminal:
gno search "auth rollout"
gno ask "what changed this week" --answer
gno ls