Complete guide for CloudBase cloud storage using Web SDK (@cloudbase/js-sdk) - upload, download, temporary URLs, file management, and best practices.

MITAuto-check: notesProductivity & Automation

Install Cloud Storage Web

skills CLI
$ npx skills add TencentCloudBase/CloudBase-AI-Toolkit --skill cloud-storage-web -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install TencentCloudBase/CloudBase-AI-Toolkit cloud-storage-web --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/TencentCloudBase/CloudBase-AI-Toolkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/config/source/skills/cloud-storage-web .claude/skills/cloud-storage-web && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
cloud-storage-web
GitHub stars
1.1k
Used in
3 other repos
Token cost
~4.4k tokens
SKILL.md length
1,818 words
Files
1
Skills in repo
49
Repo updated
First seen
Licence
MIT

At a glance

Complete guide for CloudBase cloud storage using Web SDK (@cloudbase/js-sdk) - upload, download, temporary URLs, file management, and best practices.

  • Works in 6 steps: Use queryEnv with action="domains" to… → Convert the browser origin into the… → If the exact current host entry is… → …
  • Tasks that involve File organization
  • SKILL.md covers Sibling skills (local only), Activation Contract, Overview and SDK initialization, plus 8 more sections
  • Reaches tcb.cloud.tencent.com; needs VITE_PUBLISHABLE_KEY

What it does

Cloud Storage Web is an agent skill from TencentCloudBase/CloudBase-AI-Toolkit. Complete guide for CloudBase cloud storage using Web SDK (@cloudbase/js-sdk) - upload, download, temporary URLs, file management, and best practices.

Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Productivity & Automation, covering File organization. The repository describes itself as: Backend for AI coding agents on CloudBase — database, auth, functions via Plugin, Skills & MCP. The licence is MIT.

When your agent uses it

  • Tasks that involve File organization

Example prompts

  • “/cloud-storage-web”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Use queryEnv with action="domains" to inspect the current security-domain whitelist.
  2. Convert the browser origin into the CloudBase whitelist entry format
  3. If the exact current host entry is missing, call envDomainManagement with action="create" and add that host entry before relying on…
  4. If the runtime port may change between runs, do not assume any fixed default port list is sufficient. Re-check the actual browser origin…
  5. Tell the user that security-domain changes may take a few minutes to propagate; poll queryEnv(action="domains") rather than blind-sleeping…
  6. Only after that should you implement and test browser-side app.uploadFile() flows.

What it can do on your machine

Read from SKILL.md and the folder at commit ea2c202. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript, json and sql).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • tcb.cloud.tencent.com

    Also links to:

    • docs.cloudbase.net

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • VITE_PUBLISHABLE_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Cloud Storage Web loads about 4.4k tokens when it runs. Until then it costs about 42 tokens; SKILL.md has 1,818 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~42
When it runs · the whole SKILL.md, loaded when a task matches
~4.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:190
    ublishableKey")`; then write the key to `.env.local` as `VITE_PUBLISHABLE_KEY` (create the file if missing) and read it

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from TencentCloudBase/CloudBase-AI-Toolkit at commit ea2c202, republished under its MIT licence (© TencentCloudBase). 1,818 words, ~4,359 tokens.

Download SKILL.mdSave it as .claude/skills/cloud-storage-web/SKILL.md (or your agent's skills folder).
name
cloud-storage-web
description
Complete guide for CloudBase cloud storage using Web SDK (@cloudbase/js-sdk) - upload, download, temporary URLs, file management, and best practices.
version
2.34.8
alwaysApply
false

Sibling skills (local only)

Sibling CloudBase skills ship beside this skill. Use local relative paths such as ../auth-tool-cloudbase/SKILL.md.

If a referenced sibling skill file is missing from this environment, ask the user to install the full CloudBase plugin (or the missing skill). Do not HTTP-fetch remote skill or protocol markdown into the agent context.

Cloud Storage Web SDK

Activation Contract

Use this first when
  • A browser or Web app must upload, download, or manage CloudBase storage objects through @cloudbase/js-sdk.
  • The request mentions uploadFile, getTempFileURL, deleteFile, or downloadFile in frontend code.
Read before writing code if
  • The task is browser-side storage work but you still need to separate it from Mini Program storage, backend storage management, or static hosting deployment.
  • The request may be blocked by security domains or frontend auth.
Then also read
  • Web login and identity -> ../auth-web-cloudbase/SKILL.md
  • General Web app setup -> ../web-development/SKILL.md
  • Direct storage management through MCP tools -> ../cloudbase-platform/SKILL.md
Do NOT use for
  • Mini Program file APIs.
  • Backend or agent-side direct storage management through MCP.
  • Static website hosting deployment via manageHosting(action="upload").
  • Database operations.
Common mistakes / gotchas
  • Uploading from browser code without configuring security domains.
  • Using this skill for static hosting instead of storage objects.
  • Mixing browser SDK upload flows with server-side file-management tasks.
  • Assuming temporary download URLs are permanent links.
  • Ignoring STORAGE_NOT_EXIST; it means the target storage bucket/resource is not ready, not that the browser upload code should fabricate a URL.
  • On local Vite or dev-server tasks, forgetting to whitelist the exact current browser host:port before testing app.uploadFile().
  • Treating CloudBase PG / pgstore like the legacy NoSQL CloudBase storage. PG environments use a separate pgstore backend whose buckets are NOT auto-created from your old NoSQL bucket. If pgstore has no bucket, every upload returns STORAGE_BUCKET_NOT_FOUND and the SDK then issues PUT https://undefined/ (visible in DevTools as net::ERR_NAME_NOT_RESOLVED). Treat bucket existence as a hard prerequisite, just like Supabase: in Supabase Storage every upload must target an already-created bucket; CloudBase PG follows the same model.
Minimal checklist
  • Confirm the caller is a browser/Web app.
  • Initialize the Web SDK once.
  • Confirm CloudBase storage exists in the current environment before testing upload. Use available MCP management/query tools to inspect or create/select the storage bucket when the environment has no default bucket. In a PG / pgstore environment, the legacy NoSQL bucket from DescribeEnvs does NOT count as a usable pgstore bucket; create one explicitly before any browser upload. The legacy NoSQL bucket itself is still fine for legacy app.uploadFile() flows that already target it — PG and NoSQL storage coexist; this skill applies to BOTH.
  • Check security-domain/CORS requirements.
  • Pick the right storage method before coding.
Local dev recipe

When the app runs on a local browser origin and must upload files from the frontend:

  1. Use queryEnv with action="domains" to inspect the current security-domain whitelist.
  2. Convert the browser origin into the CloudBase whitelist entry format:
    • Browser origin http://127.0.0.1:4173 -> whitelist entry 127.0.0.1:4173
    • Browser origin http://localhost:5173 -> whitelist entry localhost:5173
  3. If the exact current host entry is missing, call envDomainManagement with action="create" and add that host entry before relying on app.uploadFile().
  4. If the runtime port may change between runs, do not assume any fixed default port list is sufficient. Re-check the actual browser origin you are really using for testing or final validation, then add that exact host:port.
  5. Tell the user that security-domain changes may take a few minutes to propagate; poll queryEnv(action="domains") rather than blind-sleeping for a fixed long interval.
  6. Only after that should you implement and test browser-side app.uploadFile() flows.

If app.uploadFile() returns STORAGE_NOT_EXIST, stop editing frontend code and fix the environment-side storage resource first. Re-check the environment storage list, create or select an available bucket if the task allows it, then retry the same SDK upload flow.

If the task uses browser-side file upload, treat this as a prerequisite rather than an optional cleanup.

Bucket existence prerequisite (mandatory before any upload code)

Just like Supabase Storage, CloudBase Storage requires the target bucket to exist before any client-side upload. This is true for both legacy CloudBase NoSQL storage (STORAGE_NOT_EXIST) and the newer PG / pgstore backend (STORAGE_BUCKET_NOT_FOUND).

Mental model parity with Supabase:

StepSupabaseCloudBase
Create bucketsupabase.storage.createBucket('covers', { public: true }) (admin-side, with service role)In PG mode, create a storage.buckets bucket through PG storage HTTP API / CLI / console / SQL on storage.buckets when appropriate. The browser SDK cannot create one.
Uploadsupabase.storage.from('covers').upload('a.png', file)PG 模式: app.storage.from('covers').upload('a.png', file) — from(bucketName) 指定 pgstore 存储桶。<br>非 PG 模式: app.storage.from().upload('covers/a.png', file) — bucket 名作为路径第一段。
Bucket missing errorBucket not foundBrowser sees STORAGE_BUCKET_NOT_FOUND (PG) or STORAGE_NOT_EXIST (NoSQL), then a follow-up PUT https://undefined/ because the SDK still tries to PUT a missing metadata.url.

Required pre-upload steps in any task that needs browser uploads:

  1. List existing buckets first. For PG / pgstore, the legacy NoSQL bucket (the 6d63-…-1409864723 shape returned by DescribeEnvs.Storages[]) is NOT a valid pgstore bucket — do not assume it works.
  2. If no usable bucket exists for the upload target (e.g. covers), create one through the PG storage management surface BEFORE editing frontend upload code. Adding covers as a path prefix in code does not auto-create a bucket.
  3. After creating the bucket, the upload pattern depends on environment:
    • PG / pgstore: app.storage.from('covers').upload('<file>', file) — bucket 名传入 from()
    • Non-PG (NoSQL): app.storage.from().upload('covers/<file>', file) — bucket 名作为路径第一段
  4. If you see net::ERR_NAME_NOT_RESOLVED going to https://undefined/ in DevTools, that is the SDK reacting to a missing metadata.url field — almost always because the bucket does not exist or the SDK request was rejected upstream. Inspect the failed POST .../v1/storages/get-objects-upload-info response in DevTools first; the code field (e.g. STORAGE_BUCKET_NOT_FOUND, STORAGE_CONTENT_LENGTH_REQUIRED, INVALID_PARAM) tells you exactly what to fix.

Do not silently swallow upload failures. If uploadCoverImage() rejects, the parent createArticle() MUST also reject — never proceed to db.from(...).insert(...) with a fabricated URL or a placeholder, and never let the UI show a success toast.

⚠️ PG mode upload: use app.storage.from('bucket'), NOT app.uploadFile()

In PG / pgstore environments, use app.storage.from('covers').upload(key, file) for uploads and app.storage.from('covers').createSignedUrl(path, expiresIn) for getting access URLs.

Do NOT use the legacy NoSQL APIs in PG mode:

  • ❌ app.uploadFile() — 这是旧 NoSQL 的上传 API
  • ❌ app.getTempFileURL() — 这是旧 NoSQL 的获取 URL 方式
  • ❌ app.storage.from().upload('covers/file', file) — 没有传 bucket 名

Use instead:

  • ✅ app.storage.from('covers').upload('file', file) — PG 模式上传
  • ✅ app.storage.from('covers').createSignedUrl('file', 3600) — 获取签名 URL(返回 fullSignedURL 字段)

Return shapes differ between modes (v3 SDK) — copy the right column:

call传统模式 (from() 无参, cloud:// fileID)PG 模式 (from('bucket'), bucket 内对象名)
upload(path, file){ data: { id, path, fullPath } };upsert 默认 true{ data: { id, ... } };upsert 默认 false
createSignedUrl(path, expiresIn)await → { data: { signedUrl } }await → { data: { fullSignedURL } }
getPublicUrl(path)await → { data: { publicUrl } }同步调用(不 await) → { data: { publicUrl } }

Source: webv3/storage.md · webv3-pg/storage.md(raw markdown)。

Show full SKILL.md (747 more words)Show less
PG mode URL resolution: 公开桶直链 vs 签名 URL
Bucket 类型URL 策略代码
公开桶(storage.buckets.public = true)直链,无需登录态,可直接进 <img src>app.storage.from('covers').getPublicUrl('a.png') → { data: { publicUrl } }
私有桶签名 URL,带过期时间app.storage.from('covers').createSignedUrl('a.png', 3600)
  • 公开桶直链能否访问取决于 storage.objects 的 RLS SELECT 策略是否放行 anon —— 建桶 SQL 与策略模板见 postgresql-development-cloudbase/references/storage-pg.md "Public-read bucket template"。
  • 展示层做 onerror 兜底(直链被策略拦下时降级到签名 URL),不要硬依赖单一取址流程。
  • 业务表只存 bucket + key(或 SDK 解析出的最终 URL),不要在浏览器手工拼接 URL。
Post-bucket: storage RLS (mandatory in PG / pgstore environments)

In PG / pgstore environments, storage access control is enforced through PostgreSQL Row Level Security (RLS) on storage.buckets / storage.objects — exactly like Supabase Storage. These tables are already granted to anon, authenticated, and service_role; RLS is the permission gate. Traditional storage permission labels (READONLY / PRIVATE / CUSTOM) and JSON storage safe rules do not apply. The default RLS policy is deny all, so even if the bucket exists, app.storage.from('covers').upload() from a browser will fail with STORAGE_PERMISSION_DENIED unless you configure policies.

Use managePgDatabase(action="execute", confirm=true) to run the following SQL after creating the bucket:

sql
ALTER TABLE storage.objects ENABLE ROW LEVEL SECURITY;

-- Allow authenticated users to upload files
CREATE POLICY "authenticated_upload" ON storage.objects
  FOR INSERT TO authenticated
  WITH CHECK (true);

-- Allow authenticated users to read/download files
CREATE POLICY "authenticated_read" ON storage.objects
  FOR SELECT TO authenticated
  USING (true);

-- Optional: allow users to update/delete their own files
CREATE POLICY "users_manage_own" ON storage.objects
  FOR UPDATE TO authenticated
  USING (auth.uid() = owner_id)
  WITH CHECK (auth.uid() = owner_id);

Key points:

  • storage.objects RLS is separate from CloudBase legacy NoSQL storage security rules (managePermissions / ModifyStorageSafeRule). In PG mode, always configure storage RLS via PG SQL, not the legacy security rule API.
  • Without these policies, the browser receives STORAGE_PERMISSION_DENIED when calling app.storage.from('covers').upload() in PG mode.
  • Use IF NOT EXISTS in a DO $$ block when re-applying to avoid "policy already exists" errors on re-run.

Overview

Use this skill for browser-side cloud storage operations through the CloudBase Web SDK.

Typical tasks:

  • upload files from a browser
  • generate temporary download URLs
  • delete files
  • trigger browser downloads

SDK initialization

Init reference: webv3/initialization.md

javascript
import cloudbase from "@cloudbase/js-sdk";

const app = cloudbase.init({
  env: "your-env-id",
  accessKey: import.meta.env.VITE_PUBLISHABLE_KEY, // publishable key — auto-provisioned, see below
});

Initialization rules:

  • Publishable key auto-provisioning (do not ask the user): browser-side storage requests are data-plane calls that require a publishable accessKey. Before writing client code, call queryAppAuth(action="getPublishableKey"); if empty, call manageAppAuth(action="ensurePublishableKey"); then write the key to .env.local as VITE_PUBLISHABLE_KEY (create the file if missing) and read it via import.meta.env.VITE_PUBLISHABLE_KEY. Never hardcode the key into source files. Only fall back to the console (https://tcb.cloud.tencent.com/dev?envId={env}#/env/apikey) if both MCP calls fail.
  • Use synchronous initialization with a shared app instance.
  • Do not re-initialize in every component.
  • If the operation depends on user identity, handle auth before storage operations.

Method routing

  • Upload from browser -> app.uploadFile()
  • Temporary preview/download URL -> app.getTempFileURL()
  • Delete existing files -> app.deleteFile()
  • Trigger browser download -> app.downloadFile()

Upload

javascript
const result = await app.uploadFile({
  cloudPath: "uploads/avatar.jpg",
  filePath: selectedFile
});
Upload rules
  • cloudPath must include the filename.
  • Use / to create folder structure.
  • In a CloudBase PG / pgstore environment, the from(bucketName) argument is used as the bucket name (e.g. from('covers')), and upload(key, file) takes a key without bucket prefix. The bucket must already exist. Same model as Supabase Storage — never upload into a not-yet-created bucket.
  • Validate file type and size before upload.
  • Show upload progress for larger files when UX matters.
  • On local dev origins, confirm the exact frontend origin already exists in environment security domains before assuming the upload path is usable.
  • Match against the whitelist entry format returned by queryEnv(action="domains"), which is typically host:port instead of a full http://... URL.
  • If the environment has no storage bucket or the SDK returns STORAGE_NOT_EXIST / STORAGE_BUCKET_NOT_FOUND, use CloudBase management/MCP storage tools to create or choose a bucket before retrying. Do not treat this as a successful optional upload.
  • After app.uploadFile() succeeds, do not fabricate a public-looking URL by concatenating envId, bucket domain, or cloudPath. Use the returned fileID with app.getTempFileURL() and store or display the SDK-resolved URL instead.
Progress example
javascript
await app.uploadFile({
  cloudPath: "uploads/avatar.jpg",
  filePath: selectedFile,
  onUploadProgress: ({ loaded, total }) => {
    const percent = Math.round((loaded * 100) / total);
    console.log(percent);
  }
});

Temporary URLs

javascript
const result = await app.getTempFileURL({
  fileList: [
    {
      fileID: "cloud://env-id/uploads/avatar.jpg",
      maxAge: 3600
    }
  ]
});

Use temp URLs when the browser needs to preview or download private files without exposing a permanent public link.

Typical upload + preview flow:

javascript
const uploadResult = await app.uploadFile({
  cloudPath: "uploads/avatar.jpg",
  filePath: selectedFile
});

const tempUrlResult = await app.getTempFileURL({
  fileList: [{ fileID: uploadResult.fileID, maxAge: 3600 }]
});

const previewUrl = tempUrlResult.fileList?.[0]?.tempFileURL || tempUrlResult.fileList?.[0]?.download_url;
if (!previewUrl) {
  throw new Error("Failed to resolve temporary file URL after upload");
}

Delete files

javascript
await app.deleteFile({
  fileList: ["cloud://env-id/uploads/old-avatar.jpg"]
});

Always inspect per-file results before assuming deletion succeeded.

Download files

javascript
await app.downloadFile({
  fileID: "cloud://env-id/uploads/report.pdf"
});

Use this for browser-initiated downloads. For programmatic rendering or preview, prefer getTempFileURL().

Security-domain reminder

To avoid CORS problems, add your frontend domain in CloudBase security domains. In MCP-enabled workflows, prefer checking and updating this through tools before coding browser uploads.

json
{ "tool": "queryEnv", "action": "domains" }

Use the actual browser origin when deciding what to add. If the page is running on a custom domain or a local dev port, add that exact host:port value instead of guessing from a hard-coded list.

json
{
  "tool": "envDomainManagement",
  "action": "create",
  "domains": ["<actual-browser-host>:<actual-browser-port>"]
}

Match the real browser origin to the whitelist entry format returned by queryEnv(action="domains"). For local Vite and preview servers, the port can vary between runs, so avoid assuming any fixed default port is sufficient.

Typical examples:

  • <your-local-host>:<actual-port>
  • <your-custom-domain>

Best practices

  1. Use a clear folder structure such as uploads/, avatars/, documents/.
  2. Validate file size and type in the browser before upload.
  3. Use temporary URLs with reasonable expiration windows.
  4. Clean up obsolete files instead of leaving orphaned storage objects.
  5. Route privileged batch-management tasks to backend or MCP flows instead of browser direct access.

Error handling

javascript
try {
  const result = await app.uploadFile({
    cloudPath: "uploads/file.jpg",
    filePath: selectedFile
  });
  console.log(result.fileID);
} catch (error) {
  console.error("Storage operation failed:", error);
}

© TencentCloudBase, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in config/source/skills/cloud-storage-web of TencentCloudBase/CloudBase-AI-Toolkit.

Open the folder on GitHubat commit ea2c202

Used in 3 other repositories

We found 8 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 3 other GitHub owners. This page covers the copy in TencentCloudBase/CloudBase-AI-Toolkit, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Cloud Storage Web next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Cloud Storage Web compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cloud Storage Web this skillTencentCloudBase/CloudBase-AI-Toolkit1.1k3 repos~4.4kAutomated safety check: NotesMIT
Answer Me With HTMLQingYunA/answer-me-with-html1.9k—~4.7kAutomated safety check: PassMIT
Feishu Driveraucvr/Group-Goki1123 repos~587Automated safety check: PassMIT
PikpakBengerthelorf/pikpaktui120—~1.2kAutomated safety check: PassApache-2.0
Advanced File ManagementMassLab-SII/open-agent-skills133—~1.6kAutomated safety check: PassApache-2.0
File Organizeralibaba/skill-up1.1k—~374Automated safety check: PassApache-2.0

Similar skills

  • Answer Me With HTML

    QingYunA/answer-me-with-html

    Turns an answer into a one-page visual HTML explainer: the model writes a short Markdown draft and the bundled CLI builds one page.

    1.9k GitHub stars~4.7k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Feishu Drive

    raucvr/Group-Goki

    Feishu cloud storage file management. An agent skill from raucvr/Group-Goki.

    112 GitHub starsUsed in 3 repos~587 tokens
    Productivity & AutomationAuto-check passed
  • Pikpak

    Bengerthelorf/pikpaktui

    Manage PikPak cloud storage — browse, upload, download, stream, share, and organize files via CLI.

    120 GitHub stars~1.2k tokensUpdated 2 mo ago
    Productivity & AutomationAuto-check passed
  • Advanced File Management

    MassLab-SII/open-agent-skills

    Advanced file management tools. An agent skill from MassLab-SII/open-agent-skills.

    133 GitHub stars~1.6k tokensUpdated 9 mo ago
    Productivity & AutomationAuto-check passed
  • File Organizer

    alibaba/skill-up

    Triggered when the user needs to organize project files, analyze directory structure, or generate a project report.

    1.1k GitHub stars~374 tokensUpdated 2 days ago
    Productivity & AutomationAuto-check passed
  • Runjam Defaults

    peintune/runjam

    Default constraints for every RunJam session. An agent skill from peintune/runjam.

    228 GitHub stars~2.7k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check passed

More from TencentCloudBase/CloudBase-AI-Toolkit

All 49 skills in this repo
  • AI Model Nodejs

    TencentCloudBase/CloudBase-AI-Toolkit

    A skill your agent uses for Node.js backend AI via @cloudbase/node-sdk (=3.16.0) — cloud functions, CloudRun, Express/Koa/NestJS, serverless APIs, scheduled jobs, LLM proxies, agent orchestration.

    1.1k GitHub starsUsed in 3 repos~5k tokens
    Auto-check passed
  • HTTP API Cloudbase

    TencentCloudBase/CloudBase-AI-Toolkit

    CloudBase official HTTP API client guide. An agent skill from TencentCloudBase/CloudBase-AI-Toolkit.

    1.1k GitHub starsUsed in 3 repos~2.1k tokens
    Auto-check passed
  • Cloud API Recipe Authoring

    TencentCloudBase/CloudBase-AI-Toolkit

    Author or revise a cloud-api-operations recipe (config/source/skills/cloud-api-operations/references/recipes/).

    1.1k GitHub stars~3.7k tokensUpdated yesterday
    Auto-check passed
  • Manage Local Skills

    TencentCloudBase/CloudBase-AI-Toolkit

    Analyze, standardize, validate, and sync locally maintained skills into agent skill directories with a skills CLI-aligned workflow.

    1.1k GitHub stars~1.2k tokensUpdated yesterday
    Auto-check passed
  • Cloudbase Agent Python

    TencentCloudBase/CloudBase-AI-Toolkit

    Build production-ready AI agent backends using the CloudBase Agent Python SDK — create agents with LangGraph/CrewAI/LlamaIndex, serve them via FastAPI with AG-UI protocol streaming +…

    1.1k GitHub starsUsed in 2 repos~2.9k tokens
    Auto-check: notes
  • Cloudbase

    TencentCloudBase/CloudBase-AI-Toolkit

    A skill your agent uses when you develop, design, build, deploy, debug, migrate, or troubleshoot CloudBase (腾讯云开发, 云开发, TCB, 微信云开发) projects — Web, 微信小程序, 小程序, uni-app, mobile (iOS, Android…

    1.1k GitHub starsUsed in 1 repo~4.7k tokens
    Auto-check passed

Questions about Cloud Storage Web

What does Cloud Storage Web do?

Complete guide for CloudBase cloud storage using Web SDK (@cloudbase/js-sdk) - upload, download, temporary URLs, file management, and best practices. Cloud Storage Web is an agent skill from TencentCloudBase/CloudBase-AI-Toolkit. Complete guide for CloudBase cloud storage using Web SDK (@cloudbase/js-sdk) - upload, download, temporary URLs, file management, and best practices.

When should I use Cloud Storage Web?

Cloud Storage Web fits situations like: tasks that involve File organization.

How do I install Cloud Storage Web in Claude Code?

Run `npx skills add TencentCloudBase/CloudBase-AI-Toolkit --skill cloud-storage-web -a claude-code`. Or copy the skill folder (config/source/skills/cloud-storage-web in TencentCloudBase/CloudBase-AI-Toolkit) into .claude/skills/cloud-storage-web in your project. Claude Code loads it when a task matches its description.

How do I install Cloud Storage Web in Codex?

Run `npx skills add TencentCloudBase/CloudBase-AI-Toolkit --skill cloud-storage-web -a codex`. Or copy the skill folder (config/source/skills/cloud-storage-web in TencentCloudBase/CloudBase-AI-Toolkit) into .agents/skills/cloud-storage-web in your project. Codex loads it when a task matches its description.

Can I use Cloud Storage Web in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TencentCloudBase/CloudBase-AI-Toolkit --skill cloud-storage-web -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cloud-storage-web, .gemini/skills/cloud-storage-web, .github/skills/cloud-storage-web and .opencode/skills/cloud-storage-web in your project.

What does Cloud Storage Web need to run?

Going by SKILL.md and its folder, Cloud Storage Web needs credentials named VITE_PUBLISHABLE_KEY.

Does Cloud Storage Web access the network?

SKILL.md names 2 domains. In commands or code: tcb.cloud.tencent.com; the agent is likely to contact it when it follows the instructions. As links in the text: docs.cloudbase.net. This is read from the text; nothing was executed.

Is Cloud Storage Web safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Cloud Storage Web use?

Cloud Storage Web is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Cloud Storage Web use?

About 4.4k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Cloud Storage Web?

Skills that share tags, products or a category with Cloud Storage Web: Answer Me With HTML (QingYunA/answer-me-with-html, 1.9k stars), Feishu Drive (raucvr/Group-Goki, 112 stars), Pikpak (Bengerthelorf/pikpaktui, 120 stars) and Advanced File Management (MassLab-SII/open-agent-skills, 133 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cloud Storage Web?

TencentCloudBase (a GitHub organization) maintains it in TencentCloudBase/CloudBase-AI-Toolkit, which has 1,132 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 6, 2026.

Source: TencentCloudBase/CloudBase-AI-Toolkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.