← All features

Daemon Mode

Keep GNO fresh without the web UI

Run GNO as a headless long-running watcher and resident MCP gateway. The service keeps watching while local models load on demand, stay available for a configurable idle grace period, and retire when idle. Later semantic requests reload them; keyword search does not need a model. Exact edits stay content-safe, while atomic saves and recursive deletes reconcile with bounded failure-safe work.

Use cases
Always-fresh agent memory
Background indexing for large vaults
Local automation without a browser session

What it gives you

  • Continuous indexing without opening the browser
  • Atomic saves and recursive deletes reconcile without routinely resyncing untouched siblings
  • Reuses the same watch, sync, and embed runtime as gno serve
  • Stateful Streamable HTTP MCP at 127.0.0.1:3000/mcp
  • Coalesced saved-Capsule freshness checks with canonical non-generative receipts
  • Concurrent resident MCP clients share the store and reuse loaded models during their idle grace period; sessions stay isolated
  • Native --detach self-backgrounding, with no nohup, launchd, or systemd unit
  • --status and --stop for first-class lifecycle control
  • Persistent watch, sync, embed, and MCP service with idle native retirement
  • Native-child failure requires an explicit retry after cleanup; failed requests are not replayed
  • Shutdown drains accepted work within a shared budget; durable pending embeddings resume on the next run
  • Supports --no-sync-on-start for watcher-only startup
  • Works with offline and manual download policy

Try it yourself

Representative commands and entry points. Full reference lives in the documentation.

gno daemon
gno daemon --no-sync-on-start
gno daemon --detach --log-file /tmp/gd.log
gno daemon --status
gno daemon --stop

Keep reading

Related features and docs.