mcpField
C
cli-anything-tigris

cli-anything-tigris

github.com/hkudsCloud & DevOps57.6k198 installsUpdated 5w ago
Repository

About cli-anything-tigris

A stateless, agent-oriented command-line harness that wraps the official Tigris CLI for object storage and account operations. It exposes Tigris bucket, object, snapshot, access-key, and IAM commands with machine-readable JSON output.

Key features

  1. 01Manage buckets and objects
  2. 02Upload, download, copy, and inspect objects
  3. 03Create presigned upload and download URLs
  4. 04Take and list bucket snapshots
  5. 05Manage scoped access keys and IAM

Use cases

  1. 01Transfer objects to and from Tigris buckets
  2. 02Create time-limited object access URLs
  3. 03Snapshot buckets before destructive operations
  4. 04Issue bucket-scoped credentials for agent runs

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/hkuds/cli-anything --skill cli-anything-tigris

After installing, type/cli-anything-tigrisin Claude Code to confirm it loaded.

Details

From the project README

cli-anything-tigris

A stateless command-line interface for Tigris object storage. Wraps the official tigris CLI so every Tigris primitive (snapshots, IAM, scoped credentials, OAuth) is reachable through a single agent-friendly entry point with --json everywhere.

Scope

This harness is for the official Tigris CLI only. It shells out to the tigris binary and assumes Tigris auth through tigris login or Tigris access keys. It is not a generic S3 endpoint tool, and it does not manage MinIO, Cloudflare R2, AWS S3, or arbitrary S3-compatible endpoints.

Installation

# 1. Install the underlying Tigris CLI
npm install -g @tigrisdata/cli
# or:
brew install tigrisdata/tap/tigris

# 2. Authenticate (browser OAuth)
tigris login

# 3. Install this harness
pip install cli-anything-tigris

Prerequisites:

  • Python 3.10+
  • tigris CLI on PATH (the binary's alias is t3)

Usage

Basic Commands
# Show help
cli-anything-tigris --help

# Start interactive REPL
cli-anything-tigris

# Whoami (JSON output for agents)
cli-anything-tigris --json auth whoami

# List buckets
cli-anything-tigris --json bucket list

# Upload a local file
cli-anything-tigris --json object put --bucket my-bucket --key path/to/file.txt --file ./local.txt

# Download an object
cli-anything-tigris --json object get --bucket my-bucket --key path/to/file.txt --output ./out.txt

# Server-side copy
cli-anything-tigris --json object cp t3://my-bucket/src.txt t3://my-bucket/dst.txt

# Take a snapshot
cli-anything-tigris --json snapshot take my-bucket --name baseline-v1

# Delete a bucket; --yes is required
cli-anything-tigris --json bucket delete --name old-bucket --yes

# Create a scoped access key for an agent run
cli-anything-tigris --json access-key create my-agent-key
cli-anything-tigris --json access-key assign tid_AaBb --bucket my-bucket --role Editor

# Rotate or delete access keys; --yes is required
cli-anything-tigris --json access-key rotate tid_AaBb --yes
cli-anything-tigris --json access-key delete tid_AaBb --yes

# Presigned download URL (1 hour)
cli-anything-tigris --json presign get --bucket my-bucket --key path/to/file.txt --expires 3600
REPL Mode

When invoked without a subcommand, the CLI enters an interactive REPL with tab-completion and history.

Command Groups

auth

OAuth-based authentication.

CommandDescription
loginBrowser OAuth login (tigris login)
logoutLog out of current session
whoamiPrint authenticated user / org
bucket

Bucket CRUD.

CommandDescription
listList all buckets
create --name NAMECreate a bucket
delete --name NAME --yesDelete an empty bucket (--yes required)
info NAMEGet bucket info
object

Object operations (wraps tigris ls/cp/rm/stat).

CommandDescription
list --bucket B [--prefix P] [--limit N]List objects
put --bucket B --key K (--file F | --text T)Upload an object
get --bucket B --key K --output FDownload an object
delete --bucket B --key KDelete an object
info --bucket B --key KObject metadata (HEAD / stat)
cp SRC DST [-r]Copy. Accepts t3:// or tigris:// URIs.
presign

Time-limited URLs.

CommandDescription
get --bucket B --key K [--expires SEC]Presigned download URL
put --bucket B --key K [--expires SEC]Presigned upload URL
snapshot

Point-in-time bucket snapshots — a Tigris-specific primitive.

CommandDescription
list BUCKETList snapshots for a bucket
take BUCKET [--name N]Take a snapshot
access-key

Scoped programmatic credentials — combine with snapshot for per-agent isolation.

CommandDescription
listList all access keys
create NAMECreate a new access key (secret shown ONCE)
get KEY_IDShow key details
delete KEY_ID --yesPermanently delete a key (--yes required)
assign KEY_ID --bucket B --role RScope a key to a bucket + role
rotate KEY_ID --yesRotate a key's secret (--yes required)
iam

Policies and organization users.

CommandDescription
policy listList IAM policies
policy create NAME --document FILECreate a policy from a JSON file
user listList org users
user invite EMAIL [--role R]Invite a user

Output Formats

All commands support dual output modes:

  • Human-readable (default): tables, colors, formatted text
  • Machine-readable (--json): JSON envelope (or upstream CLI's --format json output, echoed verbatim)

For AI Agents

When using this CLI programmatically:

  1. Always pass --json for parseable output.
  2. Check return codes — 0 for success, non-zero for errors.
  3. Read stderr for error messages.
  4. object cp accepts t3://bucket/key or tigris://bucket/key URIs; server-side copies (t3 → t3) skip the round trip entirely.
  5. presign returns a URL on stdout in human mode; in JSON mode it's the url field.
  6. For destructive work: bucket deletion, access-key deletion, and access-key rotation require explicit --yes; take a snapshot of the target bucket first, then do the work, then either keep the snapshot or discard.
  7. For per-agent isolation: access-key create + access-key assign --bucket B --role Editor to mint a key scoped to one bucket; revoke with access-key delete when the agent run ends.

Why Tigris

  • Globally distributed. Data placed close to wherever it's read.
  • No egress fees. Agents pulling artifacts from anywhere don't incur per-region bandwidth charges.
  • Snapshots + scoped credentials. Primitives generic S3-compatible providers don't ship — the foundation for per-agent isolation.
  • S3-compatible. Useful alongside S3-aware tools, but this harness itself is not a generic S3/MinIO/R2/AWS endpoint manager.

Version

1.0.0

Comments

Markdown supported