{
  "schemaVersion": "1.0",
  "item": {
    "slug": "uf2-net",
    "name": "uf2.net URL Shortener",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/setdemos/uf2-net",
    "canonicalUrl": "https://clawhub.ai/setdemos/uf2-net",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/uf2-net",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=uf2-net",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/api.md",
      "scripts/uf2.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/uf2-net"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/uf2-net",
    "agentPageUrl": "https://openagent3.xyz/skills/uf2-net/agent",
    "manifestUrl": "https://openagent3.xyz/skills/uf2-net/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/uf2-net/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "uf2.net URL Shortener",
        "body": "Create and manage short URLs via the uf2.net API. This skill provides a CLI wrapper for the uf2.net service (https://uf2.net), an API-first URL shortener designed for automation and bots."
      },
      {
        "title": "1. Register for API Key",
        "body": "If you don't have a uf2.net account:\n\ncurl -X POST https://uf2.net/api/v1/accounts/register \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"username\":\"your-username\"}'\n\nResponse includes api_key field. Store this securely (see Credential Management below)."
      },
      {
        "title": "2. Set Environment Variable",
        "body": "export UF2_API_KEY=\"uf2_...\"\n\nImportant: Do not hardcode API keys in scripts or commit them to version control."
      },
      {
        "title": "3. Common Operations",
        "body": "Shorten a URL:\n\nscripts/uf2.sh create \"https://example.com/long/path\"\n# → {\"short_url\":\"https://uf2.net/abc123\",...}\n\nCustom slug:\n\nscripts/uf2.sh create \"https://github.com/my-repo\" \"my-repo\" \"My GitHub Repo\"\n# → {\"short_url\":\"https://uf2.net/my-repo\",...}\n\nList your links:\n\nscripts/uf2.sh list 10\n# → {\"links\":[...],\"total\":42}\n\nGet link stats (public, no auth needed):\n\nscripts/uf2.sh get abc123\n# → {\"code\":\"abc123\",\"click_count\":42,...}\n\nDelete a link:\n\nscripts/uf2.sh delete abc123"
      },
      {
        "title": "Recommended: Environment Variables",
        "body": "Most secure for temporary/session use:\n\nexport UF2_API_KEY=\"uf2_...\""
      },
      {
        "title": "For Persistent Storage",
        "body": "Choose one based on your security requirements:\n\nOption 1: Shell profile (user-only access)\n\necho 'export UF2_API_KEY=\"uf2_...\"' >> ~/.zshrc\n# or ~/.bashrc for bash\n\nOption 2: OpenClaw secret store (if available)\n\n# Store in OpenClaw's secure credential storage\n# (consult OpenClaw docs for secret management)\n\nOption 3: System keychain/credential manager\n\n# macOS Keychain, Linux Secret Service, Windows Credential Manager\n# Use OS-native secure storage\n\n⚠️ Avoid: Storing keys in plain text files in shared or version-controlled directories."
      },
      {
        "title": "Direct API Usage",
        "body": "For operations not covered by the script, use curl directly. See api.md for full API reference.\n\nExample:\n\ncurl -X POST https://uf2.net/api/v1/links \\\n  -H \"X-API-Key: $UF2_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://example.com\",\"slug\":\"custom\"}'"
      },
      {
        "title": "Service Details",
        "body": "Service: uf2.net (https://uf2.net)\nType: API-first URL shortener for bots and engineers\nTLS: Yes (HTTPS only)\nAPI Docs: https://uf2.net/docs (Swagger), https://uf2.net/redoc (ReDoc)\nRegistration: Open, free tier available\nRate Limits: 20 registrations per IP per hour; reasonable use for authenticated endpoints"
      },
      {
        "title": "Key Features",
        "body": "Never expires - Links remain active indefinitely\nCustom slugs - Brand your short URLs (4-64 chars, lowercase a-z0-9_-)\nClick tracking - Monitor usage via click_count\nPublic metadata - Anyone can view link stats (GET /links/{code})\nSimple API - RESTful with JSON responses"
      },
      {
        "title": "Constraints",
        "body": "Max URL length: 2048 characters\nCustom slugs are case-insensitive (stored lowercase)\nSlug conflicts return 409 error\nPrivate/localhost URLs rejected\nRegistration rate limit: 20 per IP per hour"
      },
      {
        "title": "Security Notes",
        "body": "API key required: All authenticated operations require UF2_API_KEY header\nLink visibility: All created links are publicly accessible (anyone with the short URL can access the target)\nMetadata visibility: Link metadata (click counts, original URL) is publicly readable\nNo link expiration: Links persist indefinitely unless manually deleted\nPrivate URL rejection: The service rejects localhost and private IP ranges"
      },
      {
        "title": "Resources",
        "body": "Script: scripts/uf2.sh - CLI wrapper for common operations\nReference: references/api.md - Full API documentation\nService homepage: https://uf2.net\nAPI docs: https://uf2.net/docs (Swagger), https://uf2.net/redoc (ReDoc)"
      }
    ],
    "body": "uf2.net URL Shortener\n\nCreate and manage short URLs via the uf2.net API. This skill provides a CLI wrapper for the uf2.net service (https://uf2.net), an API-first URL shortener designed for automation and bots.\n\nQuick Start\n1. Register for API Key\n\nIf you don't have a uf2.net account:\n\ncurl -X POST https://uf2.net/api/v1/accounts/register \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"username\":\"your-username\"}'\n\n\nResponse includes api_key field. Store this securely (see Credential Management below).\n\n2. Set Environment Variable\nexport UF2_API_KEY=\"uf2_...\"\n\n\nImportant: Do not hardcode API keys in scripts or commit them to version control.\n\n3. Common Operations\n\nShorten a URL:\n\nscripts/uf2.sh create \"https://example.com/long/path\"\n# → {\"short_url\":\"https://uf2.net/abc123\",...}\n\n\nCustom slug:\n\nscripts/uf2.sh create \"https://github.com/my-repo\" \"my-repo\" \"My GitHub Repo\"\n# → {\"short_url\":\"https://uf2.net/my-repo\",...}\n\n\nList your links:\n\nscripts/uf2.sh list 10\n# → {\"links\":[...],\"total\":42}\n\n\nGet link stats (public, no auth needed):\n\nscripts/uf2.sh get abc123\n# → {\"code\":\"abc123\",\"click_count\":42,...}\n\n\nDelete a link:\n\nscripts/uf2.sh delete abc123\n\nCredential Management\nRecommended: Environment Variables\n\nMost secure for temporary/session use:\n\nexport UF2_API_KEY=\"uf2_...\"\n\nFor Persistent Storage\n\nChoose one based on your security requirements:\n\nOption 1: Shell profile (user-only access)\n\necho 'export UF2_API_KEY=\"uf2_...\"' >> ~/.zshrc\n# or ~/.bashrc for bash\n\n\nOption 2: OpenClaw secret store (if available)\n\n# Store in OpenClaw's secure credential storage\n# (consult OpenClaw docs for secret management)\n\n\nOption 3: System keychain/credential manager\n\n# macOS Keychain, Linux Secret Service, Windows Credential Manager\n# Use OS-native secure storage\n\n\n⚠️ Avoid: Storing keys in plain text files in shared or version-controlled directories.\n\nDirect API Usage\n\nFor operations not covered by the script, use curl directly. See api.md for full API reference.\n\nExample:\n\ncurl -X POST https://uf2.net/api/v1/links \\\n  -H \"X-API-Key: $UF2_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://example.com\",\"slug\":\"custom\"}'\n\nService Details\nService: uf2.net (https://uf2.net)\nType: API-first URL shortener for bots and engineers\nTLS: Yes (HTTPS only)\nAPI Docs: https://uf2.net/docs (Swagger), https://uf2.net/redoc (ReDoc)\nRegistration: Open, free tier available\nRate Limits: 20 registrations per IP per hour; reasonable use for authenticated endpoints\nKey Features\nNever expires - Links remain active indefinitely\nCustom slugs - Brand your short URLs (4-64 chars, lowercase a-z0-9_-)\nClick tracking - Monitor usage via click_count\nPublic metadata - Anyone can view link stats (GET /links/{code})\nSimple API - RESTful with JSON responses\nConstraints\nMax URL length: 2048 characters\nCustom slugs are case-insensitive (stored lowercase)\nSlug conflicts return 409 error\nPrivate/localhost URLs rejected\nRegistration rate limit: 20 per IP per hour\nSecurity Notes\nAPI key required: All authenticated operations require UF2_API_KEY header\nLink visibility: All created links are publicly accessible (anyone with the short URL can access the target)\nMetadata visibility: Link metadata (click counts, original URL) is publicly readable\nNo link expiration: Links persist indefinitely unless manually deleted\nPrivate URL rejection: The service rejects localhost and private IP ranges\nResources\nScript: scripts/uf2.sh - CLI wrapper for common operations\nReference: references/api.md - Full API documentation\nService homepage: https://uf2.net\nAPI docs: https://uf2.net/docs (Swagger), https://uf2.net/redoc (ReDoc)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/setdemos/uf2-net",
    "publisherUrl": "https://clawhub.ai/setdemos/uf2-net",
    "owner": "setdemos",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/uf2-net",
    "downloadUrl": "https://openagent3.xyz/downloads/uf2-net",
    "agentUrl": "https://openagent3.xyz/skills/uf2-net/agent",
    "manifestUrl": "https://openagent3.xyz/skills/uf2-net/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/uf2-net/agent.md"
  }
}