Skip to content

Filesystem Layout

Scope: standalone Python Runtime. For Desktop operations, see the Desktop guide.

Config.workspace defaults to ~/.echo-agent. Supported CLI subcommands can override it with -w/--workspace. Relative paths below are based on the effective workspace; configuration can move some of them. Use echo-agent config dump to inspect the effective paths.

Main workspace paths

Path or setting Default Contents
storage.database_path data/echo_agent.db SQLite database; SQLite may create -wal and -shm sidecars
storage.sessions_dir data/sessions Session data
storage.memory_dir data/memory Memory files such as user_memory.json and env_memory.json; shards may use MEMORY.*.md
knowledge.docs_dir data/knowledge Source documents for the knowledge base
storage.spill_dir data/spill Oversized tool output; must be a dedicated workspace-relative directory
storage.logs_dir data/logs Execution traces, tool and memory audits, watchdog dumps; ordinary Loguru logs go to stderr
artifacts.root_dir data/artifacts User-deliverable artifacts
skills.skills_dir skills Workspace skills

Not every directory is created at first launch. A skill is described by SKILL.md; do not assume each one has a handler.py, manifest.yaml, or test directory.

Configuration files

The loader looks for echo-agent.yaml, echo-agent.yml, config.yaml, and config.yml in that order within its search directories. Without an explicit file, it searches the current and user directories; -c/--config selects a file. See environment variables for configuration precedence. .echo-agent/config.yaml is not an automatically applied, separate workspace-override layer.

Before checking configuration into version control, ensure it contains no plaintext secrets. Runtime databases, sessions, memory, and audit records generally belong outside the repository.

Checkpoints

checkpoint.store_path defaults to ~/.echo-agent/checkpoints/store. Checkpoints live in a shadow Git repository, not a chk_<timestamp>/manifest.json tree. Workspace snapshots exclude the database, sessions, memory, logs, and the checkpoint store itself; checkpoint restore cannot recover those data. Current CLI actions are echo-agent checkpoint list, show, restore, and prune. prune has no --older-than or --keep option.

Backup and cleanup

A full backup should include the actual workspace's database, sessions, memory, configuration, and other important data. Stop writes first, or use a consistent SQLite online backup method. Schedule database maintenance such as VACUUM during a suitable downtime or low-load window. See backup and restore.