Skip to content

File Locations

File Default Override
axon.yaml ~/.config/axon/axon.yaml $AXON_CONFIG
.env ~/.config/axon/.env $AXON_ENV

Both follow XDG: $XDG_CONFIG_HOME/axon/ when set.

File Default Override
Session data ~/.local/share/agent/ $AXON_DATA_DIR or session.data_dir in yaml
Session file derived from cwd hash $AXON_SESSION_PATH or session.path in yaml
Background logs {data_dir}/bg/{pid}/ follows data_dir

Each working directory gets its own session file: {data_dir}/sessions/{basename}-{hash}.json.

The basename makes the file recognizable. The hash (SHA-256 of the absolute path, 6 bytes) keeps two same-named directories apart.

~/.local/share/agent/sessions/
├── myproject-a3f2c1d8e9f0.json
├── backend-7b2e4d1c5a3f.json
└── ...

Only four survive. All say where something is, never what it contains.

Variable Purpose
AXON_CONFIG Path to axon.yaml
AXON_ENV Path to .env
AXON_DATA_DIR Where state is written
AXON_SESSION_PATH Pin one session file

AXON_DATA_DIR and AXON_SESSION_PATH override the config rather than defaulting under it — their purpose is to redirect state without editing a file (e.g., a container mounting a volume, or a test that must not touch the developer’s real session).