Folder Tempatan ke Teks: Pangkalan Kod Anda Menjadi Satu Fail, Tanpa Memuat Naiknya
Halakan ini pada folder pada mesin anda dan anda mendapat kembali satu fail teks: pokok direktori di atas, kemudian setiap fail yang anda pilih, setiap satu dipisahkan oleh pengepala dengan laluannya. Apa sahaja yang anda panggil — menggabungkan pangkalan kod ke dalam satu fail, menggabungkan fail sumber, menggabungkan direktori menjadi satu dokumen — itulah keseluruhan idea. Ia adalah format yang paling baik dikendalikan oleh LLM, kerana model boleh melihat bentuk projek dan kandungan pada masa yang sama, dan ia boleh membuat alasan tentang bagaimana satu fail berkaitan kepada yang lain.
Ia percuma, tiada pendaftaran dan tiada apa-apa untuk dipasang. Pilih folder, nyahtanda model apa tidak perlu, dan eksport projek sebagai satu fail teks yang anda boleh tampal di mana-mana sahaja.
Bahagian yang kebanyakan orang ambil berat: tiada apa yang dimuat naik. Tiada pelayan dalam ini saluran paip. Fail anda dibaca dalam penyemak imbas, dipasang dalam ingatan dan diserahkan semula kepada anda. Jika anda telah telah mengelakkan penukar dalam talian kerana pangkalan kod milik pelanggan, atau berada di bawah NDA, atau semata-mata bukan milik anda untuk menampal ke dalam perkhidmatan pihak ketiga, bantahan itu tidak terpakai di sini — dan seterusnya bahagian menerangkan dengan tepat sebabnya, kerana "percayalah kepada kami, ia selamat" bukanlah jawapan yang harus diterima oleh sesiapa pun.
Bagaimana Pangkalan Kod Peribadi kepada Penukar Teks Sebenarnya Berfungsi Tanpa Memuat Naik
Pelayar moden boleh membaca fail dari cakera tanpa menghantarnya ke mana-mana. Apabila anda memilih folder, fail
penyemak imbas menyerahkan halaman senarai pemegang fail. Setiap satu dibaca dengan standard
FileReader API, yang menyahkod bait menjadi rentetan dalam memori tab itu sendiri. The
pepohon direktori, kiraan token, penyatuan — semuanya berlaku dalam JavaScript yang berjalan pada anda
mesin. tidak ada fetch, tiada XHR, tiada titik akhir API, tiada panggilan analitis pihak ketiga
membawa kandungan fail. Buka tab rangkaian penyemak imbas anda semasa anda menukar dan anda akan menontonnya kekal
kosong.
Mekanisme itu mempunyai beberapa kesan sampingan yang berguna di luar privasi:
- Ia berfungsi di luar talian. Setelah halaman dimuatkan, tarik kabel ethernet. Penukaran masih berjalan. Berguna pada mesin celah udara atau rangkaian korporat terkunci.
- Tiada had muat naik atau had kadar. Tiada kuota API untuk dicapai, kerana tiada API. Satu-satunya siling ialah ingatan pelayar anda dan kesabaran anda.
- Ia berfungsi pada kod yang tidak pernah dilakukan. Cabang calar, tidak dijejaki
eksperimen, folder yang tidak pernah melihat a
git init- yang GitHub repo kepada penukar teks tak boleh sentuh mana-mana daripada itu, kerana ia membaca daripada API GitHub. Yang ini membaca dari cakera, jadi ia tidak mengambil berat tentang situasi kawalan versi anda sama sekali. - Tiada apa yang dikekalkan. Tutup tab dan keadaan hilang — tiada sejarah untuk dibersihkan, tiada akaun yang menyimpan salinan sumber anda.
Tiga Cara Mendapatkan Projek
Gunakan pemilih direktori untuk menyemak imbas ke folder, atau seret folder terus daripada Finder atau Explorer ke zon penurunan. Kedua-duanya berjalan di atas pokok secara rekursif, jadi anda mendapat keseluruhan projek termasuk bersarang subdirektori, bukan hanya peringkat atasan.
Anda juga boleh menggugurkan arkib ZIP dan ia akan dibongkar dalam penyemak imbas — berguna apabila seseorang menghantar e-mel kepada anda projek, atau anda lebih suka tidak mengekstraknya sama sekali. Satu perbezaan yang patut diketahui: gunakan halaman ini apabila arkib memegang a projek kod, kerana anda mahukan pokok direktori dan tajuk laluan per-fail. Jika ia adalah timbunan dokumen — laporan, hamparan, PDF — ZIP ke teks atau ZIP ke Markdown lebih sesuai, kerana mereka mengeluarkan kandungan yang boleh dibaca daripada setiap dokumen dan bukannya menganggap fail sebagai sumber.
Mana-mana IDE, Mana-mana Editor — Ia Hanya Mahukan Folder
Tiada pemalam untuk dipasang dan tiada sambungan untuk diluluskan, kerana ini tidak berintegrasi dengan anda editor sama sekali. Ia memerlukan direktori. Sama ada direktori itu merupakan ruang kerja Kod VS, a Projek IntelliJ IDEA atau PyCharm, penyelesaian Visual Studio, modul Android Studio, Xcode projek, ruang kerja Eclipse atau folder yang anda hanya pernah buka dalam Neovim, ia adalah set yang sama fail pada cakera yang sama. Halakan pemilih padanya dan anda sudah selesai.
Berbaloi untuk dinyatakan, kerana "eksport projek Kod VS saya sebagai TXT tunggal" dan "eksport IntelliJ projek ke satu fail" ialah soalan yang orang cenderung bertanya kepada editor mereka terlebih dahulu. Editor biasanya adalah salah tempat nak tengok. Mereka mengeksport fail, satu persatu. Beberapa mempunyai sambungan pasaran yang separuh menyelesaikannya, kebanyakannya tidak, dan masing-masing menyelesaikannya secara berbeza, jadi jawapan untuk satu IDE tidak berguna saat anda bertukar. Folder ialah penyebut biasa.
Ia juga merupakan langkah yang lebih baik daripada mengezip projek dan menghantarnya. Sebuah arkib adalah pembangun yang baik untuk
pembangun, tetapi model sembang mahukan teks, bukan bekas dan pengulas perlu mengekstraknya sebelum ini
membaca sebaris. Satu disatukan .txt boleh dibaca
sebaris: tampalkannya ke dalam perbualan, lampirkan pada tiket, letakkannya dalam urutan e-mel. Dan jika
seseorang telah menghantar awak ZIP, anda boleh meletakkannya terus ke halaman ini dan bukannya
membongkarnya dahulu.
Pangkas Keras Sebelum Anda Menjana
Ini ialah langkah yang dilangkau orang, dan ialah yang menentukan sama ada output boleh digunakan. Semuanya mula ditanda dalam pokok kotak semak, yang bermaksud secara lalai anda akan memasukkan banyak perkara tidak model perlu lihat.
Satu perkara memihak kepada anda di sini. Jika folder mengandungi a .gitignore, ia dibaca dan
peraturannya digunakan — termasuk yang bersarang lebih dalam dalam pokok, diskop ke direktori mereka sendiri, dengan
baris komen dilangkau. Pada repo biasa yang secara senyap menghapuskan kebanyakan pesalah paling teruk sebelum anda
sentuh apa-apa sahaja, kerana perkara yang menggelembungkan tempat pembuangan biasanya perkara yang sama yang telah anda beritahu git
untuk tinggalkan sahaja. The .git direktori itu sendiri sentiasa dikecualikan.
Jangan bersandar sepenuhnya, walaupun. Folder dengan no .gitignore - ZIP yang diekstrak, a
serahan vendor, direktori yang tidak pernah repo — tidak mendapat perlindungan itu. Dan banyak bising
perkara dijejaki secara sah dalam git. Imbas pokok dan nyahtanda ini:
node_modules,vendor,.venv,site-packages. Pokok kebergantungan sangat besar dan tiada satu pun daripadanya adalah kod anda. An tidak dipangkasnode_modulessahaja boleh menjadi ratusan ribu token milik orang lain sumber. Ia akan membanjiri projek sebenar dan jawapan model akan melayang ke perpustakaan dalaman.- Bina output —
dist,build,.next,target,out, laporan liputan. Ia adalah kod anda sendiri, dikecilkan atau disalin, digandakan. Kebisingan tulen. - Fail kunci.
package-lock.json,yarn.lock,poetry.lock,Cargo.lock. Beribu-ribu baris cincang yang membawa hampir tidak maklumat semantik. Simpan manifes (package.json,pyproject.toml) — itulah bahagian yang memberitahu model tindanan yang anda gunakan. - Kod dan lekapan yang dihasilkan — output protobuf, codegen GraphQL, pangkalan data migrasi, benih besar atau fail gambar.
- Apa-apa sahaja dengan rahsia. Tiada apa-apa yang dihantar, tetapi fail output akan masuk
tetingkap sembang akhirnya. cuti
.envkeluar.
Fail binari dikendalikan untuk anda: imej, fon, artifak yang disusun dan seumpamanya ditapis oleh lanjutan sebelum mereka sampai ke pokok, dan apa-apa yang tergelincir akan ditangkap oleh null-bait imbas dan digantikan dengan pemegang tempat yang pendek dan bukannya dibuang sebagai sampah. Fail melebihi 1 MB mendapat a pemegang tempat mencatat saiznya juga, yang menghalang satu CSV yang sesat daripada memakan keseluruhan belanjawan konteks anda.
Terdapat juga togol untuk pepohon direktori di bahagian atas output: ditapis menunjukkan
hanya apa yang anda pilih, penuh menunjukkan struktur lengkap dengan pilihan anda ditanda.
Penuh ialah pilihan yang lebih baik apabila anda bertanya tentang seni bina, kerana model dapat melihat bahawa a
tests/ direktori wujud walaupun anda tidak memasukkannya. Ditapis adalah lebih baik apabila anda
mahu model difokuskan secara sempit dan tidak ada yang lain.
Berada di dalam Tetingkap Konteks
Output yang dijana datang dengan kiraan token sebenar, yang dihasilkan oleh gpt-tokenizer perpustakaan
bukannya watak-dibahagi-dengan-empat tekaan. Semak pada model anda sebelum anda menampal. Ia adalah a
aliran kerja yang jauh lebih baik daripada menampal, menunggu dan mendapatkan kembali ralat panjang.
Panduan kasar tentang berapa banyak yang perlu dihantar. Hantarkan keseluruhan projek apabila ia cukup kecil untuk muat dengan selesa dan soalan anda adalah seni bina — "di manakah pengesahan sebenarnya dikuatkuasakan", "apa yang akan rosak jika saya menukar antara muka ini", "terangkan aliran data dari permintaan ke pangkalan data". The model memerlukan gambaran penuh untuk menjawabnya dengan jujur, dan pembuangan separa menghasilkan tekaan yang yakin tentang fail yang tidak pernah dilihatnya.
Hantar a hirisan apabila soalan itu tempatan — satu modul ditambah dengan ujian yang merangkuminya, ditambah dengan dua atau tiga fail yang diimport daripadanya. Konteks yang lebih kecil bermakna jawapan yang lebih tajam dan kurang hanyut, dan anda biasanya akan mendapat hasil yang lebih baik daripada 5,000 token yang dipilih dengan baik daripada 200,000 yang sembarangan.
Monorepos memerlukan pendekatan yang disengajakan. Jangan tukar akar repo. Tukar satu pakej pada satu masa, dan jika pakej itu bergantung pada pustaka dalaman yang dikongsi, sertakan orang awam perpustakaan itu permukaan di sampingnya. Jika anda memerlukan konteks silang pakej, silap mata yang baik ialah menjalankan dua hantaran: satu hantaran penuh pokok dengan hampir tiada fail dipilih — yang memberikan model peta — dan kemudian hantaran kedua yang berat fail pakej yang anda sedang kerjakan sebenarnya.
Mengapa Tidak Lari sahaja cat atau Skrip Shell?
Soalan yang adil, dan kadangkala jawapan yang jujur ialah anda sepatutnya. Jika anda mahukan tiga fail yang diketahui
bergabung bersama, cat auth.py models.py routes.py > out.txt adalah lebih cepat daripada membuka a
pelayar. Tiada siapa yang cuba membicarakan anda tentang perkara itu.
Di mana ia berhenti membuahkan hasil ialah saat anda menyasarkannya pada keseluruhan projek. Lari
find . -type f -exec cat {} + pada repo sebenar dan inilah yang anda dapat:
- Binari di tengah-tengah sumber anda. PNG, fon, objek terkumpul, sesat Lekapan SQLite — semuanya dinyahkodkan sebagai teks, semuanya mojibake. Anda kemudian mula mengekalkan a senarai putih sambungan.
- Keseluruhan pokok pergantungan.
node_modules,.venv,vendor,target, dan kandungan.gitsendiri. Tidak termasuk itu bermakna menulis ungkapan prune dan memastikannya sentiasa terkini untuk setiap projek yang anda kerjakan. Di sini, anda.gitignoresudah menerangkan dengan tepat itu, fail bersarang disertakan, dan ia akan dipohon untuk anda. - Tidak tahu betapa besarnya. Penggabungan memberi anda bait, bukan token dan pembahagian watak dengan empat adalah tekaan yang salah dalam kedua-dua arah. Anda mendapati ia tidak sesuai apabila model itu menolaknya.
- Kawalan terpilih lebih mahal skrip. "Semua di bawah
srckecuali klien API yang dijana, ditambah dengan dua fail konfigurasi di akar" ialah satu lagi bendera dan satu lagi regex. Pokok kotak semak melakukannya dalam kira-kira empat klik. - Tiada peta di bahagian atas. Penggabungan mentah ialah dinding teks tanpa pengepala struktur, jadi model tidak dapat memberitahu di mana satu fail berakhir dan yang seterusnya bermula, atau apakah reka letak projek nampak macam. Bahagian yang dibataskan laluan dan pepohon direktori adalah sebahagian besar daripada perkara yang menjadikan tempat pembuangan boleh dibaca.
Semuanya boleh dibina, dan ramai orang telah membinanya. Ia adalah petang skrip dan kemudian a alat kecil yang anda simpan. Perdagangan adalah sama ada anda mahukan skrip atau output.
Untuk Apa Orang Sebenarnya Menggunakan Ini
- Pangkalan kod yang baru anda warisi. Seseorang telah pergi, dan kini perkhidmatan 40,000 talian milik anda. Tukarkannya, tampalkannya, dan minta titik masuk, abstraksi utama dan ketiga-tiganya perkara yang paling mengejutkan penyelenggara baharu. Ia adalah orientasi yang lebih pantas daripada sebarang penyerahan dokumen yang akan diberikan kepada anda.
- Dokumentasi dari sumber sebenar. README reput kerana ditulis sekali. Menjana mereka daripada kod yang wujud sekarang — gambaran keseluruhan seni bina, ringkasan modul, tepat senarai pembolehubah persekitaran yang sebenarnya dibaca oleh aplikasi.
- Ujian untuk kod yang belum diuji. Sertakan modul ditambah satu fail ujian sedia ada sebagai gaya rujukan. Model ini sepadan dengan rangka kerja anda, penamaan anda, corak lekapan anda, bukannya mencipta konvensyen ujian yang anda tidak gunakan.
- Perancangan migrasi dan refactor. Komponen kelas ke cangkuk, JavaScript ke TypeScript, satu ORM kepada yang lain. Model yang boleh melihat setiap tapak panggilan memberi anda rancangan sebenar daripada senarai semak generik.
- RAG dan benam. Satu fail teks bersih dengan bahagian yang dibatasi laluan ialah mudah untuk memotong pada pembatas tersebut dan menolak ke dalam kedai vektor.
Apabila anda selesai, salin output ke papan keratan atau muat turunnya sebagai a .txt fail - bernilai
mengekalkan jika anda akan menggunakan semula konteks yang sama merentas beberapa perbualan.
Kod Hanya Separuh Konteks
Kebanyakan soalan sebenar tentang projek juga melibatkan perkara yang bukan fail sumber. Spec tinggal di a PDF, skema dalam fail JSON, konfigurasi dalam XML, data dalam CSV. Tukarkan secara berasingan dan tampalkannya bersama tempat pembuangan kod anda: PDF kepada Markdown untuk spesifikasi dan dokumentasi vendor, Perkataan kepada Markdown untuk dokumen keperluan, JSON kepada Markdown untuk API muatan dan skema, XML kepada Markdown untuk legasi konfigurasi, CSV kepada Markdown untuk sampel data, dan HTML kepada Markdown untuk halaman yang dieksport. Jika anda lebih suka tidak memilih format, File2Txt mengambil apa sahaja yang anda lemparkan padanya.
Soalan Lazim
Bagaimanakah cara menukar folder kepada fail teks?
Pilih direktori di atas dan anda mendapat pepohonnya sebagai senarai kotak semak. Tandakan fail yang anda inginkan dan eksport satu fail teks — struktur direktori dahulu, kemudian setiap fail di bawah pengepala dengan laluannya. Percuma, tiada pendaftaran, tiada apa-apa untuk dipasang.
Adakah kod saya dimuat naik ke pelayan?
Tidak. Tiada pelayan dalam saluran paip ini sama sekali. Folder dibaca dalam penyemak imbas, output dipasang dalam penyemak imbas, dan tiada apa yang melintasi rangkaian — anda boleh membuka devtools dan menonton, atau memutuskan sambungan dari internet selepas halaman dimuatkan dan ia masih berfungsi. Itulah perbezaan antara ini dan GitHub penukar, yang perlu memanggil API.
Adakah selamat untuk menukar pangkalan kod syarikat dalam talian?
Halaman ini ialah versi yang menjawab soalan itu dengan mekanik dan bukannya janji: fail tidak pernah meninggalkan mesin, jadi tiada apa yang boleh dipercayai kepada kami. Perkara yang masih penting ialah perkara yang anda lakukan seterusnya — menampal output ke dalam model yang dihoskan menghantarnya kepada pembekal tersebut, jadi semak dasar organisasi anda dan longgarkan rahsia sebelum anda melakukannya.
Bolehkah saya menukar keseluruhan projek termasuk subfolder?
Ya, keseluruhan pokok itu berjalan dan setiap peringkat boleh dipilih. Nyahpilih folder akan mengalih keluar semua di bawahnya dalam satu klik, iaitu cara anda melepaskannya node_modules atau .git tanpa memburu kanak-kanak. Kaunter token mengemas kini semasa anda pergi supaya anda boleh melihat kesannya dengan segera.
Penyemak imbas yang manakah boleh memilih keseluruhan folder?
Pemilihan folder menggunakan atribut muat naik direktori yang telah disokong oleh Chrome, Edge, Firefox dan Safari selama bertahun-tahun, jadi mana-mana penyemak imbas desktop semasa berfungsi. Pelayar mudah alih adalah jurang — baik iOS mahupun Android tidak mendedahkan pemilih folder. Pada telefon, zip direktori dan gunakan ZIP ke teks sebaliknya.
Apakah had saiz fail?
Tiada muat naik, jadi tiada had muat naik — kekangan ialah memori mesin anda dan berapa banyak teks yang berguna untuk anda tampal di mana-mana selepas itu. Dalam amalan, kaunter token menjadi had sebenar jauh sebelum penyemak imbas melakukannya. Repositori yang sumber bergunanya berada di bawah megabait meliputi kebanyakan projek sebaik sahaja kebergantungan dinyahpilih.
Selebihnya Kit Alat
Jika kod dihoskan dan bukannya tempatan, kod GitHub kepada penukar teks dan GitLab kepada penukar teks lakukan perkara yang sama kerja terhadap repositori jauh, termasuk yang peribadi dengan token. Untuk dokumentasi itu sahaja wujud di web, Web2Txt goresan a URL menjadi bersih Markdown — gandingkan rujukan API yang dikikis dengan sumber setempat anda dan pembantu pengekodan boleh melihat kedua-dua belah dalam satu masa.
Terdapat lebih banyak tulisan di blog jika anda ingin pergi lebih jauh: menukar pangkalan kod menjadi fail sedia LLM, panduan daripada folder kepada penukar teks, panduan untuk menyuap keseluruhan repositori ke dalam AI, dan umum panduan penukaran fail ke teks untuk semua yang bukan kod.
Repo2Txt dibina dan diselenggara oleh v12hero, pembangun bebas membina apl asli dan web yang mengutamakan privasi.