TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/org-quicko/silo/llms.txt
Use this file to discover all available pages before exploring further.
silo CLI works directly on the data directory — no server needs to be running. This makes it the fastest path to initializing a project, minting keys, importing data, or recovering from a lockout. If you are running from source, replace silo with bun run apps/server/src/main.ts; the two are the same program.
Subcommand reference
Server management
Key management
Data operations
Media
Search
Plugin management
MCP bridge
Flags
Every flag is optional. Where a flag applies to only certain subcommands, the Applies to column names them.| Flag | Applies to | Meaning |
|---|---|---|
--config <path> | all | TOML config file (default silo.toml if present); for init, the file to write |
--force | init, add | init: overwrite an existing config file. add: replace an already-installed plugin of the same name |
--data <dir> | all | Data directory (default ./silo_data) |
--blob-path <dir> | all | Media directory for the fs blob driver (default <data dir>/media) |
--driver <sqlite|fs> | all | Storage driver |
--listen <addr> | serve | Listen address (default :8090) |
--project <id>, --env <id> | serve, keys create | serve: defaults created on startup (default, prod). keys create: scope the preset targets (default *, all) |
-d, --detach | serve | Run in the background and return |
--log-file <path> | serve | Write the log here (detached runs default to <data dir>/silo.log) |
--log-level <s> | serve | debug, info, warn, error, or silent |
--timeout <s> | stop | Seconds to wait after SIGTERM before killing (default 10) |
-n, --lines <n> | logs | How many lines to show (default 50) |
-f, --follow | logs | Keep printing as the log grows |
--label <s> | keys create | Human-readable label |
--claims <a,b> | keys create, plugin grant, add | Explicit comma-separated claims; for add and plugin grant, approve exactly these instead of everything the manifest requests |
--preset <root|manage|write|read> | keys create | Claim preset, default read; ignored when --claims is given |
--collections <a,b> | keys create | Collections the read, write, and manage presets target; empty means all |
--dir <path>, --out <path> | export | Write a directory tree, or a .tar.gz |
--with-keys | export | Include API key hashes |
--include <rule> | export, import | Repeatable: project, project/env, or project/env/collection. Omit for everything |
--media <all|referenced|none> | export, import | What to do about media files. Defaults to all, or referenced once --include narrows it |
--mode <merge|replace> | import | Conflict strategy (default merge) |
--dry-run | import | Report what would be written, write nothing |
--prefer <local|remote> | import | Override merge conflict resolution |
--check | search reindex | Also report both index integrity checks, and exit non-zero on disagreement |
--integrity <sri> | add | Check the downloaded bytes against a sha512-... digest |
--ref <r>, --registry <url> | add | Git ref to check out; npm registry to fetch from |
-y, --yes | add | Do not ask before granting; a non-interactive shell without this is a no |
--no-register | add | Install the files, print the block, and leave silo.toml alone |
--url <url> | mcp | The running server, e.g. http://localhost:8090. Falls back to SILO_URL |
--key <key> | mcp | The API key to present. Falls back to SILO_API_KEY, which is the safer place for it |
A bare collection name in
--collections grants the permission in every project and environment, as collections:*/*/<name>:.... Write project/env/collection to pin it to one scope.Offline commands
Most of the CLI operates entirely offline against the data directory on disk — no running server is needed or consulted.All subcommands except
stop, status, logs, and mcp work directly on the data directory with no server. This is the way back from a lockout: you can mint a key without ever starting the server.stop,status,logsread only the run file (<data dir>/silo.run.json) and never open storage. Asking whether a server is running cannot create a data directory and cannot disturb one that another process already owns.mcpis a client of a running server over HTTP. It reads neither a config file nor a data directory.
Recovery
Lost all API keys
Mint a new root key directly against the data directory, no server required:The secret is printed once. Store it somewhere safe.
Check whether the server would start
Run the plugin doctor to load every configured plugin, report failures, and exit — without starting a server:Exits non-zero if any plugin fails to load. This answers “would
silo serve start?” before you actually try.