Skip to main content
Version: v0.23.0

CLI reference

The zova CLI is designed for bounded inspection, diagnostics, migration, recovery, store placement, and extension management. It avoids printing bulk data or arbitrary application rows by default.

Run zova --help or zova <command> --help for the complete argument contract of the installed version. The examples below show the command families and intended workflows.

Identify a database

zova info app.zova
zova stats app.zova
zova stats --json app.zova
zova tables app.zova

Use info to confirm the file is a Zova database and inspect format identity. stats summarizes bounded storage counts. tables lists application-facing relational structure without making private schemas a public API.

JSON output includes cli_json_version = 1. Automation should consume JSON rather than parse human-readable tables.

Inspect objects

zova objects app.zova
zova object app.zova <object-id-hex>
zova chunks app.zova
zova chunk app.zova <chunk-id-hex>

Object inspection reports identities, sizes, and manifest information without dumping content bytes. Use application APIs to read actual content under the application's authorization policy.

Inspect vectors

zova vectors app.zova
zova vector-collection app.zova chunks

Vector inspection reports collection configuration and bounded metadata, not numeric vector values. Use a binding or SQL-native search to query rankings.

Inspect graphs

zova graphs app.zova
zova graph app.zova default
zova graph-node app.zova default message:123
zova graph-neighbors --limit 20 app.zova default message:123
zova graph-walk --max-depth 2 --limit 50 app.zova default message:123

Neighbor and walk commands require explicit practical bounds. Node IDs may still reveal application identity, so treat exported reports according to your data policy.

Check health

zova check app.zova
zova check --deep app.zova
zova doctor app.zova
zova doctor --json app.zova

Use deep checks after migrations, store changes, extension changes, and restored backups. doctor explains findings and suggested actions without modifying the source.

Create safe copies

zova backup app.zova app.backup.zova
zova compact app.zova app.compact.zova
zova restore app.backup.zova app.restored.zova

Destinations must be new .zova paths. Backup uses SQLite's online backup API; compact creates a space-reclaiming copy; restore copies a backup into a fresh candidate.

With bound stores, these operations inline readable specialized data into a self-contained destination rather than recreating the external layout.

Recover readable data

zova salvage --dry-run damaged.zova
zova salvage damaged.zova recovered.zova

Dry-run previews recoverability. Real salvage never mutates the source and refuses to overwrite the destination. A verified backup remains preferable; always deep-check the recovered candidate.

Manage optional stores

Each store type supports create, bind, info, and unbind:

zova object-store create objects.zova
zova object-store bind main.zova objects.zova
zova object-store info main.zova
zova object-store unbind main.zova

zova vector-store create vectors.zova
zova vector-store bind main.zova vectors.zova
zova vector-store info main.zova
zova vector-store unbind main.zova

zova graph-store create graphs.zova
zova graph-store bind main.zova graphs.zova
zova graph-store info main.zova
zova graph-store unbind main.zova

Move existing private data with split rather than binding an empty store over it:

zova split --objects main.zova objects.zova
zova split --vectors main.zova vectors.zova
zova split --graphs main.zova graphs.zova

Back up before splitting. Read Optional bound stores for identity, movement, transaction, and recovery behavior.

Manage extensions

Inspect and operate installed extensions:

zova extension list app.zova
zova extension info app.zova trgm
zova extension install app.zova trgm
zova extension check app.zova trgm
zova extension drop app.zova trgm

Verify and trust dynamic bundles separately:

zova extension verify --smoke ./my_ext.zovaext
zova extension trust ./my_ext.zovaext
zova extension trusted
zova --extension ./my_ext.zovaext extension install app.zova my_ext
zova extension untrust my_ext

Supplying --extension makes a trusted bundle available to that CLI process; it does not embed code into the database.

Build extension bundles

zova extension scaffold ./sample_ext --name sample_ext --version 0.1.0
zova extension build ./sample_ext
zova extension pack ./sample_ext --out ./sample_ext.zovaext
zova extension verify --smoke ./sample_ext.zovaext

This producer workflow is experimental in v0.23.0. Native extensions are trusted in-process code and require platform- and ABI-compatible builds.

Output and privacy contract

Human and JSON output avoid object and chunk bytes, vector values, extension-indexed text, private schema SQL, and arbitrary user rows. Counts and identities are still operational data; protect reports accordingly.

Use binding APIs for application reads and writes. The CLI is an operational surface, not a subprocess-based substitute for a language binding.