{"id":44780847,"url":"https://github.com/tigrisdata/cli","last_synced_at":"2026-04-14T18:01:02.656Z","repository":{"id":338020675,"uuid":"1075274825","full_name":"tigrisdata/cli","owner":"tigrisdata","description":"CLI tool for Tigris","archived":false,"fork":false,"pushed_at":"2026-04-10T10:01:22.000Z","size":995,"stargazers_count":6,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-10T11:26:21.429Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tigrisdata.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-13T09:23:46.000Z","updated_at":"2026-04-10T09:32:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tigrisdata/cli","commit_stats":null,"previous_names":["tigrisdata/cli"],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/tigrisdata/cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigrisdata%2Fcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigrisdata%2Fcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigrisdata%2Fcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigrisdata%2Fcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tigrisdata","download_url":"https://codeload.github.com/tigrisdata/cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigrisdata%2Fcli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31808518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T11:13:53.975Z","status":"ssl_error","status_checked_at":"2026-04-14T11:13:53.299Z","response_time":153,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-16T07:37:08.626Z","updated_at":"2026-04-14T18:01:02.641Z","avatar_url":"https://github.com/tigrisdata.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @tigrisdata/cli\n\nCommand line interface for Tigris object storage.\n\n## Installation\n\n```bash\nnpm install -g @tigrisdata/cli\n```\n\nYou can also install CLI using brew\n\n```sh\nbrew install tigrisdata/tap/tigris\n```\n\n## Usage\n\n```\ntigris \u003ccommand\u003e [flags]\n```\n\nRun `tigris help` to see all available commands, or `tigris \u003ccommand\u003e help` for details on a specific command.\n\n### Core Commands\n\n- `tigris ls [path]` - List all buckets (no arguments) or objects under a bucket/prefix path. Accepts bare names or t3:// URIs\n- `tigris mk \u003cpath\u003e` - Create a bucket (bare name) or a folder inside a bucket (bucket/folder/ with trailing slash)\n- `tigris touch \u003cpath\u003e` - Create an empty (zero-byte) object at the given bucket/key path\n- `tigris cp \u003csrc\u003e \u003cdest\u003e` - Copy files between local filesystem and Tigris, or between paths within Tigris. At least one side must be a remote t3:// path\n- `tigris mv \u003csrc\u003e \u003cdest\u003e` - Move (rename) objects within Tigris. Both source and destination must be remote t3:// paths\n- `tigris rm \u003cpath\u003e` - Remove a bucket, folder, or object from Tigris. A bare bucket name deletes the bucket itself\n- `tigris stat [path]` - Show storage stats (no args), bucket info, or object metadata\n- `tigris presign \u003cpath\u003e` - Generate a presigned URL for temporary access to an object without credentials\n- `tigris bundle \u003cbucket\u003e` - Download multiple objects as a streaming tar archive in a single request. Designed for batch workloads that need many objects without per-object HTTP overhead\n\n### Authentication\n\n- `tigris login` - Start a session via OAuth (default) or temporary credentials. Session state is cleared on logout\n- `tigris logout` - End the current session and clear login state. Credentials saved via 'configure' are kept\n- `tigris whoami` - Print the currently authenticated user, organization, and auth method\n- `tigris configure` - Save access-key credentials to ~/.tigris/config.json for persistent use across all commands\n\n### Other\n\n- `tigris update` - Update the CLI to the latest version\n\n### Resources\n\n- `tigris organizations` - List, create, and switch between organizations. An organization is a workspace that contains your resources like buckets and access keys\n- `tigris access-keys` - Create, list, inspect, delete, and assign roles to access keys. Access keys are credentials used for programmatic API access\n- `tigris credentials` - Test whether your current credentials can reach Tigris and optionally verify access to a specific bucket\n- `tigris buckets` - Create, inspect, update, and delete buckets. Buckets are top-level containers that hold objects\n- `tigris forks` - (Deprecated, use \"buckets create --fork-of\" and \"buckets list --forks-of\") List and create forks\n- `tigris snapshots` - List and take snapshots. A snapshot is a point-in-time, read-only copy of a bucket's state\n- `tigris objects` - Low-level object operations for listing, downloading, uploading, and deleting individual objects in a bucket\n- `tigris iam` - Identity and Access Management - manage policies, users, and permissions\n\n---\n\n## Core Commands\n\n### `ls` | `list`\n\nList all buckets (no arguments) or objects under a bucket/prefix path. Accepts bare names or t3:// URIs\n\n```\ntigris ls [path] [flags]\n```\n\n| Flag                            | Description                                                                                                                                   |\n| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |\n| `-snapshot, --snapshot-version` | Read from a specific bucket snapshot. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464) |\n| `--format`                      | Output format                                                                                                                                 |\n| `--limit`                       | Maximum number of items to return per page                                                                                                    |\n| `-pt, --page-token`             | Pagination token from a previous request to fetch the next page                                                                               |\n\n**Examples:**\n\n```bash\ntigris ls\ntigris ls my-bucket\ntigris ls my-bucket/images/\ntigris ls t3://my-bucket/prefix/\n```\n\n### `mk` | `create`\n\nCreate a bucket (bare name) or a folder inside a bucket (bucket/folder/ with trailing slash)\n\n```\ntigris mk \u003cpath\u003e [flags]\n```\n\n| Flag                              | Description                                                                                                                                                                     |\n| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `-a, --access`                    | Access level (only applies when creating a bucket)                                                                                                                              |\n| `--public`                        | Shorthand for --access public (only applies when creating a bucket)                                                                                                             |\n| `-s, --enable-snapshots`          | Enable snapshots for the bucket (only applies when creating a bucket)                                                                                                           |\n| `-t, --default-tier`              | Default storage tier (only applies when creating a bucket)                                                                                                                      |\n| `-c, --consistency`               | (Deprecated, use --locations) Consistency level (only applies when creating a bucket)                                                                                           |\n| `-r, --region`                    | (Deprecated, use --locations) Region (only applies when creating a bucket)                                                                                                      |\n| `-l, --locations`                 | Location for the bucket (only applies when creating a bucket)                                                                                                                   |\n| `-fork, --fork-of`                | Create this bucket as a fork (copy-on-write clone) of the named source bucket                                                                                                   |\n| `-source-snap, --source-snapshot` | Fork from a specific snapshot of the source bucket. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464). Requires --fork-of |\n\n**Examples:**\n\n```bash\ntigris mk my-bucket\ntigris mk my-bucket --access public --region iad\ntigris mk my-bucket/images/\ntigris mk t3://my-bucket\ntigris mk my-fork --fork-of my-bucket\ntigris mk my-fork --fork-of my-bucket --source-snapshot 1765889000501544464\n```\n\n### `touch`\n\nCreate an empty (zero-byte) object at the given bucket/key path\n\n```\ntigris touch \u003cpath\u003e\n```\n\n**Examples:**\n\n```bash\ntigris touch my-bucket/placeholder.txt\ntigris touch t3://my-bucket/logs/\n```\n\n### `cp` | `copy`\n\nCopy files between local filesystem and Tigris, or between paths within Tigris. At least one side must be a remote t3:// path\n\n```\ntigris cp \u003csrc\u003e \u003cdest\u003e [flags]\n```\n\n| Flag              | Description                  |\n| ----------------- | ---------------------------- |\n| `-r, --recursive` | Copy directories recursively |\n\n**Examples:**\n\n```bash\ntigris cp ./file.txt t3://my-bucket/file.txt\ntigris cp t3://my-bucket/file.txt ./local-copy.txt\ntigris cp t3://my-bucket/src/ t3://my-bucket/dest/ -r\ntigris cp ./images/ t3://my-bucket/images/ -r\n```\n\n### `mv` | `move`\n\nMove (rename) objects within Tigris. Both source and destination must be remote t3:// paths\n\n```\ntigris mv \u003csrc\u003e \u003cdest\u003e [flags]\n```\n\n| Flag              | Description                                 |\n| ----------------- | ------------------------------------------- |\n| `-r, --recursive` | Move directories recursively                |\n| `-f, --force`     | Skip confirmation prompts (alias for --yes) |\n\n**Examples:**\n\n```bash\ntigris mv t3://my-bucket/old.txt t3://my-bucket/new.txt -f\ntigris mv t3://my-bucket/old-dir/ t3://my-bucket/new-dir/ -rf\ntigris mv my-bucket/a.txt my-bucket/b.txt -f\n```\n\n### `rm` | `remove`\n\nRemove a bucket, folder, or object from Tigris. A bare bucket name deletes the bucket itself\n\n```\ntigris rm \u003cpath\u003e [flags]\n```\n\n| Flag              | Description                                 |\n| ----------------- | ------------------------------------------- |\n| `-r, --recursive` | Remove directories recursively              |\n| `-f, --force`     | Skip confirmation prompts (alias for --yes) |\n\n**Examples:**\n\n```bash\ntigris rm t3://my-bucket/file.txt -f\ntigris rm t3://my-bucket/folder/ -rf\ntigris rm t3://my-bucket -f\ntigris rm \"t3://my-bucket/logs/*.tmp\" -f\n```\n\n### `stat`\n\nShow storage stats (no args), bucket info, or object metadata\n\n```\ntigris stat [path] [flags]\n```\n\n| Flag                            | Description                                                                                                                                   |\n| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |\n| `--format`                      | Output format                                                                                                                                 |\n| `-snapshot, --snapshot-version` | Read from a specific bucket snapshot. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464) |\n\n**Examples:**\n\n```bash\ntigris stat\ntigris stat t3://my-bucket\ntigris stat t3://my-bucket/my-object.json\n```\n\n### `presign`\n\nGenerate a presigned URL for temporary access to an object without credentials\n\n```\ntigris presign \u003cpath\u003e [flags]\n```\n\n| Flag               | Description                                                                                   |\n| ------------------ | --------------------------------------------------------------------------------------------- |\n| `-m, --method`     | HTTP method for the presigned URL                                                             |\n| `-e, --expires-in` | URL expiry time in seconds                                                                    |\n| `--access-key`     | Access key ID to use for signing. If not provided, resolved from credentials or auto-selected |\n| `--select`         | Interactively select an access key (OAuth only)                                               |\n| `--format`         | Output format                                                                                 |\n\n**Examples:**\n\n```bash\ntigris presign my-bucket/file.txt\ntigris presign t3://my-bucket/report.pdf --method put --expires-in 7200\ntigris presign my-bucket/image.png --format json\ntigris presign my-bucket/data.csv --access-key tid_AaBb\n```\n\n### `bundle`\n\nDownload multiple objects as a streaming tar archive in a single request. Designed for batch workloads that need many objects without per-object HTTP overhead\n\n```\ntigris bundle \u003cbucket\u003e [flags]\n```\n\n| Flag            | Description                                                                                                                                                                   |\n| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `-k, --keys`    | Comma-separated object keys, or path to a file with one key per line. If a local file matching the value exists, it is read as a keys file. If omitted, reads keys from stdin |\n| `-o, --output`  | Output file path. Defaults to stdout (for piping)                                                                                                                             |\n| `--compression` | Compression algorithm for the archive. Auto-detected from output file extension when not specified                                                                            |\n| `--on-error`    | How to handle missing objects. 'skip' omits them, 'fail' aborts the request                                                                                                   |\n\n**Examples:**\n\n```bash\ntigris bundle my-bucket --keys key1.jpg,key2.jpg --output archive.tar\ntigris bundle my-bucket --keys keys.txt --output archive.tar\ntigris bundle t3://my-bucket --keys keys.txt --compression gzip -o archive.tar.gz\ncat keys.txt | tigris bundle my-bucket \u003e archive.tar\n```\n\n## Authentication\n\n### `login` | `l`\n\nStart a session via OAuth (default) or temporary credentials. Session state is cleared on logout\n\n| Command                 | Description                                                                                |\n| ----------------------- | ------------------------------------------------------------------------------------------ |\n| `login select`          | Choose how to login - OAuth (browser) or credentials (access key)                          |\n| `login oauth` (o)       | Login via browser using OAuth2 device flow. Best for interactive use                       |\n| `login credentials` (c) | Login with an access key and secret. Creates a temporary session that is cleared on logout |\n\n#### `login select`\n\n```\ntigris login select\n```\n\n#### `login oauth`\n\n```\ntigris login oauth\n```\n\n**Examples:**\n\n```bash\ntigris login oauth\n```\n\n#### `login credentials`\n\n```\ntigris login credentials [flags]\n```\n\n| Flag                       | Description                                          |\n| -------------------------- | ---------------------------------------------------- |\n| `-key, --access-key`       | Your access key ID (will prompt if not provided)     |\n| `-secret, --access-secret` | Your secret access key (will prompt if not provided) |\n\n**Examples:**\n\n```bash\ntigris login credentials --access-key tid_AaBb --access-secret tsec_XxYy\ntigris login credentials\n```\n\n### `logout`\n\nEnd the current session and clear login state. Credentials saved via 'configure' are kept\n\n```\ntigris logout\n```\n\n**Examples:**\n\n```bash\ntigris logout\n```\n\n### `whoami` | `w`\n\nPrint the currently authenticated user, organization, and auth method\n\n```\ntigris whoami\n```\n\n**Examples:**\n\n```bash\ntigris whoami\n```\n\n### `configure` | `c`\n\nSave access-key credentials to ~/.tigris/config.json for persistent use across all commands\n\n```\ntigris configure [flags]\n```\n\n| Flag                       | Description                                           |\n| -------------------------- | ----------------------------------------------------- |\n| `-key, --access-key`       | Your Tigris access key ID                             |\n| `-secret, --access-secret` | Your Tigris secret access key                         |\n| `-e, --endpoint`           | Tigris API endpoint (default: https://t3.storage.dev) |\n\n**Examples:**\n\n```bash\ntigris configure --access-key tid_AaBb --access-secret tsec_XxYy\ntigris configure --endpoint https://custom.endpoint.dev\n```\n\n## Resources\n\n### `organizations` | `orgs`\n\nList, create, and switch between organizations. An organization is a workspace that contains your resources like buckets and access keys\n\n| Command                    | Description                                                                 |\n| -------------------------- | --------------------------------------------------------------------------- |\n| `organizations list` (l)   | List all organizations you belong to and interactively select one as active |\n| `organizations create` (c) | Create a new organization with the given name                               |\n| `organizations select` (s) | Set the named organization as your active org for all subsequent commands   |\n\n#### `organizations list`\n\n```\ntigris organizations list [flags]\n```\n\n| Flag           | Description                     |\n| -------------- | ------------------------------- |\n| `--format`     | Output format (default: select) |\n| `-i, --select` | Interactive selection mode      |\n\n**Examples:**\n\n```bash\ntigris orgs list\ntigris orgs list --format json\n```\n\n#### `organizations create`\n\n```\ntigris organizations create \u003cname\u003e\n```\n\n**Examples:**\n\n```bash\ntigris orgs create my-org\n```\n\n#### `organizations select`\n\n```\ntigris organizations select \u003cname\u003e\n```\n\n**Examples:**\n\n```bash\ntigris orgs select my-org\n```\n\n### `access-keys` | `keys`\n\nCreate, list, inspect, delete, and assign roles to access keys. Access keys are credentials used for programmatic API access\n\n| Command                          | Description                                                                                                                         |\n| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| `access-keys list` (l)           | List all access keys in the current organization                                                                                    |\n| `access-keys create` (c)         | Create a new access key with the given name. Returns the key ID and secret (shown only once)                                        |\n| `access-keys delete` (d)         | Permanently delete an access key by its ID. This revokes all access immediately                                                     |\n| `access-keys get` (g)            | Show details for an access key including its name, creation date, and assigned bucket roles                                         |\n| `access-keys assign` (a)         | Assign per-bucket roles to an access key. Pair each --bucket with a --role (Editor or ReadOnly), or use --admin for org-wide access |\n| `access-keys rotate` (r)         | Rotate an access key's secret. The current secret is immediately invalidated and a new one is returned (shown only once)            |\n| `access-keys attach-policy` (ap) | Attach an IAM policy to an access key. If no policy ARN is provided, shows interactive selection of available policies              |\n| `access-keys detach-policy` (dp) | Detach an IAM policy from an access key. If no policy ARN is provided, shows interactive selection of attached policies             |\n| `access-keys list-policies` (lp) | List all IAM policies attached to an access key                                                                                     |\n\n#### `access-keys list`\n\n```\ntigris access-keys list [flags]\n```\n\n| Flag                | Description                                                     |\n| ------------------- | --------------------------------------------------------------- |\n| `--format`          | Output format (default: table)                                  |\n| `--limit`           | Maximum number of items to return per page                      |\n| `-pt, --page-token` | Pagination token from a previous request to fetch the next page |\n\n**Examples:**\n\n```bash\ntigris access-keys list\n```\n\n#### `access-keys create`\n\n```\ntigris access-keys create \u003cname\u003e\n```\n\n**Examples:**\n\n```bash\ntigris access-keys create my-ci-key\n```\n\n#### `access-keys delete`\n\n```\ntigris access-keys delete \u003cid\u003e [flags]\n```\n\n| Flag      | Description                                 |\n| --------- | ------------------------------------------- |\n| `--force` | Skip confirmation prompts (alias for --yes) |\n\n**Examples:**\n\n```bash\ntigris access-keys delete tid_AaBbCcDdEeFf --yes\n```\n\n#### `access-keys get`\n\n```\ntigris access-keys get \u003cid\u003e\n```\n\n**Examples:**\n\n```bash\ntigris access-keys get tid_AaBbCcDdEeFf\n```\n\n#### `access-keys assign`\n\n```\ntigris access-keys assign \u003cid\u003e [flags]\n```\n\n| Flag             | Description                                                                                                   |\n| ---------------- | ------------------------------------------------------------------------------------------------------------- |\n| `-b, --bucket`   | Bucket name (can specify multiple, comma-separated). Each bucket is paired positionally with a --role value   |\n| `-r, --role`     | Role to assign (can specify multiple, comma-separated). Each role pairs with the corresponding --bucket value |\n| `--admin`        | Grant admin access to all buckets in the organization                                                         |\n| `--revoke-roles` | Revoke all bucket roles from the access key                                                                   |\n\n**Examples:**\n\n```bash\ntigris access-keys assign tid_AaBb --bucket my-bucket --role Editor\ntigris access-keys assign tid_AaBb --bucket a,b --role Editor,ReadOnly\ntigris access-keys assign tid_AaBb --admin\ntigris access-keys assign tid_AaBb --revoke-roles\n```\n\n#### `access-keys rotate`\n\n```\ntigris access-keys rotate \u003cid\u003e [flags]\n```\n\n| Flag      | Description                                 |\n| --------- | ------------------------------------------- |\n| `--force` | Skip confirmation prompts (alias for --yes) |\n\n**Examples:**\n\n```bash\ntigris access-keys rotate tid_AaBbCcDdEeFf --yes\n```\n\n#### `access-keys attach-policy`\n\n```\ntigris access-keys attach-policy \u003cid\u003e [flags]\n```\n\n| Flag           | Description                 |\n| -------------- | --------------------------- |\n| `--policy-arn` | ARN of the policy to attach |\n\n**Examples:**\n\n```bash\ntigris access-keys attach-policy tid_AaBb --policy-arn arn:aws:iam::org_id:policy/my-policy\ntigris access-keys attach-policy tid_AaBb\n```\n\n#### `access-keys detach-policy`\n\n```\ntigris access-keys detach-policy \u003cid\u003e [flags]\n```\n\n| Flag           | Description                                 |\n| -------------- | ------------------------------------------- |\n| `--policy-arn` | ARN of the policy to detach                 |\n| `--force`      | Skip confirmation prompts (alias for --yes) |\n\n**Examples:**\n\n```bash\ntigris access-keys detach-policy tid_AaBb --policy-arn arn:aws:iam::org_id:policy/my-policy --yes\ntigris access-keys detach-policy tid_AaBb\n```\n\n#### `access-keys list-policies`\n\n```\ntigris access-keys list-policies \u003cid\u003e [flags]\n```\n\n| Flag                | Description                                                     |\n| ------------------- | --------------------------------------------------------------- |\n| `--format`          | Output format (default: table)                                  |\n| `--limit`           | Maximum number of items to return per page                      |\n| `-pt, --page-token` | Pagination token from a previous request to fetch the next page |\n\n**Examples:**\n\n```bash\ntigris access-keys list-policies tid_AaBbCcDdEeFf\n```\n\n### `credentials` | `creds`\n\nTest whether your current credentials can reach Tigris and optionally verify access to a specific bucket\n\n| Command                | Description                                                                              |\n| ---------------------- | ---------------------------------------------------------------------------------------- |\n| `credentials test` (t) | Verify that current credentials are valid. Optionally checks access to a specific bucket |\n\n#### `credentials test`\n\n```\ntigris credentials test [flags]\n```\n\n| Flag           | Description                                   |\n| -------------- | --------------------------------------------- |\n| `-b, --bucket` | Bucket name to test access against (optional) |\n\n**Examples:**\n\n```bash\ntigris credentials test\ntigris credentials test --bucket my-bucket\n```\n\n### Buckets\n\nBuckets are containers for objects. You can also create forks and snapshots of buckets.\n\n#### `buckets` | `b`\n\nCreate, inspect, update, and delete buckets. Buckets are top-level containers that hold objects\n\n| Command                     | Description                                                                                                                                             |\n| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `buckets list` (l)          | List all buckets in the current organization                                                                                                            |\n| `buckets create` (c)        | Create a new bucket with optional access, tier, and location settings                                                                                   |\n| `buckets get` (g)           | Show details for a bucket including access level, region, tier, and custom domain                                                                       |\n| `buckets delete` (d)        | Delete one or more buckets by name. The bucket must be empty or delete-protection must be off                                                           |\n| `buckets set` (s)           | Update settings on an existing bucket such as access level, location, caching, or custom domain                                                         |\n| `buckets set-ttl`           | Configure object expiration (TTL) on a bucket. Objects expire after a number of days or on a specific date                                              |\n| `buckets set-locations`     | Set the data locations for a bucket                                                                                                                     |\n| `buckets set-migration`     | Configure data migration from an external S3-compatible source bucket. Tigris will pull objects on demand from the source                               |\n| `buckets set-transition`    | Configure a lifecycle transition rule on a bucket. Automatically move objects to a different storage class after a number of days or on a specific date |\n| `buckets set-notifications` | Configure object event notifications on a bucket. Sends webhook requests to a URL when objects are created, updated, or deleted                         |\n| `buckets set-cors`          | Configure CORS rules on a bucket. Each invocation adds a rule unless --override or --reset is used                                                      |\n\n##### `buckets list`\n\n```\ntigris buckets list [flags]\n```\n\n| Flag                | Description                                                     |\n| ------------------- | --------------------------------------------------------------- |\n| `--format`          | Output format (default: table)                                  |\n| `--forks-of`        | Only list buckets that are forks of the named source bucket     |\n| `--limit`           | Maximum number of items to return per page                      |\n| `-pt, --page-token` | Pagination token from a previous request to fetch the next page |\n\n**Examples:**\n\n```bash\ntigris buckets list\ntigris buckets list --format json\ntigris buckets list --forks-of my-bucket\n```\n\n##### `buckets create`\n\n```\ntigris buckets create [name] [flags]\n```\n\n| Flag                              | Description                                                                                                                                                                     |\n| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `-a, --access`                    | Access level (default: private)                                                                                                                                                 |\n| `--public`                        | Shorthand for --access public                                                                                                                                                   |\n| `-s, --enable-snapshots`          | Enable snapshots for the bucket (default: false)                                                                                                                                |\n| `-t, --default-tier`              | Choose the default tier for the bucket (default: STANDARD)                                                                                                                      |\n| `-c, --consistency`               | (Deprecated, use --locations) Choose the consistency level for the bucket                                                                                                       |\n| `-r, --region`                    | (Deprecated, use --locations) Region                                                                                                                                            |\n| `-l, --locations`                 | Location for the bucket (default: global)                                                                                                                                       |\n| `-fork, --fork-of`                | Create this bucket as a fork (copy-on-write clone) of the named source bucket                                                                                                   |\n| `-source-snap, --source-snapshot` | Fork from a specific snapshot of the source bucket. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464). Requires --fork-of |\n\n**Examples:**\n\n```bash\ntigris buckets create my-bucket\ntigris buckets create my-bucket --access public --locations iad\ntigris buckets create my-bucket --enable-snapshots --default-tier STANDARD_IA\ntigris buckets create my-fork --fork-of my-bucket\ntigris buckets create my-fork --fork-of my-bucket --source-snapshot 1765889000501544464\n```\n\n##### `buckets get`\n\n```\ntigris buckets get \u003cname\u003e [flags]\n```\n\n| Flag       | Description                    |\n| ---------- | ------------------------------ |\n| `--format` | Output format (default: table) |\n\n**Examples:**\n\n```bash\ntigris buckets get my-bucket\n```\n\n##### `buckets delete`\n\n```\ntigris buckets delete \u003cname\u003e [flags]\n```\n\n| Flag      | Description                                 |\n| --------- | ------------------------------------------- |\n| `--force` | Skip confirmation prompts (alias for --yes) |\n\n**Examples:**\n\n```bash\ntigris buckets delete my-bucket --yes\ntigris buckets delete bucket-a,bucket-b --yes\n```\n\n##### `buckets set`\n\n```\ntigris buckets set \u003cname\u003e [flags]\n```\n\n| Flag                          | Description                                                                               |\n| ----------------------------- | ----------------------------------------------------------------------------------------- |\n| `--access`                    | Bucket access level                                                                       |\n| `--region`                    | (Deprecated, use --locations) Allowed regions (can specify multiple)                      |\n| `--locations`                 | Bucket location (see https://www.tigrisdata.com/docs/buckets/locations/ for more details) |\n| `--allow-object-acl`          | Enable object-level ACL                                                                   |\n| `--disable-directory-listing` | Disable directory listing                                                                 |\n| `--cache-control`             | Default cache-control header value                                                        |\n| `--custom-domain`             | Custom domain for the bucket                                                              |\n| `--enable-delete-protection`  | Enable delete protection                                                                  |\n| `--enable-additional-headers` | Enable additional HTTP headers (X-Content-Type-Options nosniff)                           |\n\n**Examples:**\n\n```bash\ntigris buckets set my-bucket --access public\ntigris buckets set my-bucket --locations iad,fra --cache-control 'max-age=3600'\ntigris buckets set my-bucket --custom-domain assets.example.com\n```\n\n##### `buckets set-ttl`\n\n```\ntigris buckets set-ttl \u003cname\u003e [flags]\n```\n\n| Flag         | Description                                              |\n| ------------ | -------------------------------------------------------- |\n| `-d, --days` | Expire objects after this many days                      |\n| `--date`     | Expire objects on this date (ISO-8601, e.g. 2026-06-01)  |\n| `--enable`   | Enable TTL on the bucket (uses existing lifecycle rules) |\n| `--disable`  | Disable TTL on the bucket                                |\n\n**Examples:**\n\n```bash\ntigris buckets set-ttl my-bucket --days 30\ntigris buckets set-ttl my-bucket --date 2026-06-01\ntigris buckets set-ttl my-bucket --disable\n```\n\n##### `buckets set-locations`\n\n```\ntigris buckets set-locations \u003cname\u003e [flags]\n```\n\n| Flag              | Description     |\n| ----------------- | --------------- |\n| `-l, --locations` | Bucket location |\n\n**Examples:**\n\n```bash\ntigris buckets set-locations my-bucket --locations iad\ntigris buckets set-locations my-bucket --locations iad,fra\ntigris buckets set-locations my-bucket --locations global\n```\n\n##### `buckets set-migration`\n\n```\ntigris buckets set-migration \u003cname\u003e [flags]\n```\n\n| Flag                    | Description                                                     |\n| ----------------------- | --------------------------------------------------------------- |\n| `-b, --bucket`          | Name of the source bucket to migrate from                       |\n| `-e, --endpoint`        | Endpoint URL of the source S3-compatible service                |\n| `-r, --region`          | Region of the source bucket                                     |\n| `-key, --access-key`    | Access key for the source bucket                                |\n| `-secret, --secret-key` | Secret key for the source bucket                                |\n| `--write-through`       | Enable write-through mode (writes go to both source and Tigris) |\n| `--disable`             | Disable migration and clear all migration settings              |\n\n**Examples:**\n\n```bash\ntigris buckets set-migration my-bucket --bucket source-bucket --endpoint https://s3.amazonaws.com --region us-east-1 --access-key AKIA... --secret-key wJal...\ntigris buckets set-migration my-bucket --bucket source-bucket --endpoint https://s3.amazonaws.com --region us-east-1 --access-key AKIA... --secret-key wJal... --write-through\ntigris buckets set-migration my-bucket --disable\n```\n\n##### `buckets set-transition`\n\n```\ntigris buckets set-transition \u003cname\u003e [flags]\n```\n\n| Flag                  | Description                                                 |\n| --------------------- | ----------------------------------------------------------- |\n| `-s, --storage-class` | Target storage class to transition objects to               |\n| `-d, --days`          | Transition objects after this many days                     |\n| `--date`              | Transition objects on this date (ISO-8601, e.g. 2026-06-01) |\n| `--enable`            | Enable lifecycle transition rules on the bucket             |\n| `--disable`           | Disable lifecycle transition rules on the bucket            |\n\n**Examples:**\n\n```bash\ntigris buckets set-transition my-bucket --storage-class STANDARD_IA --days 30\ntigris buckets set-transition my-bucket --storage-class GLACIER --date 2026-06-01\ntigris buckets set-transition my-bucket --enable\ntigris buckets set-transition my-bucket --disable\n```\n\n##### `buckets set-notifications`\n\n```\ntigris buckets set-notifications \u003cname\u003e [flags]\n```\n\n| Flag           | Description                                                                  |\n| -------------- | ---------------------------------------------------------------------------- |\n| `-u, --url`    | Webhook URL to send notifications to (must be http or https)                 |\n| `-f, --filter` | SQL WHERE clause to filter events by key (e.g. WHERE `key` REGEXP \"^images\") |\n| `-t, --token`  | Token for webhook authentication                                             |\n| `--username`   | Username for basic webhook authentication                                    |\n| `--password`   | Password for basic webhook authentication                                    |\n| `--enable`     | Enable notifications on the bucket (uses existing config)                    |\n| `--disable`    | Disable notifications on the bucket (preserves existing config)              |\n| `--reset`      | Clear all notification settings on the bucket                                |\n\n**Examples:**\n\n```bash\ntigris buckets set-notifications my-bucket --url https://example.com/webhook\ntigris buckets set-notifications my-bucket --url https://example.com/webhook --token secret123\ntigris buckets set-notifications my-bucket --url https://example.com/webhook --username admin --password secret\ntigris buckets set-notifications my-bucket --url https://example.com/webhook --filter \"WHERE `key` REGEXP \\\"^images\\\"\"\ntigris buckets set-notifications my-bucket --enable\ntigris buckets set-notifications my-bucket --disable\ntigris buckets set-notifications my-bucket --reset\n```\n\n##### `buckets set-cors`\n\n```\ntigris buckets set-cors \u003cname\u003e [flags]\n```\n\n| Flag               | Description                                                |\n| ------------------ | ---------------------------------------------------------- |\n| `-o, --origins`    | Allowed origins (comma-separated, or '\\*' for all)         |\n| `-m, --methods`    | Allowed HTTP methods (comma-separated, e.g. GET,POST,PUT)  |\n| `--headers`        | Allowed request headers (comma-separated, or '\\*' for all) |\n| `--expose-headers` | Response headers to expose (comma-separated)               |\n| `--max-age`        | Preflight cache duration in seconds (default: 3600)        |\n| `--override`       | Replace all existing CORS rules instead of appending       |\n| `--reset`          | Clear all CORS rules on the bucket                         |\n\n**Examples:**\n\n```bash\ntigris buckets set-cors my-bucket --origins '*' --methods GET,HEAD\ntigris buckets set-cors my-bucket --origins https://example.com --methods GET,POST --headers Content-Type,Authorization --max-age 3600\ntigris buckets set-cors my-bucket --origins https://example.com --override\ntigris buckets set-cors my-bucket --reset\n```\n\n#### `forks` | `f`\n\n(Deprecated, use \"buckets create --fork-of\" and \"buckets list --forks-of\") List and create forks\n\n| Command            | Description                                                                                               |\n| ------------------ | --------------------------------------------------------------------------------------------------------- |\n| `forks list` (l)   | (Deprecated, use \"buckets list --forks-of\") List all forks created from the given source bucket           |\n| `forks create` (c) | (Deprecated, use \"buckets create --fork-of\") Create a new fork (copy-on-write clone) of the source bucket |\n\n##### `forks list`\n\n```\ntigris forks list \u003cname\u003e [flags]\n```\n\n| Flag       | Description                    |\n| ---------- | ------------------------------ |\n| `--format` | Output format (default: table) |\n\n**Examples:**\n\n```bash\ntigris forks list my-bucket\ntigris forks list my-bucket --format json\n```\n\n##### `forks create`\n\n```\ntigris forks create \u003cname\u003e \u003cfork-name\u003e [flags]\n```\n\n| Flag             | Description                                                                                                                                   |\n| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |\n| `-s, --snapshot` | Create fork from a specific snapshot. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464) |\n\n**Examples:**\n\n```bash\ntigris forks create my-bucket my-fork\ntigris forks create my-bucket my-fork --snapshot 1765889000501544464\n```\n\n#### `snapshots` | `s`\n\nList and take snapshots. A snapshot is a point-in-time, read-only copy of a bucket's state\n\n| Command              | Description                                                                                   |\n| -------------------- | --------------------------------------------------------------------------------------------- |\n| `snapshots list` (l) | List all snapshots for the given bucket, ordered by creation time                             |\n| `snapshots take` (t) | Take a new snapshot of the bucket's current state. Optionally provide a name for the snapshot |\n\n##### `snapshots list`\n\n```\ntigris snapshots list \u003cname\u003e [flags]\n```\n\n| Flag                | Description                                                     |\n| ------------------- | --------------------------------------------------------------- |\n| `--format`          | Output format (default: table)                                  |\n| `--limit`           | Maximum number of items to return per page                      |\n| `-pt, --page-token` | Pagination token from a previous request to fetch the next page |\n\n**Examples:**\n\n```bash\ntigris snapshots list my-bucket\ntigris snapshots list my-bucket --format json\n```\n\n##### `snapshots take`\n\n```\ntigris snapshots take \u003cname\u003e [snapshot-name]\n```\n\n**Examples:**\n\n```bash\ntigris snapshots take my-bucket\ntigris snapshots take my-bucket my-snapshot\n```\n\n### `objects` | `o`\n\nLow-level object operations for listing, downloading, uploading, and deleting individual objects in a bucket\n\n| Command              | Description                                                                                      |\n| -------------------- | ------------------------------------------------------------------------------------------------ |\n| `objects list` (l)   | List objects in a bucket, optionally filtered by a key prefix                                    |\n| `objects get` (g)    | Download an object by key. Prints to stdout by default, or saves to a file with --output         |\n| `objects put` (p)    | Upload a local file as an object. Content-type is auto-detected from extension unless overridden |\n| `objects delete` (d) | Delete one or more objects by key from the given bucket                                          |\n| `objects set` (s)    | Update settings on an existing object such as access level                                       |\n| `objects info` (i)   | Show metadata for an object (content type, size, modified date)                                  |\n\n#### `objects list`\n\n```\ntigris objects list \u003cbucket\u003e [flags]\n```\n\n| Flag                            | Description                                                                                                                                   |\n| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |\n| `-p, --prefix`                  | Filter objects by key prefix (e.g. \"images/\" to list only images)                                                                             |\n| `--format`                      | Output format (default: table)                                                                                                                |\n| `-snapshot, --snapshot-version` | Read from a specific bucket snapshot. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464) |\n| `--limit`                       | Maximum number of items to return per page                                                                                                    |\n| `-pt, --page-token`             | Pagination token from a previous request to fetch the next page                                                                               |\n\n**Examples:**\n\n```bash\ntigris objects list my-bucket\ntigris objects list t3://my-bucket\ntigris objects list t3://my-bucket/images/\ntigris objects list my-bucket --prefix images/\ntigris objects list my-bucket --format json\n```\n\n#### `objects get`\n\n```\ntigris objects get \u003cbucket\u003e [key] [flags]\n```\n\n| Flag                            | Description                                                                                                                                   |\n| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |\n| `-o, --output`                  | Output file path (if not specified, prints to stdout)                                                                                         |\n| `-m, --mode`                    | Response mode: \"string\" loads into memory, \"stream\" writes in chunks (auto-detected from extension if not specified)                          |\n| `-snapshot, --snapshot-version` | Read from a specific bucket snapshot. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464) |\n\n**Examples:**\n\n```bash\ntigris objects get my-bucket config.json\ntigris objects get t3://my-bucket/config.json\ntigris objects get my-bucket archive.zip --output ./archive.zip --mode stream\n```\n\n#### `objects put`\n\n```\ntigris objects put \u003cbucket\u003e [key] [file] [flags]\n```\n\n| Flag                 | Description                                            |\n| -------------------- | ------------------------------------------------------ |\n| `-a, --access`       | Access level (default: private)                        |\n| `-t, --content-type` | Content type (auto-detected from extension if omitted) |\n| `--format`           | Output format (default: table)                         |\n\n**Examples:**\n\n```bash\ntigris objects put my-bucket report.pdf ./report.pdf\ntigris objects put t3://my-bucket/report.pdf ./report.pdf\ntigris objects put my-bucket logo.png ./logo.png --access public --content-type image/png\n```\n\n#### `objects delete`\n\n```\ntigris objects delete \u003cbucket\u003e [key] [flags]\n```\n\n| Flag      | Description                                 |\n| --------- | ------------------------------------------- |\n| `--force` | Skip confirmation prompts (alias for --yes) |\n\n**Examples:**\n\n```bash\ntigris objects delete my-bucket old-file.txt --yes\ntigris objects delete t3://my-bucket/old-file.txt --yes\ntigris objects delete my-bucket file-a.txt,file-b.txt --yes\n```\n\n#### `objects set`\n\n```\ntigris objects set \u003cbucket\u003e [key] [flags]\n```\n\n| Flag            | Description                    |\n| --------------- | ------------------------------ |\n| `-a, --access`  | Access level                   |\n| `-n, --new-key` | Rename the object to a new key |\n\n**Examples:**\n\n```bash\ntigris objects set my-bucket my-file.txt --access public\ntigris objects set t3://my-bucket/my-file.txt --access public\ntigris objects set my-bucket my-file.txt --access private\n```\n\n#### `objects info`\n\n```\ntigris objects info \u003cbucket\u003e [key] [flags]\n```\n\n| Flag                            | Description                          |\n| ------------------------------- | ------------------------------------ |\n| `--format`                      | Output format (default: table)       |\n| `-snapshot, --snapshot-version` | Read from a specific bucket snapshot |\n\n**Examples:**\n\n```bash\ntigris objects info my-bucket report.pdf\ntigris objects info t3://my-bucket/report.pdf\ntigris objects info my-bucket report.pdf --format json\n```\n\n### `iam`\n\nIdentity and Access Management - manage policies, users, and permissions\n\n| Command            | Description                                                      |\n| ------------------ | ---------------------------------------------------------------- |\n| `iam policies` (p) | Manage IAM policies. Policies define permissions for access keys |\n| `iam users` (u)    | Manage organization users and invitations                        |\n\n#### `iam policies` | `p`\n\nManage IAM policies. Policies define permissions for access keys\n\n| Command                          | Description                                                                                                                                                                |\n| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `iam policies list` (l)          | List all policies in the current organization                                                                                                                              |\n| `iam policies get` (g)           | Show details for a policy including its document and attached users. If no ARN provided, shows interactive selection                                                       |\n| `iam policies create` (c)        | Create a new policy with the given name and policy document. Document can be provided via file, inline JSON, or stdin                                                      |\n| `iam policies edit` (e)          | Update an existing policy's document. Document can be provided via file, inline JSON, or stdin. If no ARN provided, shows interactive selection                            |\n| `iam policies delete` (d)        | Delete a policy. If no ARN provided, shows interactive selection                                                                                                           |\n| `iam policies link-key` (lnk)    | Link an access key to a policy. If no policy ARN is provided, shows interactive selection. If no access key ID is provided, shows interactive selection of unlinked keys   |\n| `iam policies unlink-key` (ulnk) | Unlink an access key from a policy. If no policy ARN is provided, shows interactive selection. If no access key ID is provided, shows interactive selection of linked keys |\n| `iam policies list-keys` (lk)    | List all access keys attached to a policy. If no policy ARN is provided, shows interactive selection                                                                       |\n\n##### `iam policies list`\n\n```\ntigris iam policies list [flags]\n```\n\n| Flag                | Description                                                     |\n| ------------------- | --------------------------------------------------------------- |\n| `--format`          | Output format (default: table)                                  |\n| `--limit`           | Maximum number of items to return per page                      |\n| `-pt, --page-token` | Pagination token from a previous request to fetch the next page |\n\n**Examples:**\n\n```bash\ntigris iam policies list\n```\n\n##### `iam policies get`\n\n```\ntigris iam policies get [resource] [flags]\n```\n\n| Flag       | Description                    |\n| ---------- | ------------------------------ |\n| `--format` | Output format (default: table) |\n\n**Examples:**\n\n```bash\ntigris iam policies get\ntigris iam policies get arn:aws:iam::org_id:policy/my-policy\n```\n\n##### `iam policies create`\n\n```\ntigris iam policies create \u003cname\u003e [flags]\n```\n\n| Flag             | Description                                                                   |\n| ---------------- | ----------------------------------------------------------------------------- |\n| `-d, --document` | Policy document (JSON file path or inline JSON). If omitted, reads from stdin |\n| `--description`  | Policy description                                                            |\n\n**Examples:**\n\n```bash\ntigris iam policies create my-policy --document policy.json\ntigris iam policies create my-policy --document '{\"Version\":\"2012-10-17\",\"Statement\":[...]}'\ncat policy.json | tigris iam policies create my-policy\n```\n\n##### `iam policies edit`\n\n```\ntigris iam policies edit [resource] [flags]\n```\n\n| Flag             | Description                                                                       |\n| ---------------- | --------------------------------------------------------------------------------- |\n| `-d, --document` | New policy document (JSON file path or inline JSON). If omitted, reads from stdin |\n| `--description`  | Update policy description                                                         |\n\n**Examples:**\n\n```bash\ntigris iam policies edit --document policy.json\ntigris iam policies edit arn:aws:iam::org_id:policy/my-policy --document policy.json\ncat policy.json | tigris iam policies edit arn:aws:iam::org_id:policy/my-policy\n```\n\n##### `iam policies delete`\n\n```\ntigris iam policies delete [resource] [flags]\n```\n\n| Flag      | Description                                 |\n| --------- | ------------------------------------------- |\n| `--force` | Skip confirmation prompts (alias for --yes) |\n\n**Examples:**\n\n```bash\ntigris iam policies delete\ntigris iam policies delete arn:aws:iam::org_id:policy/my-policy --yes\n```\n\n##### `iam policies link-key`\n\n```\ntigris iam policies link-key [resource] [flags]\n```\n\n| Flag   | Description             |\n| ------ | ----------------------- |\n| `--id` | Access key ID to attach |\n\n**Examples:**\n\n```bash\ntigris iam policies link-key arn:aws:iam::org_id:policy/my-policy --id tid_AaBb\ntigris iam policies link-key\n```\n\n##### `iam policies unlink-key`\n\n```\ntigris iam policies unlink-key [resource] [flags]\n```\n\n| Flag      | Description                                 |\n| --------- | ------------------------------------------- |\n| `--id`    | Access key ID to detach                     |\n| `--force` | Skip confirmation prompts (alias for --yes) |\n\n**Examples:**\n\n```bash\ntigris iam policies unlink-key arn:aws:iam::org_id:policy/my-policy --id tid_AaBb --yes\ntigris iam policies unlink-key\n```\n\n##### `iam policies list-keys`\n\n```\ntigris iam policies list-keys [resource] [flags]\n```\n\n| Flag       | Description                    |\n| ---------- | ------------------------------ |\n| `--format` | Output format (default: table) |\n\n**Examples:**\n\n```bash\ntigris iam policies list-keys arn:aws:iam::org_id:policy/my-policy\ntigris iam policies list-keys\n```\n\n#### `iam users` | `u`\n\nManage organization users and invitations\n\n| Command                            | Description                                                                                |\n| ---------------------------------- | ------------------------------------------------------------------------------------------ |\n| `iam users list` (l)               | List all users and pending invitations in the organization                                 |\n| `iam users invite` (i)             | Invite users to the organization by email                                                  |\n| `iam users revoke-invitation` (ri) | Revoke pending invitations. If no invitation ID provided, shows interactive selection      |\n| `iam users update-role` (ur)       | Update user roles in the organization. If no user ID provided, shows interactive selection |\n| `iam users remove` (rm)            | Remove users from the organization. If no user ID provided, shows interactive selection    |\n\n##### `iam users list`\n\n```\ntigris iam users list [flags]\n```\n\n| Flag       | Description                    |\n| ---------- | ------------------------------ |\n| `--format` | Output format (default: table) |\n\n**Examples:**\n\n```bash\ntigris iam users list\ntigris iam users list --format json\n```\n\n##### `iam users invite`\n\n```\ntigris iam users invite \u003cemail\u003e [flags]\n```\n\n| Flag         | Description                                             |\n| ------------ | ------------------------------------------------------- |\n| `-r, --role` | Role to assign to the invited user(s) (default: member) |\n\n**Examples:**\n\n```bash\ntigris iam users invite user@example.com\ntigris iam users invite user@example.com --role admin\ntigris iam users invite user1@example.com,user2@example.com\n```\n\n##### `iam users revoke-invitation`\n\n```\ntigris iam users revoke-invitation [resource] [flags]\n```\n\n| Flag      | Description                                 |\n| --------- | ------------------------------------------- |\n| `--force` | Skip confirmation prompts (alias for --yes) |\n\n**Examples:**\n\n```bash\ntigris iam users revoke-invitation\ntigris iam users revoke-invitation invitation_id --yes\ntigris iam users revoke-invitation id1,id2,id3 --yes\n```\n\n##### `iam users update-role`\n\n```\ntigris iam users update-role [resource] [flags]\n```\n\n| Flag         | Description                                                                                                                        |\n| ------------ | ---------------------------------------------------------------------------------------------------------------------------------- |\n| `-r, --role` | Role(s) to assign (comma-separated). Each role pairs with the corresponding user ID. If one role is given, it applies to all users |\n\n**Examples:**\n\n```bash\ntigris iam users update-role --role admin\ntigris iam users update-role user_id --role member\ntigris iam users update-role id1,id2 --role admin\ntigris iam users update-role id1,id2 --role admin,member\n```\n\n##### `iam users remove`\n\n```\ntigris iam users remove [resource] [flags]\n```\n\n| Flag      | Description                                 |\n| --------- | ------------------------------------------- |\n| `--force` | Skip confirmation prompts (alias for --yes) |\n\n**Examples:**\n\n```bash\ntigris iam users remove\ntigris iam users remove user@example.com --yes\ntigris iam users remove user@example.com,user@example.net --yes\n```\n\n## Other\n\n### `update`\n\nUpdate the CLI to the latest version\n\n```\ntigris update\n```\n\n**Examples:**\n\n```bash\ntigris update\n```\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftigrisdata%2Fcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftigrisdata%2Fcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftigrisdata%2Fcli/lists"}