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.
Complete guide for CloudBase cloud storage using Web SDK (@cloudbase/js-sdk) - upload, download, temporary URLs, file management, and best practices.
$ npx skills add TencentCloudBase/CloudBase-AI-Toolkit --skill cloud-storage-web -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TencentCloudBase/CloudBase-AI-Toolkit cloud-storage-web --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "cloud-storage-web" agent skill from https://github.com/TencentCloudBase/CloudBase-AI-Toolkit/tree/main/config/source/skills/cloud-storage-web into .claude/skills/cloud-storage-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloud-storage-web", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/TencentCloudBase/CloudBase-AI-Toolkit/tree/main/config/source/skills/cloud-storage-webType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add TencentCloudBase/CloudBase-AI-Toolkit --skill cloud-storage-web -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TencentCloudBase/CloudBase-AI-Toolkit cloud-storage-web --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TencentCloudBase/CloudBase-AI-Toolkit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/config/source/skills/cloud-storage-web .agents/skills/cloud-storage-web && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cloud-storage-web" agent skill from https://github.com/TencentCloudBase/CloudBase-AI-Toolkit/tree/main/config/source/skills/cloud-storage-web into .agents/skills/cloud-storage-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloud-storage-web", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TencentCloudBase/CloudBase-AI-Toolkit --skill cloud-storage-web -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TencentCloudBase/CloudBase-AI-Toolkit cloud-storage-web --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TencentCloudBase/CloudBase-AI-Toolkit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/config/source/skills/cloud-storage-web .cursor/skills/cloud-storage-web && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cloud-storage-web" agent skill from https://github.com/TencentCloudBase/CloudBase-AI-Toolkit/tree/main/config/source/skills/cloud-storage-web into .cursor/skills/cloud-storage-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloud-storage-web", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/TencentCloudBase/CloudBase-AI-Toolkit.git --path config/source/skills/cloud-storage-web--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add TencentCloudBase/CloudBase-AI-Toolkit --skill cloud-storage-web -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TencentCloudBase/CloudBase-AI-Toolkit cloud-storage-web --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TencentCloudBase/CloudBase-AI-Toolkit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/config/source/skills/cloud-storage-web .gemini/skills/cloud-storage-web && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cloud-storage-web" agent skill from https://github.com/TencentCloudBase/CloudBase-AI-Toolkit/tree/main/config/source/skills/cloud-storage-web into .gemini/skills/cloud-storage-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloud-storage-web", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install TencentCloudBase/CloudBase-AI-Toolkit cloud-storage-webInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add TencentCloudBase/CloudBase-AI-Toolkit --skill cloud-storage-web -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TencentCloudBase/CloudBase-AI-Toolkit.git skills-src && mkdir -p .github/skills && cp -r skills-src/config/source/skills/cloud-storage-web .github/skills/cloud-storage-web && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cloud-storage-web" agent skill from https://github.com/TencentCloudBase/CloudBase-AI-Toolkit/tree/main/config/source/skills/cloud-storage-web into .github/skills/cloud-storage-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloud-storage-web", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TencentCloudBase/CloudBase-AI-Toolkit --skill cloud-storage-web -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TencentCloudBase/CloudBase-AI-Toolkit cloud-storage-web --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TencentCloudBase/CloudBase-AI-Toolkit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/config/source/skills/cloud-storage-web .opencode/skills/cloud-storage-web && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cloud-storage-web" agent skill from https://github.com/TencentCloudBase/CloudBase-AI-Toolkit/tree/main/config/source/skills/cloud-storage-web into .opencode/skills/cloud-storage-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloud-storage-web", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cloud-storage-webComplete 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.
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.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit ea2c202. It shows what the files ask for, not the result of running them.
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.
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.
Hosts in commands or code, which the agent is likely to contact:
tcb.cloud.tencent.comAlso links to:
docs.cloudbase.netFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
VITE_PUBLISHABLE_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
ublishableKey")`; then write the key to `.env.local` as `VITE_PUBLISHABLE_KEY` (create the file if missing) and read itAutomated 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.
The full file from TencentCloudBase/CloudBase-AI-Toolkit at commit ea2c202, republished under its MIT licence (© TencentCloudBase). 1,818 words, ~4,359 tokens.
.claude/skills/cloud-storage-web/SKILL.md (or your agent's skills folder).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.
@cloudbase/js-sdk.uploadFile, getTempFileURL, deleteFile, or downloadFile in frontend code.../auth-web-cloudbase/SKILL.md../web-development/SKILL.md../cloudbase-platform/SKILL.mdmanageHosting(action="upload").STORAGE_NOT_EXIST; it means the target storage bucket/resource is not ready, not that the browser upload code should fabricate a URL.host:port before testing app.uploadFile().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.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.When the app runs on a local browser origin and must upload files from the frontend:
queryEnv with action="domains" to inspect the current security-domain whitelist.http://127.0.0.1:4173 -> whitelist entry 127.0.0.1:4173http://localhost:5173 -> whitelist entry localhost:5173envDomainManagement with action="create" and add that host entry before relying on app.uploadFile().host:port.queryEnv(action="domains") rather than blind-sleeping for a fixed long interval.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.
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:
| Step | Supabase | CloudBase |
|---|---|---|
| Create bucket | supabase.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. |
| Upload | supabase.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 error | Bucket not found | Browser 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:
6d63-…-1409864723 shape returned by DescribeEnvs.Storages[]) is NOT a valid pgstore bucket — do not assume it works.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.app.storage.from('covers').upload('<file>', file) — bucket 名传入 from()app.storage.from().upload('covers/<file>', file) — bucket 名作为路径第一段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.
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 的上传 APIapp.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)。
| 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),不要硬依赖单一取址流程。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:
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.STORAGE_PERMISSION_DENIED when calling app.storage.from('covers').upload() in PG mode.IF NOT EXISTS in a DO $$ block when re-applying to avoid "policy already exists" errors on re-run.Use this skill for browser-side cloud storage operations through the CloudBase Web SDK.
Typical tasks:
Init reference: webv3/initialization.md
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:
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.app.uploadFile()app.getTempFileURL()app.deleteFile()app.downloadFile()const result = await app.uploadFile({
cloudPath: "uploads/avatar.jpg",
filePath: selectedFile
});cloudPath must include the filename./ to create folder structure.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.queryEnv(action="domains"), which is typically host:port instead of a full http://... URL.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.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.await app.uploadFile({
cloudPath: "uploads/avatar.jpg",
filePath: selectedFile,
onUploadProgress: ({ loaded, total }) => {
const percent = Math.round((loaded * 100) / total);
console.log(percent);
}
});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:
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");
}await app.deleteFile({
fileList: ["cloud://env-id/uploads/old-avatar.jpg"]
});Always inspect per-file results before assuming deletion succeeded.
await app.downloadFile({
fileID: "cloud://env-id/uploads/report.pdf"
});Use this for browser-initiated downloads. For programmatic rendering or preview, prefer getTempFileURL().
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.
{ "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.
{
"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>uploads/, avatars/, documents/.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
Just SKILL.md in config/source/skills/cloud-storage-web of TencentCloudBase/CloudBase-AI-Toolkit.
Open the folder on GitHubat commit ea2c202
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.
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cloud Storage Web this skillTencentCloudBase/CloudBase-AI-Toolkit | 1.1k | 3 repos | ~4.4k | Automated safety check: Notes | MIT | |
| Answer Me With HTMLQingYunA/answer-me-with-html | 1.9k | — | ~4.7k | Automated safety check: Pass | MIT | |
| Feishu Driveraucvr/Group-Goki | 112 | 3 repos | ~587 | Automated safety check: Pass | MIT | |
| PikpakBengerthelorf/pikpaktui | 120 | — | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| Advanced File ManagementMassLab-SII/open-agent-skills | 133 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| File Organizeralibaba/skill-up | 1.1k | — | ~374 | Automated safety check: Pass | Apache-2.0 |
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.
raucvr/Group-Goki
Feishu cloud storage file management. An agent skill from raucvr/Group-Goki.
Bengerthelorf/pikpaktui
Manage PikPak cloud storage — browse, upload, download, stream, share, and organize files via CLI.
MassLab-SII/open-agent-skills
Advanced file management tools. An agent skill from MassLab-SII/open-agent-skills.
alibaba/skill-up
Triggered when the user needs to organize project files, analyze directory structure, or generate a project report.
peintune/runjam
Default constraints for every RunJam session. An agent skill from peintune/runjam.
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.
TencentCloudBase/CloudBase-AI-Toolkit
CloudBase official HTTP API client guide. An agent skill from TencentCloudBase/CloudBase-AI-Toolkit.
TencentCloudBase/CloudBase-AI-Toolkit
Author or revise a cloud-api-operations recipe (config/source/skills/cloud-api-operations/references/recipes/).
TencentCloudBase/CloudBase-AI-Toolkit
Analyze, standardize, validate, and sync locally maintained skills into agent skill directories with a skills CLI-aligned workflow.
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 +…
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…
Categories
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.
Cloud Storage Web fits situations like: tasks that involve File organization.
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.
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.
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.
Going by SKILL.md and its folder, Cloud Storage Web needs credentials named VITE_PUBLISHABLE_KEY.
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.
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.
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.
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.
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.
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.