web-clone
Recreates existing websites. Helps copy the look and interactivity of a site, useful for learning or adapting designs.
What it does
This tool helps recreate an existing website. It follows a step-by-step process to copy the structure, design, and functionalities of a website so you can create a copy of it.
When to use it
- ✓When you want to make an exact copy of a website.
- ✓When you need to reproduce a specific visual or interactive effect from a website.
- ✓When you want to use an existing website as a base to create a new one.
Example of what to ask your AI
“I want to clone website X, can you help me recreate it?”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool first tries to find the original source code of the website. If it can't, it analyzes the live website in the browser to gather information about its structure, assets, and interactions. Then, it uses this information to assemble a new version of the site.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add nexu-io/open-design --skill web-cloneOr download just the file:
curl -L https://raw.githubusercontent.com/nexu-io/open-design/main/skills/web-clone/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Web Clone · 网站复刻方法论
把"复刻一个网站"做成可重复的流程。在 OpenDesign 中,默认在当前项目目录工作:NOTES.md、RECON/、CLONE_REPORT.md、CLONE_AUDIT.md 和最终可预览的 index.html 都应写在当前项目内,除非用户明确指定外部工作目录。
OpenDesign 环境准备(跑任何 scripts/ 前先看):
- 本 skill 的脚本会被 stage 到项目内
.od-skills/<插件目录>/scripts/(skill 前言里有确切路径)。文中命令写的node scripts/xxx.mjs按该路径解析,例如node .od-skills/<插件目录>/scripts/recon-site.mjs ...;RECON/、assets/等产物仍写到项目根。 - 脚本内置基于 Chrome DevTools Protocol 的零依赖控制层,直接复用系统已有的 Chrome、Edge 或 Chromium;无需启动 Electron 客户端,也支持纯
odCLI。Agent 沙箱内会通过本地 daemon 创建临时 CDP 会话,避免沙箱阻止 Chrome 子进程。禁止在用户项目里执行npm install playwright或下载 Chromium。 若预检报告没有兼容浏览器,直接说明缺少系统浏览器或通过OD_BROWSER_EXECUTABLE_PATH指定路径,不要改为目测,也不要反复安装依赖。源码开发环境若已经提供OD_PLAYWRIGHT_PACKAGE,脚本仍兼容该运行时,但它不是产品链路的前置条件。
头号铁律:真源码至上,绝不信 AI 推测的代码
任何 AI 生成的"复刻分析/施工图",正文的概念骨架可以参考,但里面的可执行代码块默认全是臆造的,必须逐行用真源码核对,否则照抄必崩。
实证(marbles 案例):一份 AI 分析文档把原站"解析法求光线-球体交点 + 把光学结果编码成位移图、交给 SVG feDisplacementMap 去扭曲真实 DOM"的真架构,臆造成了"ray-marching + SDF + 把 DOM 当纹理采样"——两套完全不同的实现,照抄做不出原效果且慢 N 倍。详见 references/marbles-case.md。
所以第一动作永远是:拿到真源码。
决策树(按顺序走,不许跳)
Step 0 · 先建标准工程骨架
node scripts/init-clone.mjs <站名> --url <原站URL> --in-place
该脚本会在当前项目内创建 NOTES.md、RECON/screenshots/,避免每次手工漏掉产物。
Step 1 · 先去 GitHub 搜源码,别急着抓站
unset SSL_CERT_FILE # macOS 怪癖,bash 前先解
# 按站名/产品名搜
SSL_CERT_FILE=/etc/ssl/cert.pem gh api "search/repositories?q=<关键词>" \
| jq -r '.items[] | "\(.full_name) ⭐\(.stargazers_count) \(.description)"' | head -10
# vercel.app/netlify.app/github.io 的 URL slug 常常就是 仓库名 / 部署者用户名
- 单文件站(github.io / 纯 HTML)→ 直接抓 raw:
curl -sL https://raw.githubusercontent.com/<user>/<repo>/main/index.html - 找到源码且许可允许 → 跳 Step 4 直接 clone。 教训:先搜 GitHub 能省 30 分钟弯路。
Step 2 · 没找到源码 → 浏览器侦察(探针)
使用内置的零依赖 CDP 浏览器控制层跑探针抽信号(框架 / window.THREE / canvas 数 / 平滑滚动库 / 字体 / scrollHeight)。截图 1440/768/390 三档 + 侦察 JSON 存 RECON/。
优先用内置脚本跑标准侦察:
node scripts/recon-site.mjs \
--url <原站URL> \
--out RECON \
--label original
# 真浏览器全程滚动,把页面真实用到的图片/字体/媒体(含第三方 CDN、防盗链资产)
# 全部拔到本地,并生成 assets/fonts/fonts.css(自托管 @font-face)+ URL→本地路径映射。
node scripts/asset-harvest.mjs \
--url <原站URL> \
--recon RECON/original-recon.json \
--out assets \
--manifest RECON/asset-manifest.json
node scripts/network-capture.mjs \
--url <原站URL> \
--out RECON/network \
--label original
node scripts/route-crawl.mjs \
--url <原站URL> \
--out RECON/routes \
--label original \
--max-pages 25 \
--max-depth 2
node scripts/interaction-probe.mjs \
--url <原站URL> \
--out RECON/interactions \
--label original
node scripts/sourcemap-hunt.mjs \
--recon RECON/original-recon.json \
--out RECON/sourcemaps
--wait 仅表示页面导航完成后的额外稳定等待,不是导航超时。导航超时只可用 --navigation-timeout <毫秒> 调整;同一错误不要通过增大 --wait 盲目重试。
登录态私域站需要使用当前环境里已登录的浏览器上下文;localhost / 无登录公开站直接用内置 CDP 探针。
Step 2.5 · 先给复杂度定级,别盲目承诺
根据侦察结果先写一版"复刻前预判":复杂度 L1-L6、推荐模式(忠实复刻 / 视觉复刻 / 内容爆改)、预计可还原范围、明确不克隆的部分。分级和评分规则见 references/assessment.md。
模式选择纪律(用户没回答确认项时的默认):用户说的是"复刻/克隆这个网站",默认就是忠实复刻——还原度是这个场景的第一目标。不许因为"原站是商业站/有版权内容"就自作主张降级成视觉复刻、换占位品牌、用排版块替代摄影图:那会被用户直接感知为"图片没抓下来、字体不对、颜色不还原"。正确姿势是先忠实复刻到位(真图真字体真色值全部落地),把版权/商标风险写进 NOTES.md 的"部署前须替换清单",替换动作留给 Step 6 由用户决定。只有用户明确要"做我自己的站/换成我的品牌"时才走视觉复刻/内容爆改。同理,不许因为"目标站是风控敏感的 SPA"就跳过脚本侦察——recon-site.mjs/asset-harvest.mjs 用的就是真浏览器,先跑再说,跑不通再降级并如实记录。
若模式是「视觉复刻」或「内容爆改」 → 顺手产出结构化设计身份 design-dna.json,把"那个站的感觉"变成可版本化、可对照的 token 规范,让 Step 6 替换时"DNA 留着、内容换掉"有据可依:
node scripts/dna-scaffold.mjs \
--recon RECON/original-recon.json \
--out RECON/design-dna.json \
--name "<站名>"
脚本会把侦察到的字体/色候选/框架特效信号 best-effort 预填,其余字段人工 Analyze 补全。三维结构(design_system / design_style / visual_effects)、完整 schema、适用边界见 references/design-dna.md。
⚠️ 「忠实复刻」分支不要用 DNA:真源码就是真相,别让"近似风格"的 DNA 稀释逐字节铁律。
Step 3 · 按侦察结果选路径
| 侦察结果 | 走哪条路 |
|---|---|
| 静态 HTML/CSS,无框架 | wget --mirror 抓镜像 → 删追踪脚本 → 改文案 |
| React / Vue / Next(内容为主) | 重建模板(如 ai-website-cloner-template,Node 24+),灌内容 |
| SPA / SaaS / 数据驱动页面 | 先跑 network-capture.mjs 保存 API fixtures → 本地 JSON/mock server 替身 |
| 多页面官网 / 产品站 | 先跑 route-crawl.mjs 做路由地图 → 每类页面抽模板 → 统一替换内容 |
| 复杂交互站 | 先跑 interaction-probe.mjs 记录 hover/click/scroll/canvas drag 状态 → 按状态补交互,不许只截首屏 |
| WebGL / Canvas / Three.js 重前端 | 深度逆向真源码(见下)→ 忠实复刻 或 找同类开源 3D 模板换内容。单文件原生站常常逐字节保留=最忠实复刻。找不到真源码时走运行时帧捕获 + baseline 闸门,纪律见 references/effect-extraction.md(可委托 web-shader-extractor) |
…
FAQ
What does 'original source code' mean?
It's the source code (HTML, CSS, JavaScript) that was originally used to build the website. The tool prefers to use the original code whenever possible to ensure the highest fidelity.
What happens if the original source code isn't found?
The tool uses a set of scripts to 'spy' on the live website. It collects screenshots, analyzes network traffic, maps out routes, and tests interactions to understand how the site works.
Can I use this to copy any website?
The tool is designed to recreate websites, but the complexity and technology used in the original site can affect the outcome. Sites with complex interactions or technologies like WebGL might require more effort.
Details
Original description by the author
网站复刻 / 克隆方法论。USE WHEN 用户说 复刻网站、克隆网站、clone website、抄个站、仿站、 照着这个站做一个、reproduce site、还原某个网页效果、把这个站搬下来改成我的、 复刻某个交互/WebGL/Canvas/Three.js 效果。提供「先拿真源码 → 判路径 → 逆向拆解 → 搭工程 → 替换内容」的可移植决策树,覆盖静态站 / React-Vue-Next 内容站 / WebGL-Canvas 重前端站三大分支,并强制核对任何 AI 二手分析里的可执行代码。
repo: nexu-io/open-design
Popularity
- GitHub stars
- 101k
- Ranking position
- #789
- License
- Apache-2.0
- Updated
- 10/16/2026
Comments
- …
More skills from this repository
sample-plugin
Makes your agent create a metadata file for tests. It helps ensure code works correctly in different situations.
nexu-io/open-design
aster-atelier
Helps your agent create an artistic website with a classic look. It uses elegant imagery, blue skies, and serif fonts for a cinematic feel.
nexu-io/open-design
audio-jingle
Makes your agent generate audio like jingles and sound effects. It can create music and voices, saving the result as an audio file.
nexu-io/open-design
blog-post
Helps your agent write long articles or blog posts. It includes space for images, quotes, and author information.
nexu-io/open-design
Similar skills
angular-developer
Helps your agent create Angular code and give project structure advice. Useful for starting new projects, creating code parts, or improving performance and accessibility.
affaan-m/ECC
frontend-a11y
Helps your agent make web interfaces accessible to everyone. It ensures websites and apps work well with screen readers and keyboard navigation.
affaan-m/ECC
frontend-patterns
Has your agent apply modern patterns in frontend development. It optimizes performance, manages state, and follows best practices in React and Next.js.
affaan-m/ECC