Portsmith
Traga recursos focados de JS/TS de outros repositórios para o seu aplicativo via MCP—com verificações de comportamento e um patch que você pode revisar.
Documentação
Portsmith
Mova recursos JS/TS entre repositórios—com verificações de comportamento e um patch revisável.
Início rápido · Primeira transferência · Agentes de codificação · Exemplos · Discussões
Encontrou um recurso útil em outro código? O Portsmith rastreia seus arquivos JS/TS, os prepara em uma cópia do seu aplicativo e verifica a integração contra o comportamento que você declarar. Use suas próprias edições, um agente de codificação ou um modelo compatível com OpenAI. Seus repositórios originais permanecem inalterados.

Gravado a partir da demonstração original usando uma proposta autoral incluída, não IA autônoma. O alfa publicado tem o mesmo comportamento de exemplo com estilização de navegador mais simples. Detalhes da demonstração e reprodução · Imagem estática
Experimente agora
Node 22.19+ (22.x) ou 24.11+, além de Git. Sem necessidade de chave de API ou cadastro:
npx --yes --package=portsmith-workbench@alpha portsmith-demo
O exemplo incluído move a filtragem de tabela para um aplicativo de catálogo:
Source contract 5/5 passed
Destination before 1/5 passed
Destination after 5/5 passed
Existing tests pass before and after
Output a patch + verification report
Ele cria uma nova pasta .portsmith/demo-* no seu diretório atual e imprime os caminhos do patch e do relatório. A proposta é autoral para que você possa testar o fluxo de trabalho sem um modelo.
Para uso contínuo:
npm install -g portsmith-workbench@alpha
portsmith doctor --human
portsmith-demo --install-browser
O último comando baixa o Chromium correspondente e executa verificações de interação no navegador. Depois, use portsmith-demo --browser. Hosts Linux mínimos também podem precisar de npx playwright@1.61.1 install-deps chromium. Instalação e solução de problemas →
Para que posso usar?
- Reutilizar um recurso específico: mova um filtro, parser ou transformação para outro aplicativo JS/TS.
- Revisar a integração de um agente: teste o comportamento proposto, mantenha os testes existentes e inspecione o patch.
- Verificar um fluxo de navegador: declare interações como busca e redefinição, e mantenha capturas de tela e rastros.
Comece com um recurso pequeno cujas entradas, saídas e testes de destino você possa nomear. Percorra uma transferência completa →
Como funciona
Discover → Inspect → Declare behavior → Prepare a copy
↓
Review patch ← Export ← Verify ← Adapt the integration
A exportação exige uma fonte aprovada, uma lacuna de destino demonstrada, um candidato aprovado, regressões concluídas, originais inalterados e um patch novo que reproduza o candidato verificado. Uma falha, tempo limite ou teste ignorado bloqueia a verificação. Regras completas de verificação →
Traga seu agente de codificação
O Portsmith inclui uma CLI, servidor MCP e API JavaScript tipada. Conecte um host MCP como Claude Code ou Cursor e pergunte:
Use o Portsmith para encontrar o recurso de busca em
/work/sourcee planeje uma transferência para/work/app. Mostre-me o contrato de comportamento e as dependências antes de executar o código. Preserve os testes existentes e exporte um patch que eu possa revisar.
Configurações MCP copiáveis · Habilidade de fluxo de trabalho do agente · Referência da API
Para a adaptação orientada por modelo do próprio Portsmith:
portsmith init --out ./portsmith-setup --model YOUR_MODEL_ID
# Copy portsmith-setup/.env.example to .env in that directory; add your key locally.
Em seguida, siga o guia de configuração do modelo. Sua chave permanece no ambiente; o uso do modelo envia código selecionado ao seu provedor configurado. A demonstração sem chave acima não exercita a adaptação autônoma.
Escopo deste alfa
| Funciona dentro do escopo declarado | Limites a conhecer |
|---|---|
| Rastreamento de arquivos JS/TS e descoberta de recursos | Pistas lexicais, não prova em tempo de execução ou fatiamento de funções |
| Configuração npm/pnpm em cópias novas, incluindo workspaces | Scripts desabilitados; versões desconhecidas precisam de declarações revisadas |
| Aliases estáticos e capturas explícitas de resolução Vite/plugin | Imports computados e ativos arbitrários de bundler não são suportados |
| Contratos de função, regressões Node/Vitest, builds declarados | Apenas verificações declaradas concluídas contam |
| Interações Chromium, capturas de tela e rastros | Sem conversão geral entre frameworks ou garantia de produção |
Alfa público: 0.6.0-alpha.2. Revise cada patch. A verificação executa o código do repositório na sua máquina; não é uma sandbox de segurança. Use código confiável e revise as licenças da fonte. Uma aprovação prova os casos declarados, não equivalência geral. Detalhes de dependências · Segurança
Exemplos e evidências
Transferências controladas históricas incluem IT-Tools, TodoMVC, drawDB e Mermaid Live Editor. Elas têm limites autorais e limitações registradas; não são uma taxa de sucesso geral ou prova de paridade com Rea. Explore os casos →
Rea é um adaptador opcional de evidência de análise. Suas descobertas permanecem separadas das verificações de comportamento do Portsmith. Escopo do adaptador e comparação.
Documentação e contribuição
| Eu quero… | Comece aqui |
|---|---|
| Instalar ou diagnosticar a configuração | Configuração |
| Entender cada etapa | Primeira transferência |
| Usar um agente ou um modelo | Configuração MCP / agente · Adaptação autônoma |
| Transferir um aplicativo maior | Configuração de dependências · Aliases |
| Declarar verificações de navegador | Contratos de navegador |
| Encontrar comandos ou tipos de API | Referência da CLI · API |
| Contribuir ou relatar um problema | Contribuindo · Issues |
git clone https://github.com/punsnprotons/portsmith.git
cd portsmith
npm ci --ignore-scripts
npm run browser:install
npm run check
npm run demo
Arquitetura · Validação · Verificações de lançamento · Licença MIT