web-clone
Recria websites existentes. Ajuda a copiar o visual e a interatividade de um site, sendo útil para aprender ou adaptar designs.
O que ela faz
Esta ferramenta ajuda a recriar um site existente. Ela segue um processo passo a passo para copiar a estrutura, o design e as funcionalidades de um site para que você possa criar uma cópia dele.
Quando usar
- ✓Quando você quer fazer uma cópia exata de um site.
- ✓Quando você precisa reproduzir um efeito visual ou interativo específico de um site.
- ✓Quando você quer usar um site existente como base para criar um novo.
Exemplo do que pedir para a IA
“Quero clonar o site da loja X, você pode me ajudar a recriar ele?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta primeiro tenta encontrar o código original do site. Se não encontrar, ela analisa o site funcionando no navegador para coletar informações sobre sua estrutura, assets e interações. Depois, ela usa essas informações para montar uma nova versão do site.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add nexu-io/open-design --skill web-cloneOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/nexu-io/open-design/main/skills/web-clone/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Clonagem Web · Metodologia de Clonagem de Sites
Transformar "clonar um site" em um processo repetível. No OpenDesign, o trabalho padrão é no diretório do projeto atual: NOTES.md, RECON/, CLONE_REPORT.md, CLONE_AUDIT.md e o pré-visualizável final index.html devem ser escritos dentro do projeto atual, a menos que o usuário especifique explicitamente um diretório de trabalho externo.
Preparação do Ambiente OpenDesign (Leia antes de executar qualquer scripts/):
- Os scripts desta skill serão "stageados" no projeto em
.od-skills/<插件目录>/scripts/(o caminho exato está na introdução da skill). Os comandos no texto são interpretados de acordo com esse caminho, por exemplo,node scripts/xxx.mjs; produtos comonode .od-skills/<插件目录>/scripts/recon-site.mjs ...,RECON/,assets/ainda serão escritos na raiz do projeto. - O script possui uma camada de controle sem dependências baseada no Chrome DevTools Protocol, reutilizando diretamente o Chrome, Edge ou Chromium já existentes no sistema; não é necessário iniciar o cliente Electron e também suporta CLI puro de
od. Dentro do sandbox do agente, um daemon local criará sessões CDP temporárias para evitar que o sandbox bloqueie subprocessos do Chrome. É proibido executarnpm install playwrightou baixar Chromium no projeto do usuário. Se o relatório de pré-verificação não indicar um navegador compatível, informe diretamente a falta do navegador do sistema ou especifique o caminho viaOD_BROWSER_EXECUTABLE_PATH, não faça suposições visuais nem instale dependências repetidamente. Se o ambiente de desenvolvimento de código-fonte já fornecerOD_PLAYWRIGHT_PACKAGE, o script ainda será compatível com esse runtime, mas ele não é um pré-requisito para o fluxo do produto.
Primeira Lei de Ferro: Código-Fonte Verdadeiro Acima de Tudo, Nunca Confie em Código Inferido por IA
Qualquer "análise de clonagem/diagrama de construção" gerada por IA, o esqueleto conceitual do corpo principal pode ser referenciado, mas os blocos de código executável dentro são padrão e fabricados; eles devem ser verificados linha por linha com o código-fonte verdadeiro, caso contrário, a cópia direta resultará em falha.
Evidência Empírica (Caso marbles): Um documento de análise de IA interpretou incorretamente a arquitetura verdadeira de um site original que "calculava a interseção raio-esfera por análise + codificava os resultados ópticos em um mapa de deslocamento, entregando-o ao feDisplacementMap do SVG para distorcer o DOM real" como "ray-marching + SDF + amostragem do DOM como textura" - dois esquemas de implementação completamente diferentes. Copiar isso não produziria o efeito original e seria N vezes mais lento. Veja references/marbles-case.md para detalhes.
Portanto, a primeira ação é sempre: Obtenha o código-fonte verdadeiro.
Árvore de Decisão (Siga em ordem, não pule)
Passo 0 · Crie primeiro o esqueleto padrão do projeto
node scripts/init-clone.mjs <站名> --url <原站URL> --in-place
Este script criará NOTES.md e RECON/screenshots/ dentro do projeto atual, evitando que produtos sejam esquecidos manualmente a cada vez.
Passo 1 · Procure primeiro no GitHub pelo código-fonte, não se apresse em baixar o site
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 常常就是 仓库名 / 部署者用户名
- Sites de arquivo único (github.io / HTML puro) → Baixe diretamente o raw:
curl -sL https://raw.githubusercontent.com/<user>/<repo>/main/index.html - Se o código-fonte for encontrado e a licença permitir → Pule para o Passo 4 e clone diretamente. Lição aprendida: Pesquisar primeiro no GitHub pode economizar 30 minutos de desvio.
Passo 2 · Se o código-fonte não for encontrado → Reconhecimento do navegador (Sonda)
Use a camada de controle do navegador CDP integrada e sem dependências para executar a sonda e coletar sinais (framework / window.THREE / contagem de canvas / biblioteca de rolagem suave / fontes / scrollHeight). Capture screenshots em 1440/768/390 e salve o JSON da sonda em RECON/.
Priorize a execução da sonda padrão com scripts integrados:
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 indica apenas uma espera adicional estável após a navegação da página ter sido concluída, não um timeout de navegação. Timeout de navegação só pode ser ajustado com --navigation-timeout <毫秒>; não tente novamente cegamente aumentando --wait para o mesmo erro.
Sites privados que exigem estado de login precisam usar o contexto do navegador já logado no ambiente atual; sites públicos localhost / sem login usam diretamente a sonda CDP integrada.
Passo 2.5 · Classifique a complexidade primeiro, não prometa cegamente
Com base nos resultados da sonda, escreva uma versão de "previsão pré-clonagem": complexidade L1-L6, modo recomendado (clonagem fiel / clonagem visual / grande modificação de conteúdo), escopo de restauração esperado, partes explicitamente não clonadas. As regras de classificação e pontuação podem ser vistas em references/assessment.md.
Disciplina de seleção de modo (padrão quando o usuário não respondeu aos itens de confirmação): Quando o usuário diz "clonar/replicar este site", o padrão é clonagem fiel — a fidelidade é o primeiro objetivo deste cenário. Não rebaixe para clonagem visual, substitua marcas por placeholders ou use blocos de layout em vez de fotos apenas porque "o site original é comercial / tem conteúdo protegido por direitos autorais": isso será percebido diretamente pelo usuário como "a imagem não foi baixada, a fonte está errada, a cor não foi restaurada". A abordagem correta é primeiro clonar fielmente (todas as imagens verdadeiras, fontes verdadeiras, valores de cor verdadeiros implementados), escreva os riscos de direitos autorais/marca registrada na "Lista de Substituição Antes da Implantação" em NOTES.md, e deixe a ação de substituição para o Passo 6, a ser decidida pelo usuário. Somente quando o usuário explicitamente quiser "fazer meu próprio site / mudar para minha marca" é que se deve seguir para clonagem visual / grande modificação de conteúdo. Da mesma forma, não pule a sonda de script porque "o site alvo é uma SPA sensível a controle de risco" — recon-site.mjs / asset-harvest.mjs usam navegadores reais, execute primeiro, e se não funcionar, rebaixe e registre honestamente.
Se o modo for "Clonagem Visual" ou "Grande Modificação de Conteúdo" → Produza um design system estruturado design-dna.json, transformando "a sensação daquele site" em um padrão de tokens versionável e comparável, para que a substituição no Passo 6 tenha uma base para "manter o DNA, trocar o conteúdo":
node scripts/dna-scaffold.mjs \
--recon RECON/original-recon.json \
--out RECON/design-dna.json \
--name "<站名>"
O script preencherá os candidatos a fonte/cor/efeitos de framework detectados com o melhor esforço, e os campos restantes serão preenchidos manualmente via Análise. A estrutura tridimensional (design_system / design_style / visual_effects), o schema completo e os limites de aplicabilidade podem ser vistos em references/design-dna.md.
⚠️ Não use DNA no ramo "Clonagem Fiel": O código-fonte verdadeiro é a verdade, não deixe o DNA de "estilo aproximado" diluir a lei de ferro byte a byte.
Passo 3 · Escolha o caminho com base nos resultados da sonda
| Resultados da Sonda | Qual Caminho Seguir |
|---|---|
| HTML/CSS estático, sem framework | wget --mirror para baixar espelho → remover scripts de rastreamento → modificar texto |
| React / Vue / Next (principalmente conteúdo) | Recriar template (como ai-website-cloner-template, Node 24+) → injetar conteúdo |
| SPA / SaaS / Páginas orientadas a dados | Execute primeiro network-capture.mjs para salvar fixtures de API → substitua por JSON local / mock server |
| Site oficial de várias páginas / Site de produto | Execute primeiro route-crawl.mjs para criar mapa de rotas → extrair template para cada tipo de página → substituir conteúdo uniformemente |
| Site com interações complexas | Execute primeiro interaction-probe.mjs para registrar estados de hover/click/scroll/arrasto de canvas → complementar interações por estado, não apenas capturar a primeira tela |
| WebGL / Canvas / Three.js Frontend Pesado | Engenharia reversa profunda do código-fonte verdadeiro (veja abaixo) → Clonagem fiel ou encontrar um template 3D open-source similar e trocar o conteúdo. Sites nativos de arquivo único frequentemente mantêm byte a byte = clonagem mais fiel. Quando o código-fonte verdadeiro não for encontrado, use captura de quadro em tempo de execução + portão de linha de base; a disciplina pode ser vista em references/effect-extraction.md (pode ser delegado a web-shader-extractor) |
…
Perguntas frequentes
O que significa 'código original'?
É o código-fonte (HTML, CSS, JavaScript) que foi usado para construir o site originalmente. A ferramenta prefere usar o código original sempre que possível para garantir a maior fidelidade.
O que acontece se o código original não for encontrado?
A ferramenta usa um conjunto de scripts para 'espionar' o site em funcionamento. Ela coleta screenshots, analisa o tráfego de rede, mapeia rotas e testa interações para entender como o site funciona.
Posso usar isso para copiar qualquer site?
A ferramenta é projetada para recriar sites, mas a complexidade e a tecnologia usada no site original podem afetar o resultado. Sites com interações complexas ou tecnologias como WebGL podem exigir mais esforço.
Detalhes
Descrição original do autor
网站复刻 / 克隆方法论。USE WHEN 用户说 复刻网站、克隆网站、clone website、抄个站、仿站、 照着这个站做一个、reproduce site、还原某个网页效果、把这个站搬下来改成我的、 复刻某个交互/WebGL/Canvas/Three.js 效果。提供「先拿真源码 → 判路径 → 逆向拆解 → 搭工程 → 替换内容」的可移植决策树,覆盖静态站 / React-Vue-Next 内容站 / WebGL-Canvas 重前端站三大分支,并强制核对任何 AI 二手分析里的可执行代码。
repo: nexu-io/open-design
Popularidade
- Estrelas no GitHub
- 101 mil
- Posição no ranking
- #789
- Licença
- Apache-2.0
- Atualizada em
- 16/10/2026
Comentários
- …
Mais skills deste repositório
sample-plugin
Faz seu agente criar um arquivo de metadados para testes. Ele ajuda a garantir que o código funcione corretamente em diferentes situações.
nexu-io/open-design
aster-atelier
Ajuda seu agente a criar um site artístico com visual clássico. Ele usa imagens elegantes, céus azuis e fontes serifadas para um visual cinematográfico.
nexu-io/open-design
audio-jingle
Faz seu agente gerar áudio como jingles e efeitos sonoros. Ele pode criar músicas e vozes, salvando o resultado em um arquivo de áudio.
nexu-io/open-design
blog-post
Ajuda seu agente a escrever artigos longos ou posts de blog. Ele inclui espaços para imagens, citações e informações do autor.
nexu-io/open-design
Skills parecidas
angular-developer
Ajuda seu agente a criar código Angular e a dar conselhos sobre a estrutura do projeto. É útil para iniciar novos projetos, criar partes do código ou melhorar a performance e acessibilidade.
affaan-m/ECC
frontend-a11y
Ajuda seu agente a tornar interfaces web acessíveis para todos. Ele garante que sites e apps funcionem bem com leitores de tela e navegação por teclado.
affaan-m/ECC
frontend-patterns
Faz seu agente aplicar padrões modernos no desenvolvimento frontend. Ele otimiza performance, gerencia estado e segue boas práticas em React e Next.js.
affaan-m/ECC