Code

The AIVory Code Daemon

The daemon aivoryd holds all your agent sessions. It reads the native session stores and runs the claude, codex and gemini commands that you installed and logged in. The desktop app and the phone app are clients of the daemon.

  • The app starts the daemon when no daemon runs, and the daemon keeps running when you close the app
  • Your data stays local: the daemon never changes your agent folders and never reads your login tokens
  • Start it yourself with aivoryd serve
  • Encrypted phone link with --iroh, at home or from anywhere
Note A login item that starts the daemon at each login, and a tray icon, are planned. They are not in this version.

How It Works

Daemon
aivoryd runs as your user. The installers place it next to aivory. They do not register a system service.
Clients
The desktop app and the phone app show the same data. When you close the desktop app, the daemon and your agents continue.
Your Data
The daemon reads ~/.claude, ~/.codex and ~/.gemini, and never writes to them. No code reads, stores or proxies a login token.

Start the Daemon

You do not have to start the daemon. When you run aivory and no daemon answers, the app starts one.

To start it yourself, run this command:

aivoryd serve

To show only the sessions below one folder, add --scope:

aivoryd serve --scope ~/projects/shop

To serve sample data and no real sessions, add --demo:

aivoryd serve --demo

The command line reference lists all options.


Where the Daemon Keeps Its Data

The daemon keeps its own data (tasks, settings, paired devices, installed themes) in a folder for your user. On Windows this is %LOCALAPPDATA%\aivory\code. Delete the folder to remove all AIVory data. Your agent sessions stay in the folders of your agents.


Connect Your Phone

The daemon that the desktop app starts already serves the phone over an end-to-end encrypted iroh link. It works in your network and from other networks. See Phone App for the pairing steps. To start it yourself:

aivoryd serve --iroh

--relay none allows direct paths only. --remote 0.0.0.0:7420 adds an unencrypted WebSocket link for your local network; use it only in a network that you trust.


Next Steps