Transformez n'importe quel repos ou dossier GitHub sur votre Mac en un fichier texte simple afin que vous puissiez le télécharger sur un LLM (Claude, Chatgpt, etc.) pour raisonner dans la fenêtre de contexte.
Les LLM comme Chatgpt et Claude vous permettent de télécharger des fichiers, mais ils limitent le nombre de téléchargements en même temps. Lorsque vous avez affaire à de grandes bases de code qui ont des tonnes de fichiers, vous ne pouvez pas simplement les télécharger directement sur un LLM. Vous finissez par devoir utiliser des techniques de chiffon (récupération de génération augmentée), qui, selon mon expérience, ne sont pas aussi efficaces que de tout télécharger dans la fenêtre de contexte complet - en particulier lorsque vous devez raisonner sur l'architecture ou comprendre l'ensemble du système. Voir l'exemple.
Les assistants de codage comme Cursor sont des Amateballs, mais ils fonctionnent mieux pour l'achèvement du code quotidien et les modifications en ligne que pour la compréhension du système de niveau supérieur.
AND / OR des conditions pour cibler exactement ce dont vous avez besoin pour une analyse ciblée. Choisissez votre aventure:
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 | bashL'installation paranoïde (par défaut) inclut la vérification de la somme de contrôle et les vérifications de sécurité complètes. L'installation rapide saute ces contrôles pour la foule "j'aime vivre dangereusement".
L'utilisation de base est stupidement simple:
cd your-project-directory
flatty Cela crée un fichier texte bien formaté dans ~/Documents/flatty/ contenant tous les fichiers texte de votre projet, prêt pour la consommation LLM.
Prenez le contrôle de ce qui est inclus dans votre sortie aplatie en spécifiant les modèles et les conditions. Cette fonctionnalité vous permet de vous concentrer sur des parties spécifiques de votre base de code, d'améliorer l'efficacité et la pertinence.
Arguments en ligne de commande:
--pattern "pattern1" : Spécifiez un modèle ou un mot-clé pour filtrer les fichiers. Vous pouvez utiliser plusieurs drapeaux --pattern pour plusieurs modèles.--condition AND|OR : Définissez comment plusieurs modèles doivent être appariés.AND : tous les modèles spécifiés doivent être présents dans un fichier (soit dans le nom de fichier ou le contenu).OR : l'un des modèles spécifiés doit être présent.Exemples:
Inclut des fichiers contenant une async function useEffect ou d'async:
flatty --pattern " useEffect " --pattern " async function " --condition OR Inclut les fichiers contenant à la fois une fonction useEffect et async function :
flatty --pattern " useEffect " --pattern " async function " --condition AND Inclure des fichiers avec README dans le nom de fichier:
flatty --pattern " README " --condition ORComportement par défaut sans modèles (inclut tous les fichiers texte éligibles):
flattyComportement:
Flatty saute intelligemment:
node_modules , vendor ).git.DS_Store ) Les fichiers texte aplatis sont enregistrés dans le répertoire ~/flattened/ avec des noms de fichiers formatés comme:
<project-name>-v<version>-<timestamp>.txt
Chaque fichier de sortie comprend:
Développé avec ❤️ par talktastic
Les contributions sont les bienvenues! Veuillez ouvrir un problème ou soumettre une demande de traction pour toute amélioration ou correction de bogues.
Pour maintenir l'intégrité du script flatty.sh et assurer que le fichier de somme de contrôle ( flatty.sh.sha256 ) est toujours à jour, les contributeurs doivent configurer un crochet GIT pré-engagé. Ce crochet génère et met automatiquement à jour la somme de contrôle avant chaque engagement.
Étapes pour configurer le crochet pré-communiqué:
Accédez au répertoire Git Hooks:
cd .git/hooks Créez ou modifiez le crochet pre-commit :
cursor pre-commit Ajoutez le script suivant au fichier 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.sha256Faire le hook exécutable:
chmod +x pre-commit Explication: Ce crochet garantit que chaque fois que flatty.sh est modifié et un commit est fait, le fichier de somme de contrôle flatty.sh.sha256 correspondant est automatiquement mis à jour et inclus dans le commit. Cela maintient le processus de vérification de l'intégrité pour le script d'installation.
Mit