Ads Competitors
zubair-trabzada/ai-ads-claude
Competitive Ad Intelligence. An agent skill from zubair-trabzada/ai-ads-claude.
Build, review, debug, reverse-engineer data sources for, and package FongMi/WebHome custom homepage single-file HTML.
$ npx skills add webhtv/webhtv --skill webhome-homepage-builder -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install webhtv/webhtv webhome-homepage-builder --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/webhtv/webhtv.git skills-src && mkdir -p .claude/skills && cp -r skills-src/webhome-devkit/skills/webhome-homepage-builder .claude/skills/webhome-homepage-builder && 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 "webhome-homepage-builder" agent skill from https://github.com/webhtv/webhtv/tree/main/webhome-devkit/skills/webhome-homepage-builder into .claude/skills/webhome-homepage-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webhome-homepage-builder", 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/webhtv/webhtv/tree/main/webhome-devkit/skills/webhome-homepage-builderType 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 webhtv/webhtv --skill webhome-homepage-builder -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install webhtv/webhtv webhome-homepage-builder --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/webhtv/webhtv.git skills-src && mkdir -p .agents/skills && cp -r skills-src/webhome-devkit/skills/webhome-homepage-builder .agents/skills/webhome-homepage-builder && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "webhome-homepage-builder" agent skill from https://github.com/webhtv/webhtv/tree/main/webhome-devkit/skills/webhome-homepage-builder into .agents/skills/webhome-homepage-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webhome-homepage-builder", 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 webhtv/webhtv --skill webhome-homepage-builder -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install webhtv/webhtv webhome-homepage-builder --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/webhtv/webhtv.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/webhome-devkit/skills/webhome-homepage-builder .cursor/skills/webhome-homepage-builder && 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 "webhome-homepage-builder" agent skill from https://github.com/webhtv/webhtv/tree/main/webhome-devkit/skills/webhome-homepage-builder into .cursor/skills/webhome-homepage-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webhome-homepage-builder", 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/webhtv/webhtv.git --path webhome-devkit/skills/webhome-homepage-builder--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 webhtv/webhtv --skill webhome-homepage-builder -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install webhtv/webhtv webhome-homepage-builder --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/webhtv/webhtv.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/webhome-devkit/skills/webhome-homepage-builder .gemini/skills/webhome-homepage-builder && 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 "webhome-homepage-builder" agent skill from https://github.com/webhtv/webhtv/tree/main/webhome-devkit/skills/webhome-homepage-builder into .gemini/skills/webhome-homepage-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webhome-homepage-builder", 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 webhtv/webhtv webhome-homepage-builderInstalls 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 webhtv/webhtv --skill webhome-homepage-builder -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/webhtv/webhtv.git skills-src && mkdir -p .github/skills && cp -r skills-src/webhome-devkit/skills/webhome-homepage-builder .github/skills/webhome-homepage-builder && 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 "webhome-homepage-builder" agent skill from https://github.com/webhtv/webhtv/tree/main/webhome-devkit/skills/webhome-homepage-builder into .github/skills/webhome-homepage-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webhome-homepage-builder", 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 webhtv/webhtv --skill webhome-homepage-builder -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install webhtv/webhtv webhome-homepage-builder --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/webhtv/webhtv.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/webhome-devkit/skills/webhome-homepage-builder .opencode/skills/webhome-homepage-builder && 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 "webhome-homepage-builder" agent skill from https://github.com/webhtv/webhtv/tree/main/webhome-devkit/skills/webhome-homepage-builder into .opencode/skills/webhome-homepage-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webhome-homepage-builder", 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.
webhome-homepage-builderBuild, review, debug, reverse-engineer data sources for, and package FongMi/WebHome custom homepage single-file HTML.
Webhome Homepage Builder is an agent skill from webhtv/webhtv. Build, review, debug, reverse-engineer data sources for, and package FongMi/WebHome custom homepage single-file HTML. Use when Codex is asked to create or modify a WebHome homePage, App custom homepage, nostr.html-style recommendation page, TMDB/Nostr/PanSou homepage, transparent WebView UI, WebHome fm SDK app, TV remote-focus homepage, chrome mode integration, fm.req/fm.res/fm.cache/fm.search/fm.pan/fm.ui usage, old Android WebView compatibility fixes, JS/API reverse engineering for homepage data, or…
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including scripts, reference files and assets (for example `agents/openai.yaml`, `references/js-reverse-and-waf-workflow.md` and `references/nostr-demo-patterns.md`).
It sits in Frontend & Design, covering HTML artifacts and Reverse engineering and malware. It works with Cloudflare and Android. The repository describes itself as: WebHomeTV 基于FongMi二次开发,增强了 WebHome 自定义首页、App Native SDK、网盘链接检测 和 Nostr推荐首页。 这个项目的核心目标是让 CSP 站点首页可以变成一个真正可开发的网页应用:开发者可以用 HTML/CSS/JavaScript 定制首页,再通过 App 暴露的 Native… The licence is GPL-3.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4e30ffa. 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.
Ships 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Webhome Homepage Builder loads about 3.8k tokens when it runs, and up to ~67k if it reads all its reference files. Until then it costs about 155 tokens; SKILL.md has 1,838 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 found no risky patterns in SKILL.md.
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); the scripts in this folder are not scanned.
The full file from webhtv/webhtv at commit 4e30ffa, republished under its GPL-3.0 licence (© webhtv). 1,838 words, ~3,761 tokens.
.claude/skills/webhome-homepage-builder/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.Treat old Android WebView compatibility as a release blocker. App minSdk is 24 and many TV boxes stay near Chromium 51-70. A syntax-level mistake can make the whole single-file homepage white-screen before any try/catch runs.
Before finishing any generated or edited WebHome HTML:
python3 scripts/check_webhome_compat.py <html-file> from this skill.Read only what is needed:
references/webhome-app-guide.md: complete app development document. For homepage work, read chapters 14-25, 29-32; read chapter 13 for local HTTP/debug endpoints.references/webhome-homepage-patterns.md: distilled homepage architecture, SDK, UI, routing, PanSou, Nostr, and performance guidance.references/old-webview-compatibility.md: detailed WebView compatibility rules and review checklist.references/nostr-demo-patterns.md: patterns extracted from nostr.html.references/js-reverse-and-waf-workflow.md: read when homepage data depends on hidden APIs/signatures/player resources, runtime request capture, local JS reproduction, or Cloudflare/WAF diagnosis.assets/demo/nostr.html: full production-grade single-file homepage example. Reuse its bootstrap, fallback CSS patterns, SDK wrapper, grid batching, focus-domain handling, and restore flow when relevant.scripts/check_webhome_compat.py: static compatibility scanner for generated HTML/CSS/JS.scripts/probe_webhome_target.py: passive remote target/WAF classifier for deciding whether direct fm.req() homepage data fetching is realistic.Prefer one self-contained HTML file unless the user explicitly asks for a multi-file project. Include:
<!doctype html>, lang, charset=utf-8, and viewport with viewport-fit=cover.fm-native, no-layout-gap, no-css-functions, and no-aspect-ratio.fmsdk when App SDK data is required, and provides browser-preview fallbacks.pic for poster/default artwork and wallPic for playback-page background/backdrop.sites[].homePage usage.Configuration example:
{
"key": "webhome_site_key",
"name": "WebHome",
"type": 3,
"api": "csp_Builtin",
"homePage": "./home.html",
"chromeMode": "edge"
}Design the homepage in these layers:
window.WEBHOME_CONFIG object for API bases, feature toggles, cache keys, relay lists, PanSou options, and visual defaults.sdk() helper that uses window.fm in App and browser fallbacks during preview.fm.req() for cross-origin API JSON; use fm.res() for images, video, subtitles, and CSS background resources that need headers or cookies.fm.cache after SDK readiness for durable App state; use localStorage only as browser-preview fallback or disposable UI state.fm.cache; restore deep UI only on _fm_restore=1, fmresume, pageshow, or playback return.When the data source is an existing website rather than a documented API, first run python3 scripts/probe_webhome_target.py <url> and follow references/js-reverse-and-waf-workflow.md. If the probe reports waf-blocked, do not build a direct scraping homepage unless the user provides an authorized API, owner-controlled proxy, public feed, or HAR/HTML from an authorized session. Prefer a WebHome extension when the App WebView can normally load the page and the useful data only exists in same-origin runtime state.
Use these WebHome SDK APIs instead of browser-only assumptions:
fm.req(url, options) for API data. It bypasses CORS through Native OkHttp and returns { ok, status, headers, body, error }.fm.res(url, options) for DOM resources. It returns a local /webResource URL and supports headers, cookies, Range, and CORS.fm.search(keyword, { direct: true, pic, wallPic }) to jump into App search with fewer return layers while preserving WebHome detail artwork for later native playback from search results.fm.play(url, title, options) for direct media URLs. Include options.pic and options.wallPic when known; wallPic is the only playback-page background source.fm.vod(siteKey, vodId, title, pic, options) for native CSP detail/playback. Pass options.wallPic when the homepage knows a backdrop.fm.vodInline(payload) for temporary multi-episode native playback. Include vod_pic/pic and wallPic in the payload.fm.preloadArtwork(pic, wallPic) after detail artwork is known, so Native can prewarm the player images. Do not block the user click waiting for this preload.fm.pan.play({ type, url, password, title, pic, wallPic }) for pan shares, magnet, ed2k, thunder, jianpian, and push-style playback. When the homepage renders its own recent history, cache push URL artwork with fm.cache before playback and restore wallPic after fm.history(), because native push history may not carry backdrops.fm.config() before fm.pan.check(). If driveCheck is false, do not call detection.fm.history() and fm.stat() to compensate watch progress after native playback.fm.ui.setChrome(), fm.ui.restoreChrome(), and fm.ui.getViewport() for homepage chrome and safe-area integration.Never hard-code the local HTTP port. Use SDK methods or fm.device().ip when a base URL is genuinely needed.
Do not embed stealth fingerprint patches, CAPTCHA solving, Cloudflare clearance harvesting, account cookies, or per-account tokens in homepage code or config.
Build an actual App homepage, not a landing page. For media homepages, prioritize: continue watching, recommendations, category lists, search, detail, and playback actions.
Transparent WebView:
html, body, and top-level page background transparent in App.html:not(.fm-native).mask-image and -webkit-mask-image.backdrop-filter can make the entire still look soft.Safe area and chrome:
max(var(--fm-safe-*), env(safe-area-inset-*, 0px)); never add --fm-safe-* and env() together.chromeMode: "edge" or immersive. In normal chrome after exiting fullscreen, remove the top reservation so the page does not show a blank row. Use fm.ui.getViewport() and fmviewport, write a fallback declaration first, then the max(var(--fm-safe-top, 0px), env(safe-area-inset-top, 0px)) version for newer WebViews.var(--fm-web-height, 100vh) for full-height layouts.chromeMode: "edge" or fm.ui.setChrome({ mode: "edge", startup: true }) for homepage fusion.immersive only for focused detail/fullscreen experiences with a page-owned back button, then restore chrome when closing.TV remote:
window.fongmiClient.isLeanback or fm.device().type; use viewport heuristics only for browser preview.readonly by default on TV; OK/touch enters edit mode, blur/back exits edit mode.IntersectionObserver for infinite append and visible PanSou checks, with passive scroll fallback.requestAnimationFrame when useful.querySelectorAll(), full-list getBoundingClientRect(), and synchronous scrollIntoView().For PanSou-like resource search:
data.merged_by_type, filter enabled disk types, dedupe by diskType + normalizedUrl, and render per-disk tabs.fm.pan.check() in groups of about 10.ok, locked, pending/idle, unsupported/uncertain, then bad.fm.pan.play(), save detail scroll, result scroll, active type, focus key, and selected result so native-playback return can restore context.fm.search() from a detail page, pass { direct: true, pic, wallPic } so native search-result playback can still use the WebHome backdrop.fm.play(), fm.vod(), fm.vodInline(), or fm.pan.play(), pass the best known pic and wallPic. Use poster art for pic and landscape/backdrop/still art for wallPic; do not rely on pic as a playback background fallback. For fm.pan.play() entries that should reappear in WebHome recent history, persist a small URL-to-artwork cache so push_agent records can restore wallPic on replay.For watch preference or recommendation systems:
fm.stat() while available.fm.history() to compensate if WebView was paused during playback.When creating a homepage, provide:
sites[] config snippet with homePage and chrome choice.When reviewing an existing homepage, lead with compatibility blockers, then SDK misuse, TV focus/return bugs, performance regressions, and visual/UX issues.
Run:
python3 /path/to/webhome-homepage-builder/scripts/check_webhome_compat.py path/to/home.htmlAlso verify:
?., ??, logical assignment, catch {}, regex lookbehind/named capture, or <script type="module">.replaceAll, Promise.allSettled, Object.fromEntries, structuredClone, AbortController, or globalThis.:is(), :where(), :has(), or :focus-visible.flex gap, aspect-ratio, clamp/min/max, inset, backdrop-filter, 100dvh, and env() have fallbacks or feature detection.fm.req/fm.res; SDK promises catch failures.SyntaxError, WebView render crash, or SDK call failures.© webhtv, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 9 other files (scripts, references, assets) in webhome-devkit/skills/webhome-homepage-builder of webhtv/webhtv.
Open the folder on GitHubat commit 4e30ffa
Webhome Homepage Builder 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 |
|---|---|---|---|---|---|---|
| Webhome Homepage Builder this skillwebhtv/webhtv | 1.7k | — | ~3.8k | Automated safety check: Pass | GPL-3.0 | |
| Ads Competitorszubair-trabzada/ai-ads-claude | 268 | — | ~4.9k | Automated safety check: Pass | MIT | |
| LobeHub Interactive Prototypelobehub/lobehub | 83k | — | ~1.6k | Automated safety check: Pass | Custom licence | |
| Material 3hamen/material-3-skill | 1.5k | 2 repos | ~7.8k | Automated safety check: Pass | MIT | |
| Paperclip Pagepaperclipai/paperclip | 99k | — | ~1k | Automated safety check: Pass | MIT | |
| Openkb Deck NeonVectifyAI/OpenKB | 4.8k | 1 repos | ~4.3k | Automated safety check: Pass | Apache-2.0 |
zubair-trabzada/ai-ads-claude
Competitive Ad Intelligence. An agent skill from zubair-trabzada/ai-ads-claude.
lobehub/lobehub
Builds single-file interactive HTML prototypes rendered with the real LobeHub UI components and written as production-style React, so they can later be split into files.
hamen/material-3-skill
Implement Google's Material Design 3 (Material You) UI system.
paperclipai/paperclip
Publish static HTML pages and asset folders to the Paperclip S3/CloudFront page host.
VectifyAI/OpenKB
A skill your agent uses when the user asks the openkb chat to make a deck / slide presentation / PPT / slides / 演示稿 / 幻灯片 from their compiled KB content AND wants a dark, high-tech, neon / glow /…
lingbol088-spec/reverse-flow-skill
Guided reverse engineering workflow for binaries, firmware, mobile apps, scripts, document samples, protocol captures, and unknown artifacts.
webhtv/webhtv
Build, review, debug, reverse-engineer, and package WebHome injected extension scripts for FongMi/WebHome App WebView pages.
webhtv/webhtv
Inventory related upstream repositories, generate or refresh exhaustive commit-ledger assessment documents, and evaluate or implement dependency integrations safely, efficiently, and reversibly.
Works with
Categories
Build, review, debug, reverse-engineer data sources for, and package FongMi/WebHome custom homepage single-file HTML. Webhome Homepage Builder is an agent skill from webhtv/webhtv. Build, review, debug, reverse-engineer data sources for, and package FongMi/WebHome custom homepage single-file HTML.
Webhome Homepage Builder fits situations like: Codex is asked to create; modify a WebHome homePage; app custom homepage; nostr.html-style recommendation page.
Run `npx skills add webhtv/webhtv --skill webhome-homepage-builder -a claude-code`. Or copy the skill folder (webhome-devkit/skills/webhome-homepage-builder in webhtv/webhtv) into .claude/skills/webhome-homepage-builder in your project. Claude Code loads it when a task matches its description.
Run `npx skills add webhtv/webhtv --skill webhome-homepage-builder -a codex`. Or copy the skill folder (webhome-devkit/skills/webhome-homepage-builder in webhtv/webhtv) into .agents/skills/webhome-homepage-builder 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 webhtv/webhtv --skill webhome-homepage-builder -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/webhome-homepage-builder, .gemini/skills/webhome-homepage-builder, .github/skills/webhome-homepage-builder and .opencode/skills/webhome-homepage-builder in your project.
Going by SKILL.md and its folder, Webhome Homepage Builder needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Webhome Homepage Builder is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 63k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Webhome Homepage Builder: Ads Competitors (zubair-trabzada/ai-ads-claude, 268 stars), LobeHub Interactive Prototype (lobehub/lobehub, 83k stars), Material 3 (hamen/material-3-skill, 1.5k stars) and Paperclip Page (paperclipai/paperclip, 99k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
webhtv (a GitHub organization) maintains it in webhtv/webhtv, which has 1,677 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 9, 2026.
Source: webhtv/webhtv on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.