← Back to Skills Marketplace
go7hic

favicon-so

by YiChu · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
230
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install favicon-so
Description
favicon.so project API reference — covers the favicon fetch API and image-to-favicon-package convert API. Use when working on API routes, building integratio...
README (SKILL.md)

favicon.so API

API 1: Favicon Fetch

Fetch any website's favicon by domain.

Endpoints

Method Path Description
GET /api/favicon?url={domain} Fetch favicon with full options
GET /{domain} Short URL, returns favicon image directly

Parameters

Param Type Required Description
url string yes Domain or URL (e.g. github.com)
raw string no Set to "true" for JSON metadata instead of image

Response Modes

Image mode (default): Returns binary image data with headers:

  • Content-Type: actual image MIME type
  • Cache-Control: public, max-age=604800
  • Access-Control-Allow-Origin: *

JSON mode (raw=true):

{
  "url": "https://github.githubassets.com/favicons/favicon.svg",
  "format": "image/svg+xml",
  "isDefault": false
}

Implementation

  • Source: app/api/favicon/route.ts and app/[locale]/[domain]/route.ts
  • Core logic: lib/fetchFavicon.ts — tries HTML parsing, /favicon.ico, Google, DuckDuckGo fallbacks
  • Domain validation: lib/utils.tsnormalizeDomain(), isValidDomain()
  • Falls back to a default SVG icon when all sources fail

API 2: Image Convert

Convert any image into a complete favicon package with all sizes.

Endpoint

Method Path Description
POST /api/convert Upload image, get favicon package

Request

Content-Type: multipart/form-data

Field Type Required Description
image File yes Image file (PNG, JPG, WebP, GIF, BMP, TIFF)

Also accepts raw image bytes with Content-Type: image/* or application/octet-stream.

Query Parameters

Param Type Default Description
format string Set to "json" for base64 JSON output instead of ZIP

Response

ZIP mode (default): Returns application/zip containing 10 files:

  • favicon.ico (multi-resolution: 16, 32, 48, 64, 128)
  • favicon-16x16.png, favicon-32x32.png, favicon-48x48.png, favicon-64x64.png, favicon-128x128.png
  • apple-touch-icon.png (180×180)
  • android-chrome-192x192.png, android-chrome-512x512.png
  • site.webmanifest

JSON mode (format=json):

{
  "files": {
    "favicon-16x16.png": { "size": 1234, "base64": "iVBOR..." },
    "favicon.ico": { "size": 5678, "base64": "AAAB..." },
    ...
  }
}

Implementation

  • Source: app/api/convert/route.ts
  • Image processing: jimp (pure JS, Cloudflare Workers compatible)
  • ICO generation: custom multi-resolution ICO builder
  • ZIP packaging: jszip
  • CORS enabled, no auth required

Architecture Notes

  • All API routes are in app/api/ and skip the i18n middleware
  • The [locale]/[domain]/route.ts catch-all serves as a short URL for favicon fetch
  • Reserved paths (search, convert, api, generator, skill, mcp) are excluded from the domain catch-all
  • Client-side convert page (app/[locale]/convert/page.tsx) uses WASM (Photon + resvg) for browser-native processing
  • Server-side convert API uses jimp for Node.js/Workers compatibility
Usage Guidance
This is a documentation-only skill describing favicon fetch and convert APIs — it does not ask for secrets or install code. You can safely use it to get API shapes and implementation pointers. Consider: if you allow an agent access to your repository or to execute commands, review any code changes before applying them; if you run or install dependencies (jimp, jszip) in your environment, install from official package registries and verify versions. Also note the convert API is unauthenticated and CORS-enabled, so verify that behavior matches your security requirements before exposing sensitive inputs.
Capability Analysis
Type: OpenClaw Skill Name: favicon-so Version: 1.0.0 The skill bundle provides documentation and API references for the favicon.so project, covering favicon fetching and image conversion. The SKILL.md file contains standard technical descriptions of REST endpoints, parameters, and implementation details using common libraries like jimp and jszip, with no evidence of malicious intent, data exfiltration, or prompt injection.
Capability Assessment
Purpose & Capability
Name and description match the SKILL.md content: it documents favicon fetch and image-convert APIs, implementation files, and libraries (jimp, jszip). Nothing requested (env vars, binaries, or installs) is out of scope for an API reference.
Instruction Scope
SKILL.md is documentation-style: it describes endpoints, parameters, response formats, and where implementation lives in the repo. It does not instruct the agent to read unrelated system files, access credentials, or send data to external endpoints beyond the documented API behavior. The file paths referenced (app/api/..., lib/...) are appropriate for someone working on that project.
Install Mechanism
No install spec is provided (instruction-only), so nothing will be downloaded or written to disk by the skill itself. Libraries are mentioned for context but no installation commands are included.
Credentials
The skill requests no environment variables, credentials, or config paths. That aligns with a public API reference which explicitly states the server APIs are unauthenticated (CORS enabled, no auth required).
Persistence & Privilege
always:false and default invocation settings are present. The skill does not request persistent system presence or modify other skills/config; nothing in the documentation grants elevated privileges.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install favicon-so
  3. After installation, invoke the skill by name or use /favicon-so
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release providing favicon fetching and image-to-favicon package conversion APIs. - Fetch favicons for any domain using short or verbose endpoints, with support for image or JSON metadata responses. - Upload images to generate a full favicon package (ICO, PNGs, manifest) as ZIP or JSON. - Supports multiple input formats (PNG, JPG, WebP, GIF, BMP, TIFF) and raw byte uploads. - Includes robust fallback and domain validation logic for favicon fetching. - No authentication required; CORS enabled. - Core endpoints: `/api/favicon`, `/{domain}`, `/api/convert`.
Metadata
Slug favicon-so
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is favicon-so?

favicon.so project API reference — covers the favicon fetch API and image-to-favicon-package convert API. Use when working on API routes, building integratio... It is an AI Agent Skill for Claude Code / OpenClaw, with 230 downloads so far.

How do I install favicon-so?

Run "/install favicon-so" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is favicon-so free?

Yes, favicon-so is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does favicon-so support?

favicon-so is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created favicon-so?

It is built and maintained by YiChu (@go7hic); the current version is v1.0.0.

💬 Comments