Skip to main content
Narya runs coding agents behind one HTTP API. One long-lived host on your machine owns the sessions, the store and the model connections. The terminal client and the one-shot command that Lerian ships drive that API. A client you write drives the same one. The host owns every session. Clients reach it over a Unix socket inside your Narya home directory. Narya stores your sessions and transcripts on your own machine.

Sessions, lanes, checkpoints and rewinds


A session is a durable conversation bound to one repository path. It outlives the process that opened it. You can archive a session to hide it from a listing. The transcript stays queryable and exportable. A lane is a parallel track inside a session. The main lane carries your own conversation. Other lanes carry delegated work and side conversations. Plain output shows the main lane alone. The --json output carries every lane and tags each line with its lane id. A checkpoint is a restore point of your working tree. Narya keeps checkpoints in a shadow git repository beside your checkout, never in your own history. Checkpoints are permanent, and no timer removes them. A rewind moves a session back across the conversation, the files, or both. A rewind always branches and never deletes. Narya first turns the tree as it stands into its own restore point. The scope has no default, so you must state which of the three you mean.

The clients Lerian ships


Run narya with no arguments to open the interactive client. The client needs a terminal on both standard input and standard output. Add --tui for the full-screen layout or --no-tui for the inline layout. Add -s <session-id> to resume a session. Run narya -p "<prompt>" for one turn and one answer. This is the shape a pipeline uses. Every command accepts --json.

One API, any client


Both shipped clients drive one HTTP API. The host serves it over a Unix socket in your Narya home, and it carries the work: sessions, lanes, messages, permissions, schedules and workflows. The terminal client drives it. The one-shot command drives it too, whenever a host answers on the socket. A client you write against the same contract reaches the same operations. The host API describes the transport, the event stream and the envelopes.

Where Narya keeps your data


Narya writes to ~/.config/narya by default. Set NARYA_HOME to move that root somewhere else. Narya creates the directory with 0700 permissions. The root holds the SQLite store, the local socket, your config.toml and your permission rules. It also holds the credentials directory, the per-session spill and media directories, and the log file.

What Narya reads from your existing setup


Narya reads Claude Code’s own formats without any change: agents, skills and commands under ~/.claude, and the hooks table of ~/.claude/settings.json. It reads the same resources from a repository you trust. MCP tool servers plug in through config.toml.

How you get Narya


Lerian delivers Narya to licensed customers. Contact your Lerian account team for access.

Run Narya

The host, the login service, sessions and the health commands.

Models and credentials

The three model suppliers, where your key comes from, and what leaves your machine.

Permissions and trust

The trust question, the rule format, and the audit you read back.

Automation and CI

One-shot runs, exit codes, schedules and workflows.

Extending Narya

Tool servers, confined scripts, the host API, agents and hooks.

The host API

One contract for every client: socket, event stream, envelopes.