Cara Melanjutkan Sesi dan Melihat Riwayat Claude Code
Pelajari cara melanjutkan sesi Claude Code dengan nama, ID, atau pemilih, serta menemukan transkrip plaintext yang tersimpan di mesin tempat agen berjalan.
Cara melanjutkan sesi Claude Code
Untuk melanjutkan sesi Claude Code, jalankan claude --continue untuk percakapan terbaru di direktori saat ini, atau claude --resume untuk memilih percakapan lama dari daftar. Dari dalam sesi yang sedang berjalan, perintah /resume akan mengalihkan Anda ke percakapan lain tanpa keluar dari sesi. Bentuk singkatnya adalah -c dan -r.
claude --continue
claude --resume
claude --resume auth-refactorJika Anda sudah mengetahui nama atau ID sesi, berikan nilai tersebut sebagai argumen. Claude Code akan langsung membuka sesi itu tanpa menampilkan pemilih.
Semua informasi di bawah ini sesuai dengan dokumentasi sesi resmi per Agustus 2026. Claude Code sering merilis pembaruan, dan nama flag serta pintasan keyboard dapat berubah antarversi. Karena itu, jadikan claude --help dan halaman tersebut sebagai rujukan utama jika informasi di sini tidak sesuai dengan tampilan terminal Anda.
Apa sebenarnya sesi itu
Sesi adalah percakapan tersimpan yang terkait dengan satu direktori proyek. Sesi menyimpan seluruh riwayat pesan, termasuk pemanggilan tool yang dilakukan Claude dan hasil yang dikembalikan oleh pemanggilan tersebut. Claude Code menulisnya ke disk secara terus-menerus selama Anda bekerja, bukan hanya sekali pada akhir proses. Karena itu, percakapan tetap tersedia setelah terminal ditutup atau koneksi SSH terputus.
Melanjutkan sesi akan memulihkan lebih dari sekadar teks. Seluruh riwayat percakapan dipulihkan, bersama model yang digunakan sesi tersebut dan subagent yang digunakan saat sesi dimulai jika Anda menggunakan --agent. Mode izin juga dipulihkan, dengan pengecualian untuk keamanan: mode plan dan mode bypass-permissions tidak pernah dipulihkan. Jadi, sesi yang sebelumnya berada dalam salah satu mode tersebut akan dilanjutkan dalam mode awal sesi baru.
Beberapa hal tidak dipulihkan karena merupakan flag saat peluncuran, bukan status tersimpan. Direktori yang ditambahkan dengan --add-dir serta opsi seperti --mcp-config, --settings, dan --plugin-dir harus diberikan kembali saat Anda melanjutkan sesi. File pengaturan seperti settings.json dibaca ulang saat peluncuran, sehingga hal-hal yang tersimpan di dalamnya tidak perlu diberikan ulang.
Mengapa riwayat sesi lebih penting pada VPS
Berikut fakta yang sering mengejutkan pengguna. Transkrip ditulis pada mesin tempat agent dijalankan. Transkrip tidak disimpan di akun Anda dan tidak disinkronkan ke cloud. Transkrip berupa file pada disk mesin tersebut.
Jadi, sesi yang Anda tinggalkan di dalam window tmux pada VPS tidak muncul dalam pemilih sesi di laptop, dan sesi dari laptop tidak muncul di VPS. Tidak ada data yang berpindah di antara keduanya. Jika Anda bekerja seperti kebanyakan orang saat menjalankan Claude Code dalam tmux pada VPS, server menjadi tempat riwayat percakapan Anda yang sebenarnya terakumulasi, sedangkan pemilih sesi yang Anda lihat secara lokal menampilkan kumpulan sesi yang berbeda dan jauh lebih sedikit.
Pemisahan yang sama berlaku di berbagai antarmuka. Aplikasi desktop dan ekstensi VS Code masing-masing menyimpan riwayat sesi sendiri, dan keduanya bukan riwayat CLI. Claude Code di web juga menyimpan riwayatnya sendiri.
Pada satu mesin, pencarian mencakup lokasi yang lebih luas daripada yang mungkin Anda perkirakan. claude --resume <session-id> terlebih dahulu mencari di direktori proyek saat ini dan git worktree-nya, lalu di setiap proyek lain pada mesin tersebut. Frasa yang perlu diingat adalah "pada mesin tersebut". ID sesi dari host lain tidak menghasilkan apa pun, dan Claude Code memberi tahu Anda dengan No conversation found with session ID: <session-id>.
Di mana Claude Code menyimpan riwayat sesi
Secara default, transkrip disimpan di direktori konfigurasi Claude Code, pada path berbentuk ~/.claude/projects/<project>/<session-id>.jsonl.
<project> adalah path direktori kerja Anda dengan setiap karakter nonalfanumerik diganti tanda hubung. Jadi, sesi yang dimulai di /home/deploy/apps/api disimpan dalam direktori bernama -home-deploy-apps-api. Jika nama hasil konversi tersebut melebihi 200 karakter, Claude Code akan memotongnya dan menambahkan hash dari path lengkap. Dengan demikian, nama direktori tetap berada dalam batas sistem berkas.
File tersebut menggunakan format JSONL: satu objek JSON per baris. Setiap baris berisi pesan, penggunaan tool, atau entri metadata. Isinya berupa teks yang dapat dibaca, dan membacanya tidak masalah.
Namun, jangan membuat parser berdasarkan file tersebut. Format entri merupakan detail internal Claude Code dan dapat berubah antaversi. Karena itu, skrip yang membaca file ini secara langsung dapat berhenti berfungsi setelah pembaruan apa pun. Dokumentasi resmi Anthropic menyarankan penggunaan /export atau antarmuka skrip yang terdokumentasi. Saran ini tepat karena alasan tersebut.
Dua pengaturan dapat mengubah lokasi dan masa penyimpanan. CLAUDE_CONFIG_DIR memindahkan seluruh direktori konfigurasi. Pengaturan ini dapat digunakan untuk menyimpan transkrip pada volume terpisah atau volume terenkripsi. cleanupPeriodDays dalam settings.json mengatur berapa lama transkrip disimpan. Nilai defaultnya adalah 30 hari, dengan nilai minimum 1.
Isi sebenarnya file transkrip tersebut
Setiap hasil tool dicatat. Artinya, transkrip berisi isi file yang dibaca Claude dan output perintah yang dijalankan Claude. Halaman penggunaan data Anthropic menjelaskannya secara langsung: Claude Code menyimpan transkrip sesi secara lokal dalam format plaintext di ~/.claude/projects/.
Pertimbangkan implikasinya pada server. Jika Claude membaca file .env untuk mencari tahu alasan sebuah service tidak mau start, isi file tersebut kini tersimpan dalam file JSONL di home directory Anda. Jika sebuah perintah menampilkan connection string, string tersebut juga tersimpan di sana. Tidak ada data yang bocor. Transkrip hanya mencatat apa yang terjadi, dan memang itulah tujuan transkrip. Karena itu, transkrip harus diperhitungkan dalam threat model Anda.
- Backup: backup biasa dari
/homeatau/rootakan menyalin transkrip ke lokasi penyimpanan backup. Tambahkan pengecualian, atau terima bahwa salinan prompt dan isi file Anda kini berada di penyimpanan backup. - Snapshot dan image: snapshot VPS yang dibuat untuk alasan apa pun berisi seluruh direktori tersebut. Hal yang sama berlaku untuk image yang Anda clone untuk membuat server kedua.
- Account lain pada server: periksa sendiri permission dengan
ls -ld ~/.claude ~/.claude/projects, dan jangan berasumsi bahwa permission tersebut sudah ketat. - Upload yang disengaja: perintah
/feedbackmemang mengirim riwayat percakapan ke Anthropic, sedangkan/bugdan/sharemengirim laporan melalui jalur yang sama. Anda memilih untuk melakukan tindakan tersebut. Karena itu, pahami hal yang Anda setujui sebelum melakukan konfirmasi.
Jika Anda tidak ingin transkrip dibuat, CLAUDE_CODE_SKIP_PROMPT_HISTORY menonaktifkan penulisan transkrip, sedangkan --no-session-persistence menonaktifkannya untuk satu eksekusi claude -p non-interaktif. Pahami trade-off-nya sebelum mengatur salah satunya. Fitur resume membaca transkrip. Jadi, tanpa transkrip, Anda tidak dapat menggunakan resume.
Cara menemukan percakapan lama
Buka pemilih dengan claude --resume, atau dengan /resume dari dalam sesi yang sedang berjalan. Setiap baris menampilkan nama sesi jika Anda menetapkannya, atau judul yang dibuat otomatis jika tidak, serta waktu sejak aktivitas terakhir, cabang git, dan ukuran file.
Pemilih ini mendukung pencarian. Tekan /, atau langsung mulai mengetik, untuk memfilter daftar. Pintasan yang perlu dipelajari adalah pintasan yang memperluas cakupan pencarian: Ctrl+A menampilkan sesi dari semua project di mesin ini, Ctrl+W menampilkan semua worktree dari repository saat ini, dan Ctrl+B memfilter sesi berdasarkan cabang git saat ini. Tekan Space untuk melihat pratinjau isi sesi sebelum memilihnya, dan Ctrl+R untuk mengganti nama sesi yang disorot.
Penamaan sesi membuat semua proses ini lebih mudah. Mulai sesi dengan claude -n auth-refactor, atau jalankan /rename auth-refactor di tengah sesi, saat Anda menyadari bahwa percakapan tersebut telah berkembang menjadi pekerjaan yang sebenarnya. Setelah diberi nama, sesi dapat dilanjutkan berdasarkan namanya langsung dari shell.
Sesi tanpa nama tetap mendapatkan judul yang dibuat otomatis. Judul ini ditulis melalui request latar belakang ke model kecil yang cepat untuk merangkum prompt pertama Anda. Judul tersebut membantu Anda mengenali baris sesi di pemilih, tetapi bukan handle untuk melanjutkan sesi. claude --resume <name> hanya mencocokkan nama yang Anda tetapkan sendiri.
Mencari transkrip untuk menemukan sesi yang tepat
Terkadang Anda hanya mengingat sebuah frasa tanpa informasi lain. Transkrip berupa teks, jadi Anda dapat mencarinya.
grep -rl "nftables" ~/.claude/projects/Perintah tersebut menampilkan path transkrip yang cocok. Nama file tanpa ekstensi .jsonl adalah ID sesi, dan claude --resume <session-id> menerimanya. Gunakan grep untuk menentukan sesi yang diinginkan, lalu lanjutkan sesi tersebut atau ekspor untuk membaca isinya.
Ada dua hal penting yang perlu diperhatikan. Konten di-escape sebagai JSON, sehingga frasa yang berisi tanda kutip, atau frasa yang terpisah oleh pergantian baris, mungkin tidak cocok sebagai string literal. Selain itu, kecocokan di dalam hasil tool berarti Claude melihat teks tersebut, bukan berarti seseorang mengetikkannya.
Membaca dan mengekspor percakapan
/export menampilkan percakapan saat ini sebagai teks biasa. Pesan dan output alat ditulis dalam format yang mudah dibaca, bukan sebagai JSON. Tanpa argumen, perintah ini membuka menu yang menawarkan clipboard atau file. Dengan nama file, /export handover.txt langsung menulis ke path tersebut. Ini adalah cara yang tepat untuk memindahkan percakapan dari server ke laptop Anda atau melampirkannya pada tiket.
Untuk proses otomatis, gunakan antarmuka yang dirancang agar stabil. Hook dan perintah status line menerima field transcript_path sebagai input. Dengan demikian, hook SessionEnd dapat mengarsipkan transkrip saat sesi berakhir. Anda juga dapat mengajukan pertanyaan kepada sesi yang tersimpan tanpa membukanya:
claude -p --resume <session-id> --output-format json "summarize what we changed" | jq -r '.result'Perintah tersebut mengirimkan prompt lanjutan ke percakapan lama dan mengembalikan JSON terstruktur. Ini merupakan dasar yang jauh lebih baik daripada mengurai format JSONL yang dapat berubah pada rilis berikutnya.
Memulai dari awal lebih baik daripada melanjutkan
Melanjutkan sesi akan mengembalikan seluruh riwayat, dan seluruh riwayat itulah yang dibawa oleh setiap permintaan berikutnya. Percakapan yang berlangsung selama empat jam kemarin mahal untuk dilanjutkan hari ini, dan cara penggunaan token terakumulasi dalam sesi panjang menjelaskan sumber biaya tersebut.
Claude Code terkadang menawarkan jalan tengah. Pada paket Pro atau Max, melanjutkan sesi yang tidak aktif selama sekitar satu jam dan berisi lebih dari 100,000 token akan membuka dialog sebelum pesan pertama Anda. Cache prompt sudah kedaluwarsa saat itu, sehingga permintaan berikutnya memproses ulang seluruh riwayat satu kali, apa pun opsi yang Anda pilih.
- Resume from summary langsung menjalankan compaction, sehingga permintaan berikutnya membawa ringkasan, bukan seluruh riwayat. Biaya setiap permintaan lebih rendah, tetapi informasi yang dihilangkan dari ringkasan tidak lagi tersedia.
- Resume full session as-is memuat percakapan tanpa perubahan, sehingga setiap detail tetap tersedia dengan biaya per permintaan yang meningkat sesuai ukuran percakapan.
Opsi ketiga melanjutkan sesi secara penuh dan mencegah dialog tersebut muncul saat sesi dilanjutkan di kemudian hari.
Pertimbangannya lebih sederhana daripada yang terlihat. Lanjutkan sesi jika hal berikutnya yang akan Anda ketik bergantung pada hal yang sudah dibahas. Mulai dari awal jika tidak. Penyimpangan konteks mudah dikenali setelah Anda memperhatikannya: Claude merujuk ke file yang Anda hapus satu jam lalu, atau kembali memperdebatkan keputusan yang sudah ditetapkan di awal sesi. Itu adalah konteks yang sudah tidak berlaku. Membawanya ke sesi berikutnya menghabiskan token dan sekaligus menurunkan akurasi.
Jika bagian yang berguna dari percakapan lama adalah keputusan atau fakta yang akan Anda perlukan lagi, jangan mengandalkan fitur melanjutkan sesi untuk membawanya. Catat informasi tersebut di tempat yang dapat dilihat oleh setiap sesi. Itulah fungsi file memori Claude Code.
/branch juga perlu diketahui dalam konteks ini. Perintah tersebut menyalin percakapan hingga titik saat ini dan memindahkan Anda ke salinannya, sementara versi asli tetap utuh dan masih tersedia di pemilih sesi. Gunakan perintah ini untuk mencoba pendekatan kedua tanpa kehilangan pendekatan pertama.
Perbedaan resume dengan compaction dan memory
Ketiganya sering tertukar, padahal menyelesaikan masalah yang berbeda.
Resume digunakan untuk mengembalikan percakapan setelah Anda keluar, melakukan reboot, atau beralih ke tugas lain. Compaction berkaitan dengan context window dalam percakapan yang masih aktif: /compact mengganti konteks yang sedang dibawa Claude dengan ringkasan, sehingga permintaan berikutnya mengirim lebih sedikit token. Jika masalah Anda adalah context window sudah penuh, gunakan compaction. Mengelola context window Claude Code membahasnya secara lebih menyeluruh.
Memory juga berbeda. File CLAUDE.md dan auto memory memuat instruksi serta fakta pada awal setiap sesi, sehingga keduanya bukan percakapan yang Anda lanjutkan. Keduanya adalah catatan yang Anda tulis agar tidak perlu kembali ke percakapan tersebut.
Jika Anda ingin menjalankan dua percakapan secara bersamaan dan mengoordinasikannya, gunakan mekanisme terpisah. Sesi Claude Code dapat saling mengirim pesan saat keduanya masih aktif. Ini berbeda dari mengambil kembali sesi kemarin dari disk.
FAQ
Di mana Claude Code menyimpan riwayat sesi saya?
Secara default, riwayat disimpan di direktori konfigurasi pada ~/.claude/projects/<project>/<session-id>.jsonl. Di sana, <project> adalah path direktori kerja dengan karakter non-alfanumerik yang diganti dengan tanda hubung. Setiap file berformat JSONL: satu objek JSON per baris untuk pesan, penggunaan alat, atau entri metadata. CLAUDE_CONFIG_DIR memindahkan direktori konfigurasi ke lokasi lain. Pengaturan cleanupPeriodDays dalam settings.json menentukan lama penyimpanan transkrip, dengan nilai default 30 hari dan minimum 1 hari.
Mengapa saya tidak dapat melihat sesi VPS saya di pemilih pada laptop?
Karena transkrip ditulis ke disk mesin tempat agent dijalankan, dan tidak ada sinkronisasi antar-mesin. Percakapan yang Anda lakukan di dalam tmux pada VPS hanya ada di VPS tersebut. Lanjutkan sesi itu di sana melalui SSH, atau jalankan /export di dalamnya lalu salin file teks tersebut jika Anda ingin menyimpan salinan lokal.
Dapatkah saya melanjutkan sesi yang saya mulai di direktori lain?
Ya, jika Anda memiliki ID sesinya. claude --resume <session-id> terlebih dahulu mencari di direktori proyek saat ini dan git worktree-nya, lalu di setiap proyek lain pada mesin yang sama. Di dalam pemilih, Ctrl+A memperluas daftar ke semua proyek pada mesin tersebut, sedangkan Ctrl+W memperluasnya ke semua worktree dari repositori saat ini. Jika tidak ada yang cocok, Claude Code melaporkan No conversation found with session ID: <session-id>.
Sebaiknya saya melanjutkan sesi lama atau memulai sesi baru?
Lanjutkan sesi jika pesan berikutnya bergantung pada hal yang sudah dibahas dalam percakapan tersebut. Mulai sesi baru jika tidak, karena melanjutkan sesi memuat seluruh riwayat dan setiap permintaan berikutnya akan membawanya. Waspadai penyimpangan konteks: jika sesi terus merujuk ke file yang sudah Anda hapus, sesi tersebut masih membawa konteks lama. Konteks itu menghabiskan token dan mengurangi akurasi pada setiap giliran.
Dapatkah saya mencegah Claude Code menulis transkrip ke disk?
Ya. CLAUDE_CODE_SKIP_PROMPT_HISTORY menonaktifkan penulisan transkrip, sedangkan --no-session-persistence menonaktifkannya untuk satu kali eksekusi claude -p non-interaktif. Pahami konsekuensinya terlebih dahulu karena resume membaca transkrip. Jika penulisan transkrip dinonaktifkan, --continue dan --resume tidak memiliki apa pun untuk dimuat. Jika kekhawatiran Anda adalah lokasi file, bukan keberadaan file tersebut, arahkan CLAUDE_CONFIG_DIR ke volume terenkripsi dan kurangi cleanupPeriodDays.