CUBSTER Join the waitlist
DOCS / CLI

CLI

@cubster/cli is built on @cubster/assets. Log in with a pasted API key, upload files, and list/delete assets — from a terminal or from an agent, with clean --json output and predictable exit codes. It isn't published to npm yet — see the repo for local usage during development.

$ cubster login      # paste a csk_... key created at app.cubster.dev
$ cubster whoami
$ cubster upload ./hero.png --tags marketing,hero
$ cubster assets ls --type image
$ cubster assets rm <id>
Config & auth

Credentials resolve highest-precedence first: the --key/--base flags, then CUBSTER_API_KEY/CUBSTER_BASE_URL, then the config file (~/.config/cubster/config.json), then the SDK default base URL. cubster login writes that config file owner-only (0600). The full key is never printed, logged, or included in --json output — only its csk_xxxxxxxx… prefix is ever shown.

cubster login

Prompts for a key (or takes --key non-interactively, for CI/agents), verifies it against /me, and stores it. Key management (create/list/revoke) isn't available here on purpose — manage keys at app.cubster.dev.

$ cubster login --key "$CUBSTER_API_KEY"  # non-interactive
cubster whoami

Prints the profile email, the credential's bound workspace, and the base URL in use.

cubster upload <path>

A local file path (no stdin in this version). Flags: --name, --tags a,b, --workspace <id|slug>.

cubster assets ls / rm

ls — a table by default, a JSON array with --json; filter with --type, --search, --tags, --limit. rm <id> prompts for confirmation unless --yes is passed — and defaults to "no" (never deletes) when stdin isn't a TTY and --yes wasn't passed.

$ cubster assets rm abc123 --yes
Exit codes
0 Success
1 Runtime error (network/API failure, missing file, no key configured)
2 Usage error (bad flags, missing argument, unknown command)