Command-Line Interface

Write, test and publish blocks from your terminal, and run pipelines locally or in the cloud.

The spade CLI is the developer side of Spade. It scaffolds block collections in any supported language, runs pipelines on your own machine with the same sandboxing and caching the cloud uses, and publishes collections for everyone else to use.

Build blocks

  • spade init --language <lang>: start a new block collection in Python, R, Go, Rust or TypeScript.
  • spade add <name>: add a block, with its manifest and an entry point ready to fill in.
  • spade check: validate a pipeline, or every block manifest in a collection.

Run pipelines

  • spade setup: prepare the local machine once.
  • spade install <source>: install a collection from the cloud registry (gdal@latest), a Git repository, or a local path.
  • spade run <pipeline.yaml>: run a pipeline locally. Unchanged blocks come from the cache, so a rerun only does new work.
  • spade submit <pipeline.yaml>: run the same pipeline in the cloud, uploading any local files it references on the way.

Share your work

  • spade login: sign in to the cloud with the same account as the web UI.
  • spade publish: send a collection to the registry for screening, building and signing. Collections can stay private or be made public.
  • spade data: upload, download and list data in the cloud catalogue.
  • spade secret: keep API keys and connection strings in your OS keychain, or in the cloud for cloud runs.

Local to cloud

A pipeline that runs with spade run runs unchanged with spade submit, and the scheduler spreads it across workers. The same pipeline opens in the web UI, so the people who build blocks and the people who use them work from one format.