Cara Sambung Semula Sesi Claude Code dan Cari Transkrip
Ketahui cara menyambung semula sesi Claude Code menggunakan arahan resume atau pemilih. Kami tunjukkan lokasi fail transkrip teks biasa yang disimpan pada mesin anda.
Bagaimana untuk menyambung semula sesi Claude Code
Untuk menyambung semula sesi Claude Code, jalankan claude --continue bagi perbualan paling terkini dalam direktori semasa, atau claude --resume untuk memilih perbualan lama daripada senarai. Dari dalam sesi yang sedang berjalan, arahan /resume menukar anda kepada perbualan berbeza tanpa perlu keluar. Bentuk ringkasnya ialah -c dan -r.
claude --continue
claude --resume
claude --resume auth-refactorJika anda sudah mengetahui nama sesi atau ID-nya, berikan ia sebagai argumen dan Claude Code akan terus ke sana tanpa memaparkan pemilih.
Segala maklumat di bawah adalah selaras dengan dokumentasi sesi rasmi setakat Ogos 2026. Claude Code kerap mengeluarkan versi baharu, dan nama flag serta pintasan papan kekunci sering berubah antara versi. Oleh itu, jadikan claude --help dan halaman tersebut sebagai rujukan utama sekiranya terdapat maklumat di sini yang tidak sepadan dengan apa yang dipaparkan pada terminal anda.
Apakah sesi sebenarnya
Sesi ialah satu perbualan tersimpan yang terikat pada direktori projek. Ia menyimpan keseluruhan sejarah mesej, termasuk panggilan alat yang dibuat oleh Claude dan hasil yang dikembalikan oleh panggilan tersebut. Claude Code menulisnya ke cakera secara berterusan semasa anda bekerja, bukan sekali sahaja pada penghujung, jadi perbualan akan kekal walaupun terminal ditutup atau sambungan SSH terputus.
Penyambungan semula memulihkan lebih daripada sekadar teks. Sejarah perbualan kembali sepenuhnya, bersama-sama dengan model yang digunakan oleh sesi tersebut dan subejen yang dimulakan dengannya jika anda menggunakan --agent. Mod kebenaran juga kembali, dengan pengecualian yang wujud demi keselamatan: mod plan dan mod bypass-permissions tidak akan dipulihkan, jadi sesi yang berada dalam salah satu mod tersebut akan disambung semula dalam mod yang akan dimulakan oleh sesi baharu.
Beberapa perkara tidak kembali kerana ia merupakan flag masa pelancaran dan bukannya keadaan tersimpan. Direktori yang ditambah dengan --add-dir, serta pilihan seperti --mcp-config, --settings dan --plugin-dir, perlu diberikan semula apabila anda menyambung semula. Fail tetapan seperti settings.json dibaca semula semasa pelancaran, jadi apa-apa yang terkandung di dalamnya tidak perlu diulang.
Mengapa sejarah sesi lebih penting pada VPS
Berikut adalah fakta yang mengejutkan ramai orang. Transkrip ditulis pada mesin tempat ejen dijalankan. Ia tidak disimpan dalam akaun anda dan tidak diselaraskan ke awan. Ia merupakan fail pada cakera mesin tersebut.
Oleh itu, sesi yang anda tinggalkan di dalam tetingkap tmux pada VPS anda tidak akan muncul dalam pemilih (picker) pada komputer riba anda, dan sesi daripada komputer riba anda tidak akan muncul pada VPS. Tiada apa-apa yang berpindah antara keduanya. Jika anda bekerja seperti kebanyakan orang apabila menjalankan Claude Code dalam tmux pada VPS, pelayan adalah tempat sejarah perbualan sebenar anda terkumpul, dan pemilih yang anda lihat secara setempat menunjukkan set yang berbeza dan jauh lebih kecil.
Pemisahan yang sama terpakai merentas antara muka. Aplikasi desktop dan sambungan VS Code masing-masing menyimpan sejarah sesi sendiri, dan tiada satu pun daripadanya merupakan sejarah CLI. Claude Code di web juga menyimpan sejarahnya sendiri.
Dalam satu mesin, carian adalah lebih luas daripada yang anda jangkakan. claude --resume <session-id> mencari dalam direktori projek semasa dan git worktrees miliknya terlebih dahulu, kemudian dalam setiap projek lain pada mesin tersebut. Frasa yang perlu diingat ialah "pada mesin tersebut". ID sesi daripada hos lain tidak akan menghasilkan apa-apa, dan Claude Code akan memberitahu anda perkara tersebut dengan No conversation found with session ID: <session-id>.
Di manakah Claude Code menyimpan sejarah sesi
Secara lalai, transkrip disimpan di bawah direktori konfigurasi Claude Code anda, pada laluan dalam bentuk ~/.claude/projects/<project>/<session-id>.jsonl.
<project> ialah laluan direktori kerja anda dengan setiap aksara bukan alfanumerik digantikan dengan tanda sempang, jadi sesi yang dimulakan dalam /home/deploy/apps/api disimpan di bawah direktori bernama -home-deploy-apps-api. Jika nama yang ditukar itu melebihi 200 aksara, Claude Code akan memotongnya dan menambah hash bagi laluan penuh, supaya nama direktori kekal dalam had sistem fail.
Fail tersebut adalah dalam format JSONL: satu objek JSON bagi setiap baris, setiap baris merupakan mesej, penggunaan alat, atau entri metadata. Ia adalah teks yang boleh dibaca, dan membacanya adalah dibenarkan.
Menulis parser untuk fail tersebut adalah tidak digalakkan. Format entri adalah dalaman kepada Claude Code dan berubah antara versi, jadi skrip yang membaca fail ini secara terus boleh terhenti berfungsi pada sebarang kemas kini. Dokumentasi Anthropic sendiri menyatakan untuk menggunakan /export atau antara muka skrip yang didokumenkan sebagai gantinya, yang merupakan nasihat yang baik atas sebab tersebut.
Dua tetapan mengubah keadaan ini. CLAUDE_CONFIG_DIR memindahkan keseluruhan direktori konfigurasi, iaitu cara anda meletakkan transkrip pada volum berasingan atau volum yang disulitkan. cleanupPeriodDays dalam settings.json mengawal tempoh ia disimpan, dan tempoh lalainya ialah 30 hari dengan minimum 1 hari.
Apakah kandungan sebenar fail transkrip tersebut
Setiap hasil alat direkodkan, yang bermaksud transkrip mengandungi kandungan fail yang dibaca oleh Claude dan output daripada arahan yang dijalankan oleh Claude. Halaman penggunaan data Anthropic menyatakan perkara ini dengan jelas: Claude Code menyimpan transkrip sesi secara setempat dalam bentuk teks biasa di bawah ~/.claude/projects/.
Fikirkan maksudnya pada pelayan. Jika Claude membaca fail .env untuk mengetahui sebab sesuatu servis tidak mahu bermula, kandungan fail tersebut kini tersimpan dalam fail JSONL di dalam direktori rumah anda. Jika sesuatu arahan mencetak rentetan sambungan (connection string), rentetan itu juga ada di dalamnya. Tiada kebocoran berlaku. Transkrip merekodkan apa yang telah berlaku, itulah tujuan sebenarnya, dan itulah sebab tepat mengapa ia perlu dimasukkan ke dalam model ancaman anda.
- Sandaran (Backups): sandaran biasa bagi
/homeatau/rootakan menyalin transkrip anda ke mana-mana destinasi sandaran. Tambahkan pengecualian, atau terima hakikat bahawa salinan gesaan (prompts) dan kandungan fail anda kini berada dalam storan sandaran anda. - Syot kilat (Snapshots) dan imej: syot kilat VPS yang diambil atas sebarang sebab mengandungi keseluruhan direktori tersebut. Begitu juga dengan imej yang anda klon untuk membina pelayan kedua.
- Akaun lain pada mesin: semak sendiri mod keizinan dengan
ls -ld ~/.claude ~/.claude/projectsdan jangan sekadar menganggap ia sudah ketat. - Muat naik sengaja: arahan
/feedbackmenghantar sejarah perbualan kepada Anthropic secara sengaja, dan/bugserta/sharemelaporkan melalui laluan yang sama. Itu adalah perkara yang anda pilih untuk lakukan, jadi ketahui apa yang anda persetujui sebelum anda mengesahkan.
Jika anda lebih suka tiada transkrip yang wujud, CLAUDE_CODE_SKIP_PROMPT_HISTORY akan menyekat penulisan transkrip, dan --no-session-persistence menyekatnya untuk satu larian claude -p bukan interaktif. Fahami pertukaran (trade-off) tersebut sebelum anda menetapkan mana-mana pilihan ini. Transkrip adalah apa yang dibaca oleh fungsi resume, jadi tiada transkrip bermakna tiada fungsi resume.
Bagaimana cara mencari perbualan lama
Buka pemilih (picker) dengan claude --resume, atau dengan /resume dari dalam sesi yang sedang berjalan. Setiap baris memaparkan nama sesi jika anda telah menetapkannya, atau tajuk yang dijana secara automatik jika anda tidak menetapkannya, berserta masa sejak aktiviti terakhir, cawangan git, dan saiz fail.
Pemilih ini mempunyai fungsi carian. Tekan /, atau mula menaip sahaja, untuk menapis senarai tersebut. Pintasan yang berguna untuk dipelajari ialah pintasan yang meluaskan skop carian: Ctrl+A memaparkan sesi daripada setiap projek pada mesin ini, Ctrl+W memaparkan setiap worktree bagi repositori semasa, dan Ctrl+B menapis mengikut cawangan git semasa. Tekan Space untuk pratonton kandungan sesi sebelum anda memilihnya, dan Ctrl+R untuk menamakan semula sesi yang diserlahkan.
Menamakan sesi menjadikan semua proses ini lebih mudah. Mulakan sesi dengan claude -n auth-refactor, atau jalankan /rename auth-refactor semasa sesi sedang berlangsung, pada titik di mana anda menyedari perbualan tersebut telah menjadi tugasan yang penting. Sesi yang dinamakan kemudiannya boleh disambung semula menggunakan namanya terus daripada shell.
Sesi yang tidak dinamakan masih akan mendapat tajuk yang dijana, ditulis oleh permintaan latar belakang kepada model kecil yang pantas yang meringkaskan prompt pertama anda. Tajuk itu membantu anda mengecam baris tersebut dalam pemilih, tetapi ia bukan pemegang untuk penyambungan semula. claude --resume <name> hanya memadankan nama yang anda tetapkan sendiri.
Mencari transkrip menggunakan grep untuk mencari sesi yang betul
Kadangkala anda hanya mengingati satu frasa dan tiada maklumat lain. Transkrip adalah dalam bentuk teks, jadi anda boleh mencarinya.
grep -rl "nftables" ~/.claude/projects/Perintah tersebut akan memaparkan laluan bagi transkrip yang sepadan. Nama fail tanpa sambungan .jsonl ialah ID sesi, dan claude --resume <session-id> akan menerimanya. Gunakan grep untuk menentukan sesi mana yang anda mahukan, kemudian sambung semula atau eksport sesi tersebut untuk membacanya.
Dua peringatan penting. Kandungan tersebut telah di-escape dalam format JSON, jadi frasa yang mengandungi aksara petikan, atau frasa yang terputus merentasi pemisah baris, mungkin tidak sepadan sebagai rentetan literal. Selain itu, padanan di dalam hasil alat bermakna Claude melihat teks tersebut, bukannya seseorang menaipnya.
Membaca dan mengeksport perbualan
/export memaparkan perbualan semasa sebagai teks biasa, dengan mesej dan output alat ditulis secara mudah dibaca dan bukannya dalam format JSON. Tanpa argumen, ia membuka menu yang menawarkan pilihan papan keratan (clipboard) atau fail. Dengan nama fail, /export handover.txt menulis terus ke laluan tersebut. Ini adalah cara yang betul untuk memindahkan perbualan dari pelayan ke komputer riba anda, atau untuk melampirkannya pada tiket sokongan.
Untuk sebarang proses automatik, gunakan antara muka yang direka untuk menjadi stabil. Cangkuk (hooks) dan arahan baris status menerima medan transcript_path sebagai input, jadi cangkuk SessionEnd boleh mengarkibkan transkrip apabila sesi berakhir. Anda juga boleh bertanya soalan kepada sesi yang disimpan tanpa perlu membukanya:
claude -p --resume <session-id> --output-format json "summarize what we changed" | jq -r '.result'Arahan tersebut menghantar gesaan susulan ke dalam perbualan lama dan mengembalikan JSON berstruktur. Ia merupakan asas yang jauh lebih baik berbanding menghurai format JSONL yang mungkin berubah dalam keluaran akan datang.
Apabila memulakan sesi baharu lebih baik daripada menyambung semula
Menyambung semula sesi membawa kembali keseluruhan sejarah, dan keseluruhan sejarah itulah yang dibawa oleh setiap permintaan seterusnya. Perbualan yang berlangsung selama empat jam semalam adalah mahal untuk diteruskan hari ini, dan bagaimana penggunaan token terkumpul sepanjang sesi yang panjang menjelaskan dari mana datangnya kos tersebut.
Claude Code kadangkala menawarkan jalan tengah. Pada pelan Pro atau Max, menyambung semula sesi yang telah terbiar selama kira-kira satu jam dan mengandungi lebih daripada 100,000 token akan membuka dialog sebelum mesej pertama anda. Cache prompt telah tamat tempoh pada ketika itu, jadi permintaan seterusnya akan memproses semula keseluruhan sejarah sekali sahaja tidak kira pilihan yang anda ambil.
- Resume from summary menjalankan pemadatan (compaction) dengan serta-merta, supaya permintaan seterusnya membawa ringkasan dan bukannya sejarah penuh. Lebih murah bagi setiap permintaan, dan apa sahaja yang digugurkan oleh ringkasan tersebut tidak lagi tersedia.
- Resume full session as-is memuatkan perbualan tanpa perubahan, mengekalkan setiap perincian pada kos setiap permintaan yang berskala mengikut saiz perbualan.
Pilihan ketiga menyambung semula sepenuhnya dan menghalang dialog daripada muncul pada penyambungan semula seterusnya.
Keputusan untuk memilih adalah lebih mudah daripada yang disangka. Sambung semula apabila perkara seterusnya yang ingin anda taip bergantung pada apa yang telah diperkatakan. Mulakan sesi baharu apabila ia tidak bergantung kepadanya. Perubahan konteks (drift) mudah dikesan sebaik sahaja anda memerhatikannya: Claude merujuk kepada fail yang anda padam sejam yang lalu, atau membahaskan semula keputusan yang telah anda tetapkan di awal sesi. Itu adalah konteks lapuk, dan membawanya ke hadapan akan merugikan anda dari segi token dan ketepatan pada masa yang sama.
Jika bahagian yang berguna daripada perbualan lama adalah keputusan atau fakta yang anda akan perlukan lagi, jangan bergantung pada penyambungan semula untuk membawanya. Tulis perkara tersebut di tempat yang boleh dilihat oleh setiap sesi, itulah tujuan fail memori Claude Code.
/branch juga perlu diketahui di sini. Ia menyalin perbualan sehingga titik semasa dan menukar anda ke dalam salinan tersebut, membiarkan yang asal tidak terjejas dan masih berada dalam pemilih (picker). Gunakannya untuk mencuba pendekatan kedua tanpa kehilangan yang pertama.
Perbezaan antara resume, compaction dan memory
Perkara ini sering dikelirukan kerana ia menyelesaikan masalah yang berbeza.
Resume adalah tentang mendapatkan semula perbualan selepas anda keluar, melakukan but semula (reboot), atau beralih ke tugasan lain. Compaction adalah tentang tetingkap konteks di dalam perbualan yang sedang aktif: /compact menggantikan apa yang dibawa oleh Claude dengan ringkasan, supaya permintaan seterusnya menghantar lebih sedikit token. Jika masalah anda ialah tetingkap konteks sudah penuh, compaction ialah alat yang tepat, dan mengurus tetingkap konteks Claude Code membincangkannya dengan sewajarnya.
Memory pula berbeza. Fail CLAUDE.md dan memori automatik menyimpan arahan serta fakta yang dimuatkan pada permulaan setiap sesi, jadi ia bukanlah perbualan yang anda kembali semula. Ia adalah perkara yang anda catatkan supaya anda tidak perlu kembali kepada perbualan tersebut.
Jika anda mahukan dua perbualan berjalan pada masa yang sama dan berkoordinasi, itu adalah mekanisme yang berasingan. Sesi Claude Code boleh menghantar mesej antara satu sama lain semasa kedua-duanya aktif, yang merupakan masalah berbeza daripada mengambil semula sesi semalam daripada cakera.
FAQ
Di manakah Claude Code menyimpan sejarah sesi saya?
Secara lalai, ia disimpan di bawah direktori konfigurasi anda, iaitu ~/.claude/projects/<project>/<session-id>.jsonl, dengan <project> merupakan laluan direktori kerja yang aksara bukan alfanumeriknya telah digantikan dengan tanda sempang. Setiap fail adalah dalam format JSONL: satu objek JSON bagi setiap baris untuk mesej, penggunaan alat, atau entri metadata. CLAUDE_CONFIG_DIR memindahkan direktori konfigurasi ke lokasi lain, dan cleanupPeriodDays dalam settings.json menetapkan tempoh transkrip disimpan, dengan tetapan lalai selama 30 hari dan minimum 1 hari.
Mengapa saya tidak dapat melihat sesi VPS saya dalam pemilih (picker) pada komputer riba saya?
Ini kerana transkrip ditulis ke cakera mesin tempat ejen tersebut dijalankan, dan tiada penyelarasan antara mesin. Perbualan yang anda lakukan di dalam tmux pada VPS anda hanya wujud pada VPS tersebut. Sambung semula perbualan itu di sana melalui SSH, atau jalankan /export di dalamnya dan salin fail teks tersebut jika anda mahukan rekod setempat.
Bolehkah saya menyambung semula sesi yang saya mulakan dalam direktori yang berbeza?
Boleh, jika anda mempunyai ID sesi tersebut. claude --resume <session-id> akan mencari dalam direktori projek semasa dan git worktrees miliknya terlebih dahulu, kemudian dalam setiap projek lain pada mesin yang sama. Di dalam pemilih, Ctrl+A meluaskan senarai kepada setiap projek pada mesin tersebut dan Ctrl+W meluaskannya kepada setiap worktree bagi repositori semasa. Jika tiada apa-apa yang sepadan, Claude Code akan melaporkan No conversation found with session ID: <session-id>.
Patutkah saya menyambung semula sesi lama atau memulakan sesi baharu?
Sambung semula apabila mesej anda yang seterusnya bergantung pada perkara yang telah dibincangkan dalam perbualan tersebut. Mulakan sesi baharu apabila ia tidak bergantung pada perbualan lama, kerana menyambung semula akan memuatkan keseluruhan sejarah dan setiap permintaan seterusnya akan membawanya bersama. Berhati-hati dengan hanyutan (drift): sesi yang terus merujuk kepada fail yang telah anda padamkan membawa konteks lapuk, dan konteks tersebut memakan token serta menjejaskan ketepatan pada setiap pusingan.
Bolehkah saya menghalang Claude Code daripada menulis transkrip ke cakera?
Boleh. CLAUDE_CODE_SKIP_PROMPT_HISTORY akan menyekat penulisan transkrip, dan --no-session-persistence akan menyekatnya untuk satu larian claude -p bukan interaktif. Fahami kesannya terlebih dahulu, kerana transkrip adalah perkara yang dibaca oleh fungsi sambung semula, jadi mematikannya bermakna --continue dan --resume tidak mempunyai data untuk dimuatkan. Jika kebimbangan anda adalah mengenai lokasi fail tersebut disimpan dan bukannya kewujudannya, halakan CLAUDE_CONFIG_DIR ke volum yang disulitkan dan rendahkan nilai cleanupPeriodDays sebagai ganti.