calypr-cli is Calypr's command-line client for working with Gen3-style data
commons from a terminal. It combines the standard data transfer flows with
operator-oriented surfaces for permissions, collaborators, and portal
configuration.
The CLI currently groups into four main areas:
| Command group | Purpose |
|---|---|
configure, auth |
Store credentials, create named profiles, and check connectivity |
upload*, download*, retry-upload |
Transfer files to and from supported backends |
collaborators |
Manage collaboration requests and approvals |
permissions, portal |
Operator workflows for Arborist-backed permissions and Gecko-backed portal config |
Most commands require a configured --profile, and the default backend is
gen3.
Two command groups are specific to the Calypr fork rather than the legacy data transfer client:
| Command group | Supported surface | Deliberate non-goals |
|---|---|---|
permissions |
Public Gen3 /authz routes exposed through revproxy |
Raw Arborist catalog/admin CRUD and arbitrary policy mutation |
portal |
Public /gecko routes exposed through revproxy |
Backend-only Gecko paths and undocumented admin-only flows |
Detailed operator docs live here:
The repo keeps a root main package, so the primary local build path is the
repo root:
go build .To install the current checkout:
go install .There is also a compatibility entrypoint under ./cmd/calypr-cli if you need a
subdirectory main package explicitly:
go build ./cmd/calypr-cliConfigure a profile with credentials and an API endpoint:
calypr-cli configure \
--profile=myprofile \
--cred=/path/to/credentials.json \
--apiendpoint=https://example.comCheck the resulting profile or auth state:
calypr-cli auth --profile=myprofilecalypr-cli supports the newer Gen3 object management upload flow via the
--use-shepherd=true configure flag. When enabled, uploads attempt that API
first and fall back to the older Fence/Indexd path if needed.
Example:
calypr-cli configure \
--profile=myprofile \
--cred=/path/to/credentials.json \
--apiendpoint=https://example.com \
--use-shepherd=trueUploads can also attach public file object metadata with --metadata. The CLI
looks for a sibling file named [filename]_metadata.json.
Example:
calypr-cli upload \
--profile=myprofile \
--upload-path=/path/to/myfile.bam \
--metadataMetadata file shape:
{
"authz": ["/example/authz/resource"],
"aliases": ["example_alias"],
"metadata": {
"any": {
"arbitrary": ["json", "metadata"]
}
}
}The authz list may be required by the target commons. The metadata in this
file is public-facing and should not contain sensitive content.