Ubah repo atau folder github di Mac Anda menjadi file teks sederhana sehingga Anda dapat mengunggahnya ke LLM (Claude, ChatGpt, dll.) Untuk beralasan dari semuanya di jendela konteks.
LLMS seperti Chatgpt dan Claude memungkinkan Anda mengunggah file, tetapi mereka membatasi berapa banyak yang dapat Anda unggah sekaligus. Saat Anda berurusan dengan basis kode besar yang memiliki banyak file, Anda tidak bisa hanya mengunggahnya langsung ke LLM. Anda akhirnya harus menggunakan teknik Rag (Retrieval Augmented Generation), yang dalam pengalaman saya tidak seefektif mengunggah semuanya ke dalam jendela konteks penuh - terutama ketika Anda perlu beralasan tentang arsitektur atau memahami seluruh sistem. Lihat contoh.
Asisten pengkodean seperti Cursor adalah Amazeballs, tetapi mereka bekerja lebih baik untuk penyelesaian kode sehari-hari dan edit inline daripada yang mereka lakukan untuk pemahaman sistem tingkat yang lebih tinggi.
AND / OR kondisi untuk menargetkan apa yang Anda butuhkan untuk analisis terfokus. Pilih petualangan Anda:
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 | bashInstalasi paranoid (default) mencakup verifikasi checksum dan pemeriksaan keamanan penuh. Install cepat melewatkan cek ini untuk kerumunan "Saya suka hidup berbahaya".
Penggunaan Dasar Sederhana Bodoh:
cd your-project-directory
flatty Ini membuat file teks yang diformat dengan baik di ~/Documents/flatty/ berisi semua file teks proyek Anda, siap untuk konsumsi LLM.
Kendalikan apa yang termasuk dalam output Anda yang rata dengan menentukan pola dan kondisi. Fitur ini memungkinkan Anda untuk fokus pada bagian spesifik basis kode Anda, meningkatkan efisiensi dan relevansi.
Argumen baris perintah:
--pattern "pattern1" : Tentukan pola atau kata kunci untuk memfilter file. Anda dapat menggunakan beberapa flag --pattern untuk beberapa pola.--condition AND|OR : Tentukan bagaimana beberapa pola harus dicocokkan.AND : semua pola yang ditentukan harus ada dalam file (baik dalam nama file atau konten).OR : Salah satu dari pola yang ditentukan harus ada.Contoh:
Sertakan file yang berisi fungsi useEffect atau async function :
flatty --pattern " useEffect " --pattern " async function " --condition OR Sertakan file yang berisi async function useEffect dan ASYNC:
flatty --pattern " useEffect " --pattern " async function " --condition AND Sertakan file dengan README di nama file:
flatty --pattern " README " --condition ORPerilaku default tanpa pola (termasuk semua file teks yang memenuhi syarat):
flattyPerilaku:
Flatty dengan cerdas melompat:
node_modules , vendor ).git.DS_Store ) File teks yang diratakan disimpan di direktori ~/flattened/ dengan nama file diformat sebagai:
<project-name>-v<version>-<timestamp>.txt
Setiap file output termasuk:
Dikembangkan dengan ❤️ oleh TalkTastic
Kontribusi dipersilakan! Harap buka masalah atau kirimkan permintaan tarik untuk peningkatan atau perbaikan bug.
Untuk mempertahankan integritas skrip flatty.sh dan memastikan bahwa file checksum ( flatty.sh.sha256 ) selalu terkini, kontributor harus mengatur kait git pra-komit. Kait ini secara otomatis menghasilkan dan memperbarui checksum sebelum setiap komit.
Langkah-langkah untuk mengatur kait pra-komit:
Arahkan ke direktori Git Hooks:
cd .git/hooks Buat atau edit kait pre-commit :
cursor pre-commit Tambahkan skrip berikut ke file 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.sha256Buat hook dapat dieksekusi:
chmod +x pre-commit Penjelasan: Kait ini memastikan bahwa setiap kali flatty.sh dimodifikasi dan komit dibuat, file checksum flatty.sh.sha256 yang sesuai secara otomatis diperbarui dan termasuk dalam komit. Ini mempertahankan proses verifikasi integritas untuk skrip instalasi.
Mit