
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
codemerge-cli
Advanced tools
Utilitário de preparação de código e dados focado em IA. Mescla múltiplos arquivos em uma única saída otimizada para janelas de contexto de IA, com API HTTP para geração dinâmica de conteúdo.
CodeMerge é uma ferramenta de linha de comando (CLI) que:
.gitignore e regras de ignorar personalizadasPerfeito para:
npm install -g codemerge-cli
npm install --save-dev codemerge-cli
codemerge init
codemerge init ./meu-projeto
codemerge init --force
Isso cria:
codemerge.json - Arquivo de configuração.gitignore - Adiciona o arquivo de saídacodemerge use
codemerge use ./src
codemerge use --output meu-codigo.txt
codemerge use --watch
codemerge watch
codemerge watch --port 3000
codemerge watch --output api-codigo.txt --ignore "*.test.ts"
codemerge initInicializa o CodeMerge em um projeto.
codemerge init [caminho] [opções]
Argumentos:
caminho - Diretório de destino (padrão: .)Opções:
-f, --force - Sobrescrever a configuração existenteO que faz:
codemerge.json com configurações padrãopackage.json.gitignorecodemerge useMescla os arquivos de código em uma única saída.
codemerge use [caminho] [opções]
Argumentos:
caminho - Diretório de entrada para verificar (padrão: .)Opções:
-o, --output <caminho> - Caminho de arquivo de saída personalizado-w, --watch - Observar alterações de arquivos--ignore <padroes> - Padrões adicionais para ignorar (separados por vírgula)--include <padroes> - Padrões de inclusão (separados por vírgula)codemerge watchInicia o servidor HTTP observando os arquivos.
codemerge watch [caminho] [opções]
Argumentos:
caminho - Diretório de entrada para verificar (padrão: .)Opções:
-o, --output <caminho> - Caminho do arquivo de saída-p, --port <numero> - Porta do servidor (padrão: 9876)--ignore <padroes> - Padrões adicionais para ignorar--include <padroes> - Padrões de inclusãoEndpoints do Servidor:
GET /health - Status de integridade do servidorGET /content - Conteúdo completo mescladoGET /structure - Estrutura do projeto em JSONPOST /selective-content - Mesclar arquivos selecionadosPOST /upsert - Criar/atualizar arquivosPOST /delete-files - Excluir arquivos específicosPOST /commit - Executar commit local do gitPOST /execute-commands - Executar comandos arbitrários do sistemaGET /command-output - Obter saída do último comando pós-upsert executadocodemerge helpExibe informações de ajuda.
codemerge help [comando]
codemerge versionExibe informações da versão.
codemerge version
codemerge.json{
"projectName": "meu-projeto",
"outputPath": "merged-output.txt",
"port": 9876,
"useGitignore": true,
"onStartCommand": "npm run dev",
"onStartCommandLogs": false,
"onUpsertCommand": "npm run build",
"ignorePatterns": [
"node_modules*.log",
"coverage*.ts",
"***.tsx",
"***.json",
"***.log",
"package-lock.json",
"yarn.lock",
".env",
"**/.DS_Store"
]
}
Comandos de Ciclo de Vida:
onStartCommand: Comando para executar automaticamente quando o servidor/observador do codemerge iniciar.onStartCommandLogs: Flag booleana para exibir os logs do comando de inicialização no console.onUpsertCommand: Comando shell para executar imediatamente após um POST bem-sucedido em /upsert.[
'***.js',
'***.jsx',
'***.md'
]
package.jsonVocê também pode configurar no package.json:
{
"name": "meu-projeto",
"codemergeConfig": {
"outputPath": "ai-digest.txt",
"onStartCommand": "npm start",
"onUpsertCommand": "echo 'Upsert concluído'",
"ignorePatterns": ["***.ts"]
}
}
codemerge watch --port 9876
GET /health
Verifica o status do servidor.
GET /content
Obtém o conteúdo completo mesclado de todos os arquivos.
GET /structure
Obtém a estrutura do projeto como uma árvore JSON.
POST /selective-content
Mescla apenas arquivos/pastas selecionados.
POST /upsert
Cria ou atualiza arquivos no projeto. Se onUpsertCommand estiver configurado, ele será executado após um upsert bem-sucedido.
POST /delete-files
Exclui arquivos específicos do projeto.
Corpo da Requisição:
{
"basePath": "./",
"files": [
"src/arquivo-obsoleto.ts",
"tests/teste-antigo.spec.ts"
]
}
Resposta:
{
"success": true,
"filesProcessed": 2,
"errors": [],
"results": [
{
"path": "src/arquivo-obsoleto.ts",
"success": true
},
{
"path": "tests/teste-antigo.spec.ts",
"success": true
}
]
}
POST /commit
Executa um commit local do git para todas as alterações no diretório atual (git add . seguido de git commit -m "tipo: mensagem").
Corpo da Requisição:
{
"basePath": "./",
"type": "feat",
"message": "adiciona novos endpoints dinâmicos para gerenciamento do servidor",
"translate": false
}
Nota: As propriedades type e message são explicitamente obrigatórias. A flag booleana translate é opcional.
Resposta:
{
"success": true,
"output": "[main 4c83b2a] feat: adiciona novos endpoints dinâmicos para gerenciamento do servidor\n 2 files changed, 45 insertions(+)",
"error": null
}
POST /execute-commands
Executa comandos arbitrários do sistema no diretório do projeto.
Corpo da Requisição:
{
"basePath": "./",
"commandsToExecute": [
"npm run lint",
"npm test"
]
}
Resposta:
{
"success": true,
"commandsProcessed": 2,
"errors": [],
"results": [
{
"command": "npm run lint",
"success": true,
"output": "..."
},
{
"command": "npm test",
"success": true,
"output": "..."
}
]
}
GET /command-output
Recupera o resultado (stdout/stderr) do último comando executado, acionado por uma operação de upsert. Requer que onUpsertCommand esteja definido na configuração.
Prepare toda a sua base de código para análise de IA:
codemerge use --output para-ia.txt
cat para-ia.txt | pbcopy # macOS
cat para-ia.txt | xclip # Linux
Gere contexto para revisões de código:
codemerge use ./src --output contexto-revisao.txt --ignore "*.test.ts,*.spec.js"
Crie snapshots da documentação:
codemerge use --include "***.ts" --output snapshot-docs.txt
Construa ferramentas que precisem de acesso dinâmico ao projeto:
const structure = await fetch('http://localhost:9876/structure').then(r => r.json());
const selectedPaths = userSelection;
const content = await fetch('http://localhost:9876/selective-content', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ selectedPaths })
}).then(r => r.text());
await sendToAI(content);
Modo de observação para atualizações em tempo real:
codemerge watch --port 3000
while true; do
curl http://localhost:3000/content > mais-recente.txt
sleep 5
done
Licença MIT - sinta-se à vontade para usar em seus projetos!
Contribuições são bem-vindas! Por favor:
FAQs
AI-focused code and data preparation utility
We found that codemerge-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.