Loading repository data…
Loading repository data…
odutradev / repository
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.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
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: