Files
evermind-ai--everos/docs/cli.md
T
wehub-resource-sync 6c9c7fe7f3
CI / integration tests (3.13) (push) Failing after 1s
Commit lint / pull request title (push) Has been skipped
Docs / links (push) Failing after 1s
CI / unit tests (3.13) (push) Failing after 1s
CI / lint (push) Failing after 1s
CI / integration tests (push) Failing after 1s
CI / package build (push) Failing after 1s
Commit lint / commit messages (push) Failing after 1s
CI / unit tests (push) Failing after 1s
chore: import upstream snapshot with attribution
2026-07-13 12:24:24 +08:00

4.5 KiB

CLI

The everos command-line entry point covers setup and operations — generate starter config files (init), run the HTTP API server (server start), inspect effective config (config show), and operate the md → LanceDB index queue (cascade). Hot-path business (/add /flush /search /get) is the HTTP API, not the CLI.

CLI commands run in-process — they call into the service/ / infrastructure layers directly rather than the HTTP loopback.

Installation

The script is exposed via pyproject.toml:

[project.scripts]
everos = "everos.entrypoints.cli.main:app"

After uv sync (or pip install -e .) the everos command resolves to src/everos/entrypoints/cli/main.py, a Typer app.

Subcommand layout

everos
├── init [--root PATH] [--force] [--print]   Generate starter config files (everos.toml + ome.toml)
├── config
│   └── show [--root PATH]          Show effective configuration
├── server
│   └── start [--host] [--port] [--root] [--reload] [--log-level]   Start the HTTP API server (uvicorn)
└── cascade [--root PATH]           Inspect / operate the md → LanceDB sync queue
    ├── status                      Queue / LSN summary
    ├── sync [PATH]                 Drain the queue now (optional PATH force-enqueues)
    └── fix [--apply]               List failed rows / re-enqueue retryable ones

Each subcommand lives in its own module under entrypoints/cli/commands/ and is registered in cli/main.py. The CLI is intentionally small — hot-path business (/add /flush /search /get) is the HTTP API, not the CLI; the CLI covers setup (init), running the server, and index ops (cascade). There is no reindex command — rebuild by deleting <root>/.index/lancedb and restarting, or run everos cascade sync.

everos server start

Wraps uvicorn to launch the FastAPI app from entrypoints/api/app.py in factory mode.

everos server start \
    --host 127.0.0.1 \
    --port 8000 \
    --log-level info \
    --root ~/.everos
Flag Env var Default
--host EVEROS_API__HOST 127.0.0.1 (loopback only; binding 0.0.0.0 logs a warning — EverOS ships no auth)
--port EVEROS_API__PORT 8000
--log-level EVEROS_LOG_LEVEL INFO
--root EVEROS_ROOT ~/.everos
--reload off (use in development)

Lifespan startup wires the storage backends (SQLite engine + LanceDB connection) on app boot; see entrypoints/api/lifespans/.

Configuration via env vars

Both CLI and HTTP server read configuration from pydantic-settings:

Env var Settings field
EVEROS_ROOT memory-root path (default ~/.everos)
EVEROS_MEMORY__TIMEZONE Settings.memory.timezone (e.g. Asia/Shanghai)
EVEROS_SQLITE__BUSY_TIMEOUT_MS Settings.sqlite.busy_timeout_ms
EVEROS_LANCEDB__READ_CONSISTENCY_SECONDS Settings.lancedb.read_consistency_seconds

Pattern: EVEROS_<SECTION>__<KEY> (double underscore = nesting). See config/settings.py.

Logging

configure_logging runs at CLI startup and configures structlog with the resolved log level. All in-process logs (CLI command bodies + service / infra layers) flow through the same handler.

everos server start --log-level debug   # see all sql / lance traffic

API ↔ CLI division of labour

Responsibility API CLI
Hot-path business (/add /flush /search /get) — (HTTP only)
Setup (generate config files) everos init
Inspect effective config everos config show
Run the server everos server start
Index ops (drain / inspect / fix the cascade queue) everos cascade {status,sync,fix}
Health probe GET /health (use HTTP)
Metrics scrape GET /metrics (use HTTP)

The CLI is the shell-friendly surface for ops + scripting; the HTTP API is the process-friendly surface for clients (web UIs, agents, automation).

See also