Transforme qualquer repo ou pasta do Github no seu Mac em um arquivo de texto simples para que você possa carregá -lo para um LLM (Claude, Chatgpt etc.) para raciocinar a coisa toda na janela de contexto.
LLMs como ChatGPT e Claude permitem fazer upload de arquivos, mas eles limitam quantos você pode fazer upload de uma só vez. Quando você está lidando com grandes bases de código com toneladas de arquivos, você não pode simplesmente carregá -las diretamente para um LLM. Você acaba tendo que usar técnicas de geração aumentada de RAG (recuperação), que na minha experiência não são tão eficazes quanto o upload de tudo na janela completa do contexto - especialmente quando você precisa raciocinar sobre arquitetura ou entender todo o sistema. Veja o exemplo.
Assistentes de codificação como o cursor são Amazeballs, mas eles funcionam melhor para a conclusão do código diário e as edições embutidas do que para o entendimento do sistema de nível superior.
AND / OR condições para direcionar exatamente o que você precisa para análise focada. Escolha sua aventura:
curl -fsSL https://raw.githubusercontent.com/mattmireles/flatty/main/install_flatty.sh | bash -s -- --quickcurl -fsSL https://raw.githubusercontent.com/mattmireles/flatty/main/install_flatty.sh | bashA instalação paranóica (padrão) inclui verificação de soma de verificação e verificações completas de segurança. A instalação rápida ignora esses cheques para a multidão "eu gosto de viver perigosamente".
O uso básico é estupidamente simples:
cd your-project-directory
flatty Isso cria um arquivo de texto bem formatado em ~/Documents/flatty/ contendo todos os arquivos de texto do seu projeto, pronto para o consumo de LLM.
Assuma o controle do que é incluído na sua saída achatada especificando padrões e condições. Esse recurso permite que você se concentre em partes específicas da sua base de código, melhorando a eficiência e a relevância.
Argumentos da linha de comando:
--pattern "pattern1" : especifique um padrão ou palavra-chave para filtrar arquivos. Você pode usar sinalizadores múltiplos --pattern para vários padrões.--condition AND|OR : Defina como vários padrões devem ser correspondidos.AND : todos os padrões especificados devem estar presentes em um arquivo (no nome do arquivo ou no conteúdo).OR : qualquer um dos padrões especificados deve estar presente.Exemplos:
Inclua arquivos que contêm a função useEffect ou async function :
flatty --pattern " useEffect " --pattern " async function " --condition OR Inclua arquivos que contêm a função useEffect e async function :
flatty --pattern " useEffect " --pattern " async function " --condition AND Inclua arquivos com README no nome do arquivo:
flatty --pattern " README " --condition ORComportamento padrão sem padrões (inclui todos os arquivos de texto elegíveis):
flattyComportamento:
Skips de forma inteligente:
node_modules , vendor ).git.DS_Store ) Os arquivos de texto achatados são salvos no diretório ~/flattened/ com nomes de arquivos formatados como:
<project-name>-v<version>-<timestamp>.txt
Cada arquivo de saída inclui:
Desenvolvido com ❤️ por talktastic
As contribuições são bem -vindas! Abra um problema ou envie uma solicitação de tração para aprimoramentos ou correções de bugs.
Para manter a integridade do script flatty.sh e verifique se o arquivo de soma de verificação ( flatty.sh.sha256 ) está sempre atualizado, os colaboradores devem configurar um gancho Git pré-comprometido. Esse gancho gera e atualiza automaticamente a soma de verificação antes de cada confirmação.
Etapas para configurar o gancho de pré-compromisso:
Navegue até o diretório Git Hooks:
cd .git/hooks Crie ou edite o gancho pre-commit :
cursor pre-commit Adicione o script a seguir ao arquivo pre-commit :
#! /bin/bash
# Generate SHA256 checksum for flatty.sh
sha256sum flatty.sh > flatty.sh.sha256
# Add the checksum file to the commit
git add flatty.sh.sha256Faça o gancho executável:
chmod +x pre-commit Explicação: Este gancho garante que toda vez que flatty.sh seja modificada e uma confirmação seja feita, o arquivo de soma de verificação correspondente flatty.sh.sha256 é atualizado automaticamente e incluído no Commit. Isso mantém o processo de verificação de integridade para o script de instalação.
Mit