Last updated: 2026-09-06
orca storage works with the tenant’s storage bucket, the same objects the dashboard shows on its Files page. Keys are slash-separated paths. A key that ends with / denotes a prefix, never an object: put refuses one, and rm deletes everything under it. An omitted [prefix] means the bucket root.
Every subcommand accepts the global flags. rm prompts for confirmation in a terminal; in a script --yes is required or the command refuses (exit code 2).
orca storage info
--json prints the info record with configured: false.
bucket, usedBytes, objectCount, capacityBytes.
orca storage ls
dir or file rows, and each directory row aggregates the size, newest modification time, and object count of everything beneath it. Plain and --json output keep the flat object list.
There is no offset; narrow the prefix to see more.
key, size, lastModified. The --json output is the listing record: prefix, bucket, entries (each with key, size, lastModified, etag), and count.
orca storage browse
ls prints one directory level and returns, browse stays open and navigates the bucket like a filesystem: type to filter the current directory, arrow keys move, Enter opens a directory or shows a file’s details, left or backspace goes to the parent, and esc (or q with an empty filter) exits. Each directory is fetched on entry, --limit objects at a time; when a directory holds more than that the footer marks the view as partial.
browse requires an interactive terminal (stdin and stdout both TTYs). In a pipe it exits with code 2 and points you at orca storage ls. It produces no stdout output and ignores --json.
orca storage get
--output the exact bytes are written to the file, stdout stays empty, and a Saved line goes to stderr. Without it the bytes go to stdout when stdout is a pipe or redirect. In a terminal, text objects are printed as is, but a binary object (base64 on the wire, containing a NUL byte, or carrying a non-text Content-Type) is refused with exit code 2 rather than dumped on screen.
--output takes precedence over --json. With --json and no --output, the object record is printed: key, contentType, size, etag, encoding (text or base64), and content in that encoding.
orca storage put
<key>, overwriting any existing object. A key ending in / or an unreadable file exits with code 2.
The guess covers common text, image, and archive extensions and falls back to
application/octet-stream. The server stores whatever Content-Type is sent.
--json output is the stored object’s record: key, contentType, size, etag.
orca storage rm
<key> ends with /. A prefix delete removes up to 1000 objects per call, the same window ls reads; run it again for larger prefixes.
deleted is the number of objects removed.
Verified against orca-cli
cli-v0.5.0.