aimux docs
Reference

Runtime Paths

Config paths, catalog paths, runtime directories, and socket files.

All paths below depend on the active profile.

Config Root

Config profiles root:

~/.config/aimux/

Active profile directory:

~/.config/aimux/<profile>/

<profile> is resolved from AIMUX_PROFILE, then AIMUX_RUNTIME_PROFILE, then default.

Files Under the Active Profile Directory

PathPurpose
aimux.config.tspreferred typed config file
aimux.config.jsfallback typed config file
aimux.jsonapp-managed runtime preferences
aimux-sessions.jsonsession catalog and workspace snapshots
aimux-snippets.jsonsnippet catalog

Config Loader Search Order

The user config loader checks these files in order:

  1. aimux.config.ts
  2. aimux.config.js

If neither exists, the runtime uses the defaults from @brimveyn/aimux-config.

Runtime Directory

The daemon and terminal manager use a runtime directory separate from the config directory.

If XDG_RUNTIME_DIR is set:

<XDG_RUNTIME_DIR>/aimux-<profile>/

Otherwise:

~/.local/state/aimux-<profile>/

Socket Paths

Inside the runtime directory:

PathPurpose
daemon.sockapp-facing daemon socket
terminal-manager.socklong-lived terminal manager socket

Examples for the default profile when XDG_RUNTIME_DIR=/run/user/1000:

/run/user/1000/aimux-default/daemon.sock
/run/user/1000/aimux-default/terminal-manager.sock

Example for a sanitized profile name Dev Sandbox:

<runtime-base>/aimux-dev-sandbox/daemon.sock
<runtime-base>/aimux-dev-sandbox/terminal-manager.sock

Security Notes

The runtime ensures:

  • runtime directories exist
  • runtime directories are tightened to 0700 on a best-effort basis
  • socket permissions are tightened on a best-effort basis

The runtime also checks for obvious socket-security issues such as:

  • missing socket
  • path is not a socket
  • socket owned by a different user
  • socket writable by group or others
  • ../concepts/profiles.md
  • ../concepts/config-and-state.md
  • cli.md

On this page