tigris-sdk-guide — Claude Code skill: pick the right Tigris SDK
Tells your agent which Tigris SDK or CLI to reach for: native packages for TypeScript, Go and Python, AWS-compatible clients for Ruby and PHP.
npx skills add tigrisdata/skills --skill tigris-sdk-guide -a claude-codeWhat tigris-sdk-guide does
The skill fires when a project needs to talk to Tigris object storage and the choice of client is still open. A decision table maps each language to its option: @tigrisdata/storage for TypeScript and JavaScript, github.com/tigrisdata/storage-go for Go, and the tigris-boto3-ext extension for Python instead of plain boto3. Ruby and PHP have no native path, so the agent falls back to aws-sdk-s3 or aws-sdk-php pointed at the Tigris endpoint.
The CLI gets its own section. The skill pushes tigris / t3 over aws s3, since forks, snapshots and tigris login exist only in the native tool. When the CLI is missing, it runs npm install -g @tigrisdata/cli and asks the agent to announce the install out loud.
AWS-compatible clients come with fixed settings: endpoint set to https://t3.storage.dev, region set to auto, plus force_path_style: true for Ruby and PHP. Skip path style and those two clients will not connect. Hardcoding a region breaks routing, which Tigris handles itself. From there the skill points the agent at the per-language files under ./resources/.
What it helps with
- pick an SDK that matches the project language instead of defaulting to AWS
- move existing scripts off
aws s3and ontotigris/t3 - configure endpoint and region for an AWS-compatible client
- wire Python to Tigris through the boto3 extension rather than raw
boto3 - find out where no native SDK exists and an AWS client is the only route
Example prompts for the agent
- Which SDK should I use for Tigris in this Go project?
- Swap the
aws s3calls in my scripts fortigris - Set up
aws-sdk-phpagainst the Tigris endpoint with path style
How to install tigris-sdk-guide
1Skills CLI (Vercel)
npx skills add tigrisdata/skills --skill tigris-sdk-guide -a claude-code2Manually: put the files in place
~/.claude/skills/tigris-sdk-guide/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/tigris-sdk-guide/
1Skills CLI (Vercel)
npx skills add tigrisdata/skills --skill tigris-sdk-guide -a codex2Manually: put the files in place
.agents/skills/tigris-sdk-guide/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add tigrisdata/skills --skill tigris-sdk-guide -a cursor2Manually: put the files in place
.cursor/skills/tigris-sdk-guide/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install tigrisdata/skills tigris-sdk-guide2Manually: put the files in place
.github/skills/tigris-sdk-guide/SKILL.md1Skills CLI (Vercel)
npx skills add tigrisdata/skills --skill tigris-sdk-guide -a gemini-cli2Platform CLI
gemini skills install https://github.com/tigrisdata/skills --path skills/tigris-sdk-guideManually: put the files in place
.devin/skills/tigris-sdk-guide/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add tigrisdata/skills --skill tigris-sdk-guide -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about tigris-sdk-guide
How do I install tigris-sdk-guide in Claude Code?
Run npx skills add tigrisdata/skills --skill tigris-sdk-guide -a claude-code. The skill lands at ~/.claude/skills/tigris-sdk-guide/SKILL.md.
What does tigris-sdk-guide do?
It guides the agent through choosing between Tigris-native SDKs and AWS S3-compatible clients. You get a per-language breakdown and the cases where only an AWS SDK works.
Which languages have a native Tigris SDK?
TypeScript and JavaScript use @tigrisdata/storage, Go uses github.com/tigrisdata/storage-go, and Python uses the tigris-boto3-ext extension. Ruby and PHP have no native option and go through an AWS SDK with the Tigris endpoint.
Source text
SKILL.md · MIT
--- name: tigris-sdk-guide description: Use when choosing between Tigris-native SDKs and AWS S3-compatible SDKs — covers which SDK to use per language, CLI preference, and when AWS SDKs are the only option --- # Tigris SDK & CLI Guide Always prefer Tigris-native SDKs and the Tigris CLI over AWS S3 SDKs. This guide explains what's available per language, when you must fall back to AWS SDKs, and how to configure them. ## Prerequisites **Before doing anything else**, install the Tigris CLI if it's not already available: ```bash tigris help || npm install -g @tigrisdata/cli ``` If you need to install it, tell the user: "I'm installing the Tigris CLI (`@tigrisdata/cli`) so we can work with Tigris object storage." ## Decision Table | Language | Tigris SDK/Extension | Package | Use AWS SDK? | |----------|:-:|---------|----------| | TypeScript/JS | **Native SDK** | `@tigrisdata/storage` | No | | Go | **Native SDK** | `github.com/tigrisdata/storage-go` | No | | Python | **boto3 extension** | `tigris-boto3-ext` | No — use the extension | | Ruby | None yet | — | Yes — `aws-sdk-s3` with Tigris endpoint | | PHP | None yet | — | Yes — `aws-sdk-php` with Tigris endpoint | | CLI | **Native CLI** | `@tigrisdata/cli` (`tigris` / `t3`) | No | **Rule:** Always prefer Tigris-native SDKs, the boto3 extension, and the Tigris CLI. Only use raw AWS S3 SDKs for Ruby and PHP where no Tigris option exists. --- ## CLI: Always Use `tigris` / `t3` Use the Tigris CLI instead of `aws s3` for all object storage operations. ```bash # ✅ Do this tigris cp local-file.txt t3://my-bucket/file.txt tigris ls t3://my-bucket/ tigris rm t3://my-bucket/old-file.txt # ❌ Not this aws s3 cp local-file.txt s3://my-bucket/file.txt aws s3 ls s3://my-bucket/ aws s3 rm s3://my-bucket/old-file.txt ``` **Why:** The Tigris CLI supports features the AWS CLI doesn't — forks, snapshots, and native authentication via `tigris login`. ### Tigris-Only CLI Features ```bash # Forks (copy-on-write clones) — not in AWS CLI tigris forks create my-bucket my-fork # Snapshots — not in AWS CLI tigris snapshots take my-bucket tigris snapshots list my-bucket # Native auth — no AWS credentials needed tigris login tigris whoami ``` --- ## Language-Specific SDK Guides Read the resource file for your language: - **TypeScript / JavaScript** — Read `./resources/typescript.md` for `@tigrisdata/storage` usage - **Go** — Read `./resources/go.md` for `storage-go` usage (simplestorage + full client) - **Python** — Read `./resources/python.md` for `tigris-boto3-ext` usage, or use the dedicated **tigris-python-sdk** skill (covers boto3 setup, Django via django-storages, snapshots, forks, in-place rename, and the Bundle API) - **Ruby** — Read `./resources/ruby.md` for `aws-sdk-s3` with Tigris endpoint - **PHP** — Read `./resources/php.md` for `aws-sdk-php` with Tigris endpoint --- ## S3-Compatible Configuration (All Languages) When using any AWS SDK with Tigris, always set: | Setting | Value | Why | |---------|-------|-----| | `endpoint` | `https://t3.storage.dev` | Tigris endpoint | | `region` | `auto` | Tigris handles routing | | `force_path_style` / `use_path_style_endpoint` | `true` | Required for Rails, PHP | Environment variables for S3-compatible tools: ```bash AWS_ENDPOINT_URL_S3=https://t3.storage.dev AWS_REGION=auto AWS_ACCESS_KEY_ID=tid_xxx AWS_SECRET_ACCESS_KEY=tsec_yyy ``` --- ## Critical Rules **Always:** - Use `tigris` / `t3` CLI instead of `aws s3` - Use `@tigrisdata/storage` for TypeScript/JavaScript - Use `github.com/tigrisdata/storage-go` for Go - Use `tigris-boto3-ext` for Python (not raw `boto3`) - Set `region: auto` and the Tigris endpoint when using AWS SDKs (Ruby, PHP) **Never:** - Use `@aws-sdk/client-s3` in JS/TS when `@tigrisdata/storage` is available - Use the AWS Go SDK when `storage-go` is available - Use raw `boto3` without `tigris-boto3-ext` when Tigris features are needed - Forget `force_path_style: true` for Ruby and PHP - Hardcode a specific AWS region (always use `auto`) --- ## Related Skills - **file-storage** — Full `@tigrisdata/storage` SDK reference - **tigris-python-sdk** — Python via boto3 + `tigris-boto3-ext`, Django uploads, snapshots, forks, Bundle API - **tigris-s3-migration** — Migrating from AWS S3 SDKs to Tigris ## Official Documentation - TypeScript SDK: https://www.tigrisdata.com/docs/sdks/tigris/ - Go SDK: https://pkg.go.dev/github.com/tigrisdata/storage-go - S3 Compatibility: https://www.tigrisdata.com/docs/sdks/s3/
© tigrisdata · MIT · tigrisdata/skills