cli-anything-tigris について
公式 Tigris CLI をラップする、エージェント向けのステートレスなコマンドラインツールです。バケット、オブジェクト、スナップショット、アクセスキー、IAM の操作を機械処理可能な JSON 出力で提供します。
主な機能
- 01バケットとオブジェクトの管理
- 02オブジェクトのアップロード、取得、コピー、参照
- 03期限付きアップロード・ダウンロード URL の作成
- 04バケットスナップショットの作成と一覧表示
- 05範囲指定アクセスキーと IAM の管理
活用シーン
- 01Tigris バケット間でのオブジェクト転送
- 02期限付きオブジェクトアクセス URL の作成
- 03破壊的操作の前のバケットスナップショット作成
- 04エージェント実行用のバケット限定認証情報の発行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hkuds/ cli-anything --skill cli-anything-tigrisインストール後、Claude Code で/cli-anything-tigrisを入力して読み込まれたか確認します。
詳細
cli-anything-tigris
Tigris オブジェクトストレージ向けのステートレスなコマンドラインインターフェースです。公式の tigris CLI をラップすることで、すべての Tigris プリミティブ(スナップショット、IAM、スコープ付き資格情報、OAuth)に、あらゆる箇所で --json を備えたエージェントフレンドリーな単一のエントリポイントからアクセスできます。
スコープ
このハーネスは公式の Tigris CLI 専用です。tigris バイナリを呼び出し、tigris login または Tigris アクセスキーによる Tigris 認証を前提としています。汎用的な S3 エンドポイントツールではなく、MinIO、Cloudflare R2、AWS S3、その他任意の S3 互換エンドポイントを管理するものではありません。
インストール
# 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
前提条件:
- Python 3.10+
- PATH 上の
tigrisCLI(バイナリのエイリアスはt3)
使い方
基本コマンド
# 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 モード
サブコマンドなしで起動すると、CLI はタブ補完と履歴を備えた対話型 REPL に入ります。
コマンドグループ
auth
OAuth ベースの認証。
| コマンド | 説明 |
|---|---|
login | ブラウザ OAuth ログイン(tigris login) |
logout | 現在のセッションからログアウト |
whoami | 認証済みユーザー / 組織を表示 |
bucket
バケットの CRUD。
| コマンド | 説明 |
|---|---|
list | すべてのバケットを一覧表示 |
create --name NAME | バケットを作成 |
delete --name NAME --yes | 空のバケットを削除(--yes が必要) |
info NAME | バケット情報を取得 |
object
オブジェクト操作(tigris ls/cp/rm/stat をラップ)。
| コマンド | 説明 |
|---|---|
list --bucket B [--prefix P] [--limit N] | オブジェクトを一覧表示 |
put --bucket B --key K (--file F | --text T) | オブジェクトをアップロード |
get --bucket B --key K --output F | オブジェクトをダウンロード |
delete --bucket B --key K | オブジェクトを削除 |
info --bucket B --key K | オブジェクトのメタデータ(HEAD / stat) |
cp SRC DST [-r] | コピー。t3:// または tigris:// URI を受け付けます。 |
presign
有効期限付き URL。
| コマンド | 説明 |
|---|---|
get --bucket B --key K [--expires SEC] | 署名付きダウンロード URL |
put --bucket B --key K [--expires SEC] | 署名付きアップロード URL |
snapshot
ポイントインタイムのバケットスナップショット — Tigris 固有のプリミティブです。
| コマンド | 説明 |
|---|---|
list BUCKET | バケットのスナップショットを一覧表示 |
take BUCKET [--name N] | スナップショットを取得 |
access-key
スコープ付きのプログラム用資格情報 — snapshot と組み合わせることでエージェントごとの分離が可能になります。
| コマンド | 説明 |
|---|---|
list | すべてのアクセスキーを一覧表示 |
create NAME | 新しいアクセスキーを作成(シークレットは 1 回だけ表示) |
get KEY_ID | キーの詳細を表示 |
delete KEY_ID --yes | キーを完全に削除(--yes が必要) |
assign KEY_ID --bucket B --role R | キーをバケット + ロールにスコープ |
rotate KEY_ID --yes | キーのシークレットをローテーション(--yes が必要) |
iam
ポリシーと組織ユーザー。
| コマンド | 説明 |
|---|---|
policy list | IAM ポリシーを一覧表示 |
policy create NAME --document FILE | JSON ファイルからポリシーを作成 |
user list | 組織のユーザーを一覧表示 |
user invite EMAIL [--role R] | ユーザーを招待 |
出力形式
すべてのコマンドは二重の出力モードをサポートしています:
- 人間が読みやすい形式(デフォルト): テーブル、色、整形されたテキスト
- 機械可読形式(
--json): JSON エンベロープ(またはアップストリーム CLI の--format json出力をそのままエコー)
AI エージェント向け
この CLI をプログラムから利用する場合:
- 解析可能な出力を得るには、常に
--jsonを指定してください。 - リターンコードを確認してください — 成功時は 0、エラー時は非ゼロです。
- エラーメッセージは stderr から読み取ってください。
object cpはt3://bucket/keyまたはtigris://bucket/key形式の URI を受け付けます。 サーバー側コピー(t3 → t3)はラウンドトリップを完全に省略します。presignはヒューマンモードでは URL を stdout に出力し、JSON モードではurlフィールドに格納されます。- 破壊的な操作について: バケットの削除、アクセスキーの削除、および
アクセスキーのローテーションには明示的な
--yesが必要です。まず対象 バケットのsnapshotを取得し、その後で操作を実行し、最後にスナップショットを 保持するか破棄するかを選んでください。 - エージェントごとの分離について:
access-key createとaccess-key assign --bucket B --role Editorを使って、1 つのバケットにスコープされたキーを発行します。 エージェントの実行が終了したらaccess-key deleteで失効させてください。
Tigris を選ぶ理由
- グローバルに分散。 データは読み取られる場所の近くに配置されます。
- エグレス料金がかかりません。 エージェントがどこからでもアーティファクトを 取得しても、リージョンごとの帯域幅料金は発生しません。
- スナップショット + スコープ付き認証情報。 一般的な S3 互換プロバイダーには ないプリミティブであり、エージェントごとの分離を実現する基盤です。
- S3 互換。 S3 対応ツールと併用できますが、このハーネス自体は汎用的な S3/MinIO/R2/AWS エンドポイントマネージャーではありません。
バージョン
1.0.0