Command line
Discover and pull EpistaBase data from the terminal with the epistabase CLI.
The epistabase command line ships in the same package as the SDK and shares its
credentials and governance. Install the CLI extra and sign
in:
pip install "epistabase[cli]"
epistabase auth login --token <PAT> --workspace <workspace-id>Each command mirrors a Python SDK call one-to-one and accepts --json for
scripting.
Verbs
epistabase ls # discover catalog assets
epistabase get <ref> # show an asset's metadata + lineage
epistabase pull <ref> # download the data
epistabase query "SELECT ..." # run governed SQLA <ref> is either an opaque asset id or a readable [experiment/]name
path resolved against your active workspace. If a name is ambiguous, the CLI
lists the matching candidates and their ids rather than guessing.
epistabase get EXP-2026-0001/cells.fcs
epistabase get 3f8b9c2a-1d4e-4a7b-9c2a-1d4e4a7b9c2aDiscover — ls
epistabase ls # everything in the workspace
epistabase ls --experiment EXP-2026-0001 # scope to one experiment
epistabase ls --kind data_file # filter by asset type
epistabase ls --json # machine-readableMetadata — get
get shows the asset descriptor — id, type, name, workspace, project, experiment,
format, size, PHI flag, and lineage counts. It does not download the bytes.
Download — pull
pull downloads the data: file assets stream to disk, and table assets are
materialized to .csv (or .parquet with --out result.parquet).
epistabase pull EXP-2026-0001/paired_dataset.csv # -> ./paired_dataset.csv
epistabase pull <table-id> --out results.parquetQuery — query
epistabase query "SELECT * FROM my_table LIMIT 100"
epistabase query "SELECT ..." --out result.parquet # save instead of printExit codes
| Code | Meaning |
|---|---|
0 | success |
1 | an API error (e.g. a malformed query) |
2 | not authenticated, an ambiguous/invalid reference, or a refused destination |