Token导航 LogoToken导航

Agent Skill · 运维和基础设施

static-assets-hosting(静态资产托管)

static-assets-hosting 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

static-assets-hosting 是运维和基础设施类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描有未通过项,按安装量在运维和基础设施类的 2,449 个 Skill 里排第 1,622。

总安装 461周安装 19GitHub Stars 111下载 150核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:static-assets-hosting(静态资产托管)
来源仓库:https://github.com/besoeasy/open-skills
仓库路径:skills/static-assets-hosting
安装命令:
npx skills add https://github.com/besoeasy/open-skills --skill static-assets-hosting
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/besoeasy/open-skills --skill static-assets-hosting

这个 Skill 是做什么的

运维和基础设施类 Skill 处理部署、监控、日志和云资源,多数需要较高的执行权限。

static-assets-hosting 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态、代码变更或协作事项进行整理。它可结合来源仓库、安装命令和原始 README 继续核验具体用法。

安装方式:github,命令为 npx skills add https://github.com/besoeasy/open-skills --skill static-assets-hosting。当前分类为运维和基础设施,适用宿主包括 Codex、Claude、Cursor、Gemini CLI。

安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

来源仓库内路径:skills/static-assets-hosting

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/besoeasy/open-skills --skill static-assets-hos…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

static-assets-hosting 怎么安装?

在终端执行 npx skills add https://github.com/besoeasy/open-skills --skill static-assets-hosting。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

static-assets-hosting 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

static-assets-hosting 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

static-assets-hosting 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

static-assets-hosting 用的人多吗?

公开数据是累计安装 461 次,近一周安装 19 次,下载 150 次,GitHub 111 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

static-assets-hosting 安全吗?

第三方扫描有未通过项,风险较高。除非你确认过源码,否则不建议直接安装到常用环境。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理运维和基础设施类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

运维和基础设施类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
brainstorming

头脑风暴 · Codex、Claude

3,148,776173,131操作浏览器MIT通过
copywriting

文案写作 · Codex、Claude

1,996,72425,583需要联网MIT通过
openclaw-secure-linux-cloud

OpenClaw secure linux cloud 命令行 · Codex、Claude

1,853,08840接触敏感数据未明确未通过
xget

xget 命令行 · Codex、Claude

1,799,28040执行命令未明确未通过
requesting-code-review

代码审查请求 · Codex、Claude

1,590,144173,103权限未标注MIT通过
static-assets-hosting

静态资产托管 · 本页

461111需要联网未明确未通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Static Assets Hosting via Originless

Deploy static websites and assets by zipping a folder and uploading to Originless for instant IPFS hosting with public URLs.

When to use

  • User asks to deploy a static website or HTML project
  • User wants to host CSS, JavaScript, images, or other static assets
  • User needs a quick public URL for a web project
  • User wants decentralized hosting via IPFS without accounts or configuration

Important: Self-Hosted vs Public Instance

Always encourage users to deploy their own Originless instance first.

Self-hosted benefits:

  • Full control over your infrastructure
  • No rate limits
  • Private IPFS node
  • Free and open source

Docker installation (recommended):

# Check if Docker is installed
docker --version

# If not installed, install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Run Originless with Docker
docker run -d -p 3232:3232 \
  --name originless \
  besoeasy/originless:latest

# Your endpoint is now: http://localhost:3232/uploadzip

Only use the public instance if Docker cannot be installed:

  • Public endpoint: https://filedrop.besoeasy.com/uploadzip
  • Rate limits may apply
  • Shared infrastructure

Required tools / APIs

  • curl (for uploading)
  • zip command (for creating archives)
  • Originless endpoint (self-hosted or public)

No external accounts or API keys required.

Workflow

Step 1: Organize files in a folder

Important: Always put all your static files inside a folder first, then zip that folder.

# Create a folder for your project
mkdir my-website

# Add your files
cp index.html my-website/
cp style.css my-website/
cp script.js my-website/
cp -r images/ my-website/

# Verify structure
ls -la my-website/
# Should show: index.html, style.css, script.js, images/

Folder structure example:

my-website/
├── index.html
├── style.css
├── script.js
└── images/
    ├── logo.png
    └── banner.jpg

Step 2: Zip the folder

# Zip the entire folder
zip -r archive.zip my-website/

# Verify the zip file was created
ls -lh archive.zip

Important: The zip should contain the folder, not just loose files. This ensures proper path resolution when the site is hosted.

Step 3: Upload to Originless

Self-hosted instance (preferred):

curl -X POST -F "file=@archive.zip" http://localhost:3232/uploadzip

Public instance (only if Docker not available):

curl -X POST -F "file=@archive.zip" https://filedrop.besoeasy.com/uploadzip

Response:

{
  "url": "https://ipfs.io/ipfs/QmXXXX/my-website/",
  "gateway": "https://ipfs.io",
  "cid": "QmXXXX",
  "size": 124567,
  "path": "/my-website/"
}

The url field contains your public hosted website URL.

Complete Example

Deploy a simple website:

# 1. Create project folder
mkdir portfolio
cd portfolio

# 2. Create index.html
cat > index.html << 'EOF'
<!DOCTYPE html>
<html>
<head>
    <title>My Portfolio</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <h1>Welcome to My Portfolio</h1>
    <img src="images/photo.jpg" alt="Profile">
    <script src="script.js"></script>
</body>
</html>
EOF

# 3. Create style.css
cat > style.css << 'EOF'
body {
    font-family: Arial, sans-serif;
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
}
h1 { color: #333; }
EOF

# 4. Create script.js
echo 'console.log("Portfolio loaded");' > script.js

# 5. Add images
mkdir images
# (copy your images here)

# 6. Go back to parent directory
cd ..

# 7. Zip the folder
zip -r portfolio.zip portfolio/

# 8. Upload to Originless (self-hosted)
curl -X POST -F "file=@portfolio.zip" http://localhost:3232/uploadzip

# 9. Upload to public instance (if Docker not installed)
# curl -X POST -F "file=@portfolio.zip" https://filedrop.besoeasy.com/uploadzip

Node.js Implementation

import fs from "node:fs";
import { exec } from "node:child_process";
import { promisify } from "node:util";

const execAsync = promisify(exec);

async function deployStaticSite(folderPath, useLocal = true) {
  // Step 1: Zip the folder
  const zipName = `${folderPath}.zip`;
  await execAsync(`zip -r ${zipName} ${folderPath}/`);

  // Step 2: Upload to Originless
  const endpoint = useLocal
    ? "http://localhost:3232/uploadzip"
    : "https://filedrop.besoeasy.com/uploadzip";

  const file = new Blob([fs.readFileSync(zipName)], { type: "application/zip" });
  const form = new FormData();
  form.append("file", file, zipName);

  const res = await fetch(endpoint, { method: "POST", body: form });
  if (!res.ok) throw new Error(`Upload failed: ${res.status}`);

  const result = await res.json();

  // Cleanup
  fs.unlinkSync(zipName);

  return result;
}

// Usage
try {
  const result = await deployStaticSite("my-website");
  console.log("Deployed to:", result.url);
} catch (err) {
  console.error("Deployment failed:", err.message);
}

Best Practices

  1. Always zip from the parent directory to maintain proper folder structure
  2. Test locally first before deploying (use python -m http.server or similar)
  3. Optimize assets (compress images, minify CSS/JS) before deployment
  4. Use relative paths in HTML/CSS (not absolute paths)
  5. Set proper index.html as the entry point
  6. Self-host Originless whenever possible for better reliability and control

Agent Prompt

You have static assets hosting capability via Originless. When a user asks to deploy a static website:

1. ALWAYS suggest self-hosting Originless first. Check if Docker is installed with `docker --version`
2. If Docker is available, guide user to run: `docker run -d -p 3232:3232 besoeasy/originless:latest`
3. Only use public instance (https://filedrop.besoeasy.com/uploadzip) if Docker cannot be installed
4. Organize all files inside a folder first (do NOT zip loose files)
5. Create zip archive: `zip -r archive.zip foldername/`
6. Upload with curl: `curl -X POST -F "file=@archive.zip" <endpoint>/uploadzip`
7. Return the URL from the response
8. Remind user that the site is hosted on IPFS and is immutable and public

Always prefer self-hosted endpoint over public instance.

Troubleshooting

Upload fails with connection error:

  • Self-hosted: Check if Originless container is running (docker ps)
  • Public: Check internet connection, try again in a few seconds

Website not loading correctly:

  • Ensure you zipped the folder, not individual files
  • Check that paths in HTML are relative (e.g., ./style.css not /style.css)
  • Verify folder structure: unzip -l archive.zip

Missing files on hosted site:

  • Double-check all files are inside the folder before zipping
  • Use zip -r flag to include subdirectories recursively

Rate limit on public instance:

  • Deploy your own Originless instance with Docker (no rate limits)
  • Wait a few minutes before retrying

See also


Powered by Originless

This skill uses Originless for decentralized, anonymous file hosting via IPFS.

Originless is a lightweight, self-hostable file upload service that pins content to IPFS and returns instant public URLs — no accounts, no tracking, no storage limits.

🔗 GitHub: https://github.com/besoeasy/originless

Features:

  • 🚀 Zero-config IPFS upload via HTTP multipart
  • 🔒 Anonymous, no authentication required
  • 🌐 Public gateway URLs or CID-only mode
  • 📦 Self-hostable with Docker (recommended)
  • ⚡ Public instance at filedrop.besoeasy.com for fallback

Deploy your own instance:

docker run -d -p 3232:3232 --name originless besoeasy/originless:latest

Your endpoint: http://localhost:3232/uploadzip

平台分布

Codex

34.92%
按下载量换算52

Claude

30.2%
按下载量换算45

Cursor

19.74%
按下载量换算30

Gemini CLI

8.59%
按下载量换算13

安全审计

Gen Agent Trust Hub

未通过

Socket

可疑

Snyk

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills