Skip to main content
Version: Next

Spice.ai OSS CLI command reference

spice​

Usage​

spice [command] [--help]

Full Command Reference​

CommandDescription
accelerationManage dataset acceleration features
addAdd Spicepod - adds a Spicepod to the project
agyRun the Antigravity CLI with the Spice runtime as its model backend
catalogAdd or configure catalog entries in spicepod.yaml
catalogsList catalogs loaded by the Spice runtime
chatChat with an LLM
claudeRun Claude Code with the Spice runtime as its model backend
codexRun Codex CLI with the Spice runtime as its model backend
completionsGenerate shell completions for the Spice CLI
cloudManage Spice Cloud resources
clusterCluster operations for the Spice runtime
connectDeprecated alias for adding a Spicepod dependency
copilotRun GitHub Copilot CLI with the Spice runtime as its model backend
cursorRun Cursor CLI with the Spice runtime as its model backend
datasetAdd or configure dataset entries in spicepod.yaml
datasetsLists datasets loaded by the Spice runtime
embeddingAdd or configure embedding entries in spicepod.yaml
extensionAdd or configure entries under extensions: in spicepod.yaml
feedbackOpen the Spice.ai community Slack to share feedback
functionAdd or configure function entries in spicepod.yaml
grokRun Grok Build with the Spice runtime as its model backend
helpHelp about any command
initInitialize Spice app - creates a new spicepod.yaml
installInstall or reinstall the Spice.ai runtime
loginLogin to Spice.ai or configure credentials for data sources
managementConfigure the management: section of spicepod.yaml
metadataAdd or configure key/value entries under metadata: in spicepod.yaml
modelAdd or configure model entries in spicepod.yaml
modelsLists models loaded by the Spice runtime
nsqlText-to-SQL REPL - translate natural language to SQL
opencodeRun OpenCode with the Spice runtime as its model backend
orcaRun Orca with every coding agent it starts on the Spice runtime
piRun pi with the Spice runtime as its model backend
podsLists Spicepods loaded by the Spice runtime
querySubmit an async query or start an interactive async query REPL
refreshRefresh a dataset loaded by the Spice runtime
rerankerAdd or configure reranker entries in spicepod.yaml
runRun Spice - starts the Spice runtime, installing if necessary
runtimeConfigure the runtime: section of spicepod.yaml
searchSearch datasets with embeddings
secretAdd or configure secret entries in spicepod.yaml
snapshotsConfigure the snapshots: section of spicepod.yaml
sqlStart an interactive SQL query session against the Spice runtime
spicedSpice runtime binary — direct invocation reference
statusSpice runtime status
toolAdd or configure tool entries in spicepod.yaml
traceReturn traces for operations that occurred in Spice
upgradeUpgrades the Spice CLI and runtime to the latest or specified version
validateValidate a spicepod.yaml without starting the runtime
versionSpice CLI version
viewAdd or configure view entries in spicepod.yaml
workerAdd or configure worker entries in spicepod.yaml
workersLists workers loaded by the Spice runtime

Spicepod manifest editors​

catalog, dataset, embedding, function, model, reranker, secret, tool, view, and worker all edit the matching list section of spicepod.yaml and share the same two subcommands and body flags:

spice <component> add <name> [body flags] # add a new entry; fails if it already exists
spice <component> configure <name> [body flags] # add or update an entry in place

runtime, management, and snapshots edit singleton sections, so they expose only configure. extension edits the extensions: map (add and configure), and metadata edits the metadata: map (add, configure, and set <KEY> <VALUE>).

See spice dataset for the shared body-flag reference. The other list editors accept the same flags, plus the type-specific ones: --sql / --sql-ref for views, --cron for workers, and --body / --body-ref for functions. Run spice <command> --help for the per-command help.

Command Flags​

The following flags are global — they are accepted by every command:

FlagDescription
-h, --helpPrint the help message.
-v, --verboseIncrease log verbosity. -v for debug, -vv for trace.
--machineMachine-readable mode for LLMs and automation: prefer JSON output where supported, and always emit structured JSON errors. Alias: --programmatic.
--api-key <key>API key used to authenticate with the runtime or the Spice.ai Cloud Platform. Also read from the SPICE_API_KEY environment variable.
--cloudTarget the Spice.ai Cloud Platform instead of a local runtime. Requires --api-key.
--cloud-region <region>Spice.ai Cloud Platform runtime endpoint region, used with --cloud. Defaults to us-east-1.
--http-endpoint <endpoint>HTTP endpoint of the Spice runtime to talk to. Defaults to http://127.0.0.1:8090.
--tls-root-certificate-file <file>Path to a PEM root certificate used to verify the runtime's TLS server certificate. It applies to spice sql over Flight and to commands that call the runtime's HTTP API, such as spice status, spice datasets, and spice refresh. spice query does not use it, and neither does the task-history lookup that spice nsql analyze runs after each request. Downloads from the Spicepod registry by spice add and spice connect use the system root certificates.

When the runtime's certificate fails verification, the commands that use this flag over HTTP report the reason instead of saying the runtime is unavailable, for example TLS certificate verification failed for https://127.0.0.1:8090: unknown issuer. Pass --tls-root-certificate-file with the CA certificate that issued the runtime's certificate. A file that cannot be read or holds no certificate fails with Could not load the TLS root certificate file '<path>': <reason>. With --machine, the two errors have the codes tls_verification_failed and tls_root_certificate.

In v2.4.0 and earlier, only spice sql used this flag. Commands that call the runtime over HTTP, such as spice status and spice datasets, ignored it and failed with The Spice runtime is unavailable at <endpoint>. Is it running?.