cli-anything-tigris は何をしますか?
Tigris オブジェクトストレージのためのステートレスなコマンドラインインターフェース。公式の tigris CLI をラップし、すべてのTigrisプリミティブ(スナップショット、IAM、スコープ認証、OAuth)を単一のエージェントフレンドリーなエントリポイントから --json 出力で利用可能にします。
スコープ
このハーネスは公式のTigris CLI専用です。tigris バイナリをシェル経由で呼び出し、tigris login またはTigrisアクセスキーによる認証を前提としています。汎用的なS3エンドポイントツールではなく、MinIO、Cloudflare R2、AWS S3、またはその他のS3互換エンドポイントを管理するものではありません。
インストール
# 1. ベースとなるTigris CLIをインストール
npm install -g @tigrisdata/cli
# または:
brew install tigrisdata/tap/tigris
# 2. 認証(ブラウザOAuth)
tigris login
# 3. このハーネスをインストール
pip install cli-anything-tigris
前提条件:
- Python 3.10+
- PATH上に
tigrisCLI(バイナリのエイリアスはt3)
使用方法
基本コマンド
# ヘルプ表示
cli-anything-tigris --help
# 対話型REPLの起動
cli-anything-tigris
# Whoami(エージェント向けJSON出力)
cli-anything-tigris --json auth whoami
# バケット一覧
cli-anything-tigris --json bucket list
# ローカルファイルのアップロード
cli-anything-tigris --json object put --bucket my-bucket --key path/to/file.txt --file ./local.txt
# オブジェクトのダウンロード
cli-anything-tigris --json object get --bucket my-bucket --key path/to/file.txt --output ./out.txt
# サーバーサイドコピー
cli-anything-tigris --json object cp t3://my-bucket/src.txt t3://my-bucket/dst.txt
# スナップショットの取得
cli-anything-tigris --json snapshot take my-bucket --name baseline-v1
# バケットの削除(--yes必須)
cli-anything-tigris --json bucket delete --name old-bucket --yes
# エージェント実行用のスコープ付きアクセスキー作成
cli-anything-tigris --json access-key create my-agent-key
cli-anything-tigris --json access-key assign tid_AaBb --bucket my-bucket --role Editor
# アクセスキーのローテーションまたは削除(--yes必須)
cli-anything-tigris --json access-key rotate tid_AaBb --yes
cli-anything-tigris --json access-key delete tid_AaBb --yes
# 署名付きダウンロードURL(1時間)
cli-anything-tigris --json presign get --bucket my-bucket --key path/to/file.txt --expires 3600
REPLモード
サブコマンドなしで起動すると、タブ補完と履歴を備えた対話型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 | 新しいアクセスキーを作成(シークレットは一度だけ表示) |
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] | ユーザーを招待 |
出力形式
すべてのコマンドは2つの出力モードをサポートします。
- 人間可読(デフォルト): テーブル、色、整形テキスト
- 機械可読(
--json): JSONエンベロープ(またはアップストリームCLIの--format json出力をそのままエコー)
AIエージェント向け
プログラムからこのCLIを使用する場合:
- 解析可能な出力を得るため、常に
--jsonを指定してください。 - リターンコードを確認してください — 0は成功、非0はエラーを示します。
- エラーメッセージはstderrを読み取ってください。
object cpはt3://bucket/keyまたはtigris://bucket/keyURIを受け付けます。サーバーサイドコピー(t3→t3)はラウンドトリップを完全にスキップします。presignは人間モードではstdoutにURLを返し、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