Skip to main content
Narya splits into a host and its clients. The host owns the store, the sessions and the model connections. A client sends a message and reads the result over the local socket. An interactive client starts a host when no host answers, and then drives it over the same HTTP API as every other client.

The host


1

Start the host

Run narya host start. The host takes the store lock and listens on the socket inside your Narya home directory.
2

Check it

Run narya host status. It reports the host it found and what it serves.
3

Stop it

Run narya host stop. The host finishes the requests in flight, then releases the store lock.

Keep the host alive across logins


narya daemon install writes a login service and loads it. On macOS it writes a LaunchAgent that runs narya host start at load and restarts it. On Linux it writes a user systemd unit that restarts on failure. Narya writes the unit with 0600 permissions. It sets NARYA_HOME inside the unit rather than inheriting the value. narya daemon status answers three questions separately: registered, loaded and serving. narya daemon uninstall removes the unit and nothing else. Your sessions, your store and your configuration stay. The host and every session in it survive a closed terminal. A later narya -p attaches to the running host rather than opening the store itself.
narya daemon install is the only command that writes a service unit. Nothing else in Narya writes one.

Sessions


Each session binds to one repository path. Resume one with narya -s <session-id>, or with narya -p --session <session-id>.
  • narya session list lists the sessions in the store.
  • narya export <session-id> writes one transcript to standard output. Choose --format markdown or --format jsonl. Add --reasoning and --tool-output for more detail.
  • narya import <file> --repository <absolute path> reads a transcript from another tool. Set --format claudecode or --format opencode.
  • narya session promote <session-id> marks the session attended.

Checkpoints and rewinds


Narya records restore points of your working tree in a shadow git repository beside your checkout. Your own git history never changes. No timer removes a checkpoint. A rewind moves a session back across the conversation, the files, or both. Name the scope, because it has no default. A rewind always branches and never deletes. Narya first records the tree as it stands, so the state you leave becomes a restore point of its own.

Health and repair


narya doctor walks the installation and reports what it finds:
  • the home directory and the configuration
  • the host and the store
  • the sessions and the tool servers
  • the credentials
  • the binary and the terminal
It repairs nothing. Each finding names the command that fixes it. narya repair <session-id> is the way out of a quarantine. An unclean shutdown leaves a session for recovery, and this command releases it. Add --retire to close the session instead.

Retention


Narya keeps everything until you say otherwise. Set a maximum age per class under [retention] in config.toml.
  • narya retention status reports what a sweep would remove.
  • narya retention run performs the sweep.
  • narya purge <session-id> --yes removes one session and everything under it.