SSD Nodes Learn Hosting plans →
मार्गदर्शक Matt Connorद्वारे Matt Connor · अपडेटेड 2026-09-12

Claude Code सत्र पुन्हा सुरू करणे आणि history कुठे सापडते

Claude Code सत्र नावाने किंवा picker मधून पुन्हा सुरू करा. Terminal बंद झाल्यानंतरही जतन होणारे plaintext transcripts agent ज्या machine वर चालला तिथे शोधा.

Claude Code सत्र कसे पुन्हा सुरू करावे

सध्याच्या directory मधील सर्वात अलीकडील संभाषण पुन्हा सुरू करण्यासाठी claude --continue चालवा. जुन्या संभाषणांमधून एक निवडण्यासाठी claude --resume चालवा. आधीपासून सुरू असलेल्या सत्रामधून बाहेर न पडता दुसऱ्या संभाषणावर जाण्यासाठी /resume command वापरा. यांची संक्षिप्त रूपे -c आणि -r आहेत.

claude --continue
claude --resume
claude --resume auth-refactor

सत्राचे नाव किंवा त्याचा ID माहीत असल्यास, तो argument म्हणून द्या. Claude Code picker न दाखवता थेट त्या सत्रावर जाईल.

खालील सर्व माहिती August 2026 मधील अधिकृत सत्र documentation शी सुसंगत आहे. Claude Code वारंवार releases करते. तसेच flag names आणि keyboard shortcuts आवृत्तीनुसार बदलू शकतात. त्यामुळे येथे दिलेली माहिती तुमच्या terminal मधील output शी जुळत नसल्यास claude --help आणि ते पृष्ठच अधिकृत संदर्भ माना.

प्रत्यक्षात session म्हणजे काय

session म्हणजे project directory शी संबंधित जतन केलेले एक conversation. त्यात संपूर्ण message history असते. Claude ने केलेले tool calls आणि त्या calls ने परत केलेले results यांचाही त्यात समावेश असतो. तुम्ही काम करत असताना Claude Code हे conversation शेवटी एकदाच नाही, तर सतत disk वर लिहिते. त्यामुळे terminal बंद झाला किंवा SSH connection तुटले, तरी conversation टिकून राहते.

Resume केल्यावर केवळ text परत येत नाही. संपूर्ण conversation history पुन्हा उपलब्ध होते. तसेच session ज्या model चा वापर करत होते तो model आणि --agent वापरल्यास ज्या subagent सह ते सुरू केले होते तो subagent देखील परत येतो. Permission mode देखील परत येतो. मात्र सुरक्षिततेसाठी काही अपवाद आहेत: plan mode आणि bypass-permissions mode कधीही restore केले जात नाहीत. त्यामुळे यापैकी एखाद्या mode मध्ये असलेले session resume केल्यावर नवीन session ज्या mode मध्ये सुरू झाले असते त्याच mode मध्ये सुरू होते.

काही गोष्टी पुन्हा उपलब्ध होत नाहीत, कारण त्या जतन केलेली स्थिती नसून सुरू करतानाचे flags असतात. --add-dir ने जोडलेल्या directories आणि --mcp-config, --settings व --plugin-dir सारखे options resume करताना पुन्हा द्यावे लागतात. settings.json सारख्या settings files launch वेळी पुन्हा वाचल्या जातात. त्यामुळे त्यांमध्ये असलेल्या गोष्टी पुन्हा द्याव्या लागत नाहीत. Credentials बाबतही हेच लागू होते: Claude Code launch वेळी तुमच्या login आणि environment वरून authentication कसे करायचे ते ठरवतो. ते conversation सोबत restore केले जात नाही. त्यामुळे shell मध्ये अनवधानाने ANTHROPIC_API_KEY आलेल्या VPS वर resume केलेले session मागच्या वेळी सुरळीत चालले असले तरी अवैध API key त्रुटी दर्शवेल.

VPS वर session history अधिक महत्त्वाची का आहे

लोकांना आश्चर्य वाटणारी बाब अशी आहे. Transcript ज्या मशीनवर agent चालला, त्याच मशीनवर लिहिला जातो. तो तुमच्या account मध्ये साठवला जात नाही आणि cloud वर sync केला जात नाही. तो त्या मशीनच्या disk वरील एक file असतो.

म्हणून VPS वरील tmux window मध्ये ठेवलेली session तुमच्या laptop वरील picker मध्ये दिसत नाही. तसेच laptop वरील session VPS वर दिसत नाही. दोन्ही मशीनमध्ये काहीही हस्तांतरित होत नाही. बहुतेक लोकांप्रमाणे तुम्ही VPS वर tmux मध्ये Claude Code चालवत असाल, तर तुमचा प्रत्यक्ष conversation history server वर साठत जातो. स्थानिक मशीनवर दिसणाऱ्या picker मध्ये त्यापेक्षा वेगळ्या आणि खूप कमी sessions असतात.

हाच विभाजन वेगवेगळ्या interfaces मध्येही लागू होतो. Desktop app आणि VS Code extension प्रत्येकी आपला स्वतंत्र session history ठेवतात. यापैकी कोणताही history CLI चा history नसतो. Claude Code on the web चाही स्वतंत्र history असतो. Cowork यापेक्षा वेगळे आहे. ते तुमच्या मालकीच्या hardware वर नव्हे, तर Anthropic sandbox मध्ये चालते. त्यामुळे तुम्ही Cowork आणि Claude Code यांपैकी निवड करण्याचा विचार करत असाल, तर transcript कुठे साठतो हा निर्णयाचा एक भाग आहे.

एका मशीनमध्ये search ची व्याप्ती तुमच्या अपेक्षेपेक्षा मोठी असते. claude --resume <session-id> प्रथम current project directory आणि त्यातील git worktrees तपासते. त्यानंतर ती त्या मशीनवरील इतर प्रत्येक project मध्ये शोधते. लक्षात ठेवण्यासारखा भाग म्हणजे "on that machine". दुसऱ्या host वरील session ID साठी काहीही सापडत नाही. Claude Code हे No conversation found with session ID: <session-id> द्वारे स्पष्ट करते.

Claude Code सत्र इतिहास कुठे साठवते

डीफॉल्टनुसार, transcript फाइल्स तुमच्या Claude Code configuration directory अंतर्गत ~/.claude/projects/<project>/<session-id>.jsonl या स्वरूपाच्या path वर साठवल्या जातात.

<project> म्हणजे तुमच्या working directory path मधील प्रत्येक non-alphanumeric character च्या जागी hyphen लावून तयार केलेले नाव. त्यामुळे /home/deploy/apps/api मध्ये सुरू केलेले session -home-deploy-apps-api नावाच्या directory अंतर्गत साठवले जाते. हे रूपांतरित नाव 200 characters पेक्षा मोठे होणार असल्यास, Claude Code ते truncate करते आणि पूर्ण path चा hash शेवटी जोडते. त्यामुळे directory चे नाव filesystem limits मध्ये राहते.

ही file JSONL स्वरूपात असते. प्रत्येक line मध्ये एक JSON object असतो. त्या object मध्ये message, tool use किंवा metadata entry असू शकते. ती readable text आहे, त्यामुळे ती वाचणे योग्य आहे.

मात्र त्यावर आधारित parser लिहिणे योग्य नाही. Entry format हे Claude Code अंतर्गत वापरले जाणारे format आहे आणि versions दरम्यान बदलू शकते. त्यामुळे या files थेट वाचणारी script कोणत्याही update नंतर काम करणे थांबवू शकते. Anthropic च्या अधिकृत documentation मध्ये त्याऐवजी /export किंवा documented script interfaces वापरण्याची सूचना आहे. याच कारणासाठी हा योग्य सल्ला आहे.

दोन settings मुळे storage चे स्थान आणि retention बदलते. CLAUDE_CONFIG_DIR संपूर्ण config directory दुसऱ्या ठिकाणी हलवते. त्यामुळे transcripts स्वतंत्र volume किंवा encrypted volume वर ठेवता येतात. cleanupPeriodDays मधील settings.json transcripts किती काळ ठेवायचे ते नियंत्रित करते. याचे default मूल्य 30 days आहे आणि minimum मूल्य 1 आहे.

त्या transcript फाइल्समध्ये प्रत्यक्षात काय असते

प्रत्येक tool result नोंदवला जातो. त्यामुळे transcript मध्ये Claude ने वाचलेल्या फाइल्समधील मजकूर आणि Claude ने चालवलेल्या commands चे output असते. Anthropic च्या data usage page मध्ये हे स्पष्टपणे नमूद केले आहे: Claude Code session transcripts स्थानिक पातळीवर plaintext स्वरूपात ~/.claude/projects/ अंतर्गत साठवते.

सर्व्हरवर याचा अर्थ काय होतो, याचा विचार करा. सेवा का सुरू होत नाही हे शोधण्यासाठी Claude ने एखादी .env फाइल वाचली असल्यास, त्या फाइलमधील मजकूर आता तुमच्या home directory मधील JSONL फाइलमध्ये साठवलेला आहे. एखाद्या command ने connection string छापली असल्यास, ती string देखील त्यात असते. काहीही गळती झालेली नाही. transcript मध्ये घडलेली प्रत्येक गोष्ट नोंदवली जाते. transcript चा उद्देशच हा आहे. म्हणूनच तो तुमच्या threat model मध्ये समाविष्ट केला पाहिजे.

  • Backups: /home किंवा /root चा साधा backup घेतल्यास transcripts जिथे backups साठवले जातात तिथे कॉपी होतात. exclusion जोडा. किंवा तुमचे prompts आणि फाइलमधील मजकूर यांच्या प्रती आता backup store मध्ये असतील, हे स्वीकारा.
  • Snapshots and images: कोणत्याही कारणासाठी घेतलेल्या VPS snapshot मध्ये संपूर्ण directory असते. दुसरा server तयार करण्यासाठी clone केलेल्या image मध्येही तीच directory असते.
  • Other accounts on the box: permissions कडक आहेत असे गृहीत धरण्याऐवजी ls -ld ~/.claude ~/.claude/projects वापरून modes स्वतः तपासा.
  • Deliberate uploads: /feedback command संभाषणाचा इतिहास जाणीवपूर्वक Anthropic कडे पाठवते. /bug आणि /share देखील त्याच मार्गाने report करतात. या गोष्टी तुम्ही स्वतः निवडता. त्यामुळे confirm करण्यापूर्वी तुम्ही कशाला संमती देत आहात, हे समजून घ्या.

transcript अजिबात तयार होऊ नये असे तुम्हाला वाटत असल्यास, CLAUDE_CODE_SKIP_PROMPT_HISTORY transcript writes बंद करते. एका non-interactive claude -p run साठी --no-session-persistence transcript writes बंद करते. यापैकी कोणतीही setting लागू करण्यापूर्वी त्यातील trade-off स्पष्टपणे समजून घ्या. resume reads साठी transcripts आवश्यक असतात. त्यामुळे transcript नसल्यास resume उपलब्ध नसते.

जुने संभाषण कसे शोधावे

claude --resume वापरून picker उघडा. चालू session मधून picker उघडण्यासाठी /resume वापरा. तुम्ही session चे नाव सेट केले असल्यास प्रत्येक row मध्ये ते नाव दिसते. नाव सेट केले नसल्यास generated title दिसतो. तसेच शेवटच्या activity पासूनचा कालावधी, git branch आणि file size दिसतात.

Picker मध्ये search करता येतो. यादी filter करण्यासाठी / दाबा किंवा थेट typing सुरू करा. यादीचा विस्तार करणारे shortcuts विशेषतः उपयुक्त आहेत: Ctrl+A या मशीनवरील प्रत्येक project मधील sessions दाखवते, Ctrl+W सध्याच्या repository मधील प्रत्येक worktree दाखवते आणि Ctrl+B सध्याच्या git branch पर्यंत यादी मर्यादित करते. Session निवडण्यापूर्वी त्यातील content preview करण्यासाठी Space दाबा. Highlight केलेल्या session चे नाव बदलण्यासाठी Ctrl+R दाबा.

Sessions ला नावे दिल्यास हे सर्व अधिक सोपे होते. claude -n auth-refactor वापरून session सुरू करा. संभाषण प्रत्यक्ष कामात रूपांतरित झाल्याचे लक्षात आल्यावर, session सुरू केल्यानंतरही /rename auth-refactor चालवा. त्यानंतर shell मधून named session पुन्हा नावाने resume करता येते.

Unnamed session साठीही generated title तयार केला जातो. तुमच्या पहिल्या prompt चा सारांश तयार करणाऱ्या छोट्या, जलद model कडे background request पाठवून हा title लिहिला जातो. Picker मधील row ओळखण्यासाठी हा title उपयुक्त असतो. मात्र तो resume handle नसतो. claude --resume <name> तुम्ही स्वतः सेट केलेल्या नावांशीच match करते.

योग्य session शोधण्यासाठी transcripts मध्ये grep वापरणे

कधीकधी एखादा phrase आठवतो, पण इतर काहीही आठवत नाही. Transcripts मजकूर स्वरूपात असल्यामुळे त्यात search करा.

grep -rl "nftables" ~/.claude/projects/

यामुळे जुळणाऱ्या transcripts चे paths दिसतात. .jsonl extension वगळून उरलेले filename म्हणजे session ID. claude --resume <session-id> हे ID स्वीकारते. तुम्हाला कोणता session हवा आहे हे ठरवण्यासाठी grep वापरा. त्यानंतर तो session resume करा किंवा प्रत्यक्ष वाचण्यासाठी export करा.

दोन महत्त्वाच्या मर्यादा लक्षात ठेवा. मजकूर JSON-escaped असल्यामुळे quote characters असलेला phrase किंवा line break मुळे दोन भागांत विभागलेला phrase literal string म्हणून जुळणार नाही. तसेच tool result मधील match याचा अर्थ Claude ने तो मजकूर पाहिला असा आहे; तो कोणी type केला असे आवश्यक नाही.

संभाषण वाचणे आणि export करणे

/export विद्यमान संभाषण plain text म्हणून render करते. संदेश आणि tool output JSON ऐवजी वाचनीय स्वरूपात लिहिले जातात. कोणताही argument न दिल्यास clipboard किंवा file निवडण्यासाठी menu उघडतो. filename दिल्यास /export handover.txt थेट त्या path वर लिहिते. संभाषण server वरून laptop वर हलवण्यासाठी किंवा ते ticket ला जोडण्यासाठी ही योग्य पद्धत आहे.

स्वयंचलित प्रक्रियांसाठी स्थिर राहण्यासाठी उद्दिष्टित interfaces वापरा. Hooks आणि status line commands यांना input म्हणून transcript_path field मिळते. त्यामुळे session संपल्यावर SessionEnd hook transcript archive करू शकतो. Stored session न उघडता त्याला प्रश्नही विचारता येतो:

claude -p --resume <session-id> --output-format json "summarize what we changed" | jq -r '.result'

यामुळे जुन्या संभाषणात follow-up prompt पाठवला जातो आणि structured JSON परत मिळतो. पुढील release मध्ये बदलू शकणाऱ्या JSONL format चे parsing करण्यापेक्षा हा अधिक योग्य आधार आहे.

नवीन सत्र सुरू करणे पुन्हा सुरू करण्यापेक्षा योग्य ठरते तेव्हा

पुन्हा सुरू केल्यावर संपूर्ण इतिहास परत येतो आणि त्यानंतरच्या प्रत्येक विनंतीसोबत हाच संपूर्ण इतिहास पाठवला जातो. काल चार तास चाललेले conversation आज पुढे सुरू ठेवणे खर्चिक ठरते. दीर्घ session मध्ये token वापर कसा वाढतो यामध्ये हा खर्च नेमका कुठून येतो हे स्पष्ट केले आहे.

Claude Code कधी कधी मधला पर्याय देते. Pro किंवा Max plan वर, सुमारे एक तास idle असलेले आणि 100,000 पेक्षा अधिक tokens असलेले session पुन्हा सुरू करताना, तुमचा पहिला संदेश पाठवण्यापूर्वी एक dialog उघडतो. तोपर्यंत prompt cache कालबाह्य झालेला असतो. त्यामुळे तुम्ही कोणताही पर्याय निवडला तरी पुढील request मध्ये संपूर्ण history एकदा पुन्हा process केली जाते.

  • Resume from summary लगेच compaction चालवते. त्यामुळे पुढील requests मध्ये संपूर्ण history ऐवजी summary पाठवली जाते. प्रत्येक request स्वस्त पडते; परंतु summary मधून वगळलेली माहिती यापुढे उपलब्ध राहत नाही.
  • Resume full session as-is conversation मध्ये कोणताही बदल न करता ती load करते. प्रत्येक detail टिकून राहतो; मात्र प्रति-request खर्च conversation च्या आकारानुसार वाढतो.

तिसरा पर्याय session पूर्णपणे पुन्हा सुरू करतो आणि पुढील resumes वेळी हा dialog दिसणे थांबवतो.

निर्णय घेणे दिसते त्यापेक्षा सोपे आहे. तुम्ही आता लिहिणार असलेली पुढील गोष्ट आधी काय सांगितले गेले यावर अवलंबून असेल, तर resume करा. तसे नसेल, तर नवीन session सुरू करा. याकडे लक्ष दिल्यावर context मधील drift सहज दिसतो: Claude ने तासभरापूर्वी delete केलेल्या file चा संदर्भ देणे किंवा session च्या सुरुवातीला निश्चित केलेल्या निर्णयावर पुन्हा चर्चा करणे. हा stale context असतो. तो पुढे नेल्यामुळे tokens आणि अचूकता दोन्हींचे एकाच वेळी नुकसान होते.

जुन्या conversation मधील उपयुक्त भाग एखादा निर्णय किंवा पुन्हा लागणारी वस्तुस्थिती असेल, तर तो resuming वर सोपवू नका. प्रत्येक session ला दिसेल अशा ठिकाणी तो लिहून ठेवा. यासाठीच Claude Code च्या memory files वापरल्या जातात.

/branch हेदेखील येथे लक्षात ठेवण्यासारखे आहे. ते सध्याच्या बिंदूपर्यंतची conversation copy करते आणि तुम्हाला त्या copy मध्ये switch करते. मूळ conversation तशीच ठेवली जाते आणि picker मध्ये उपलब्ध राहते. पहिला approach न गमावता दुसरा approach वापरून पाहण्यासाठी याचा उपयोग करा.

Resume, compaction आणि memory यांमध्ये फरक

या तीन गोष्टी सतत गोंधळल्या जातात. मात्र त्या वेगवेगळ्या समस्या सोडवतात.

तुम्ही बाहेर पडल्यानंतर, रीबूट केल्यानंतर किंवा दुसऱ्या कामाकडे वळल्यानंतर एखादे संभाषण पुन्हा सुरू करण्याशी resume संबंधित आहे. Compaction हे live conversation मधील context window शी संबंधित आहे: /compact Claude कडे असलेल्या संदर्भाची जागा summary ने घेते, त्यामुळे नंतरच्या विनंत्यांमध्ये कमी tokens पाठवले जातात. तुमची समस्या context window भरलेली असणे ही असल्यास compaction हे योग्य साधन आहे. Claude Code context window व्यवस्थापित करणे याबाबत सविस्तर माहिती देते.

Memory ही यापेक्षा वेगळी आहे. CLAUDE.md files आणि auto memory प्रत्येक session च्या सुरुवातीला instructions आणि facts लोड करतात. त्यामुळे त्या तुम्ही पुन्हा उघडून सुरू करत असलेले conversation नसतात. एखाद्या conversation कडे पुन्हा परतण्याची गरजच पडू नये म्हणून तुम्ही लिहून ठेवलेल्या गोष्टी म्हणजे memory.

तुम्हाला एकाच वेळी दोन conversations चालवून त्यांच्यात समन्वय साधायचा असल्यास, त्यासाठी स्वतंत्र mechanism आहे. दोन्ही sessions live असताना Claude Code sessions एकमेकांना संदेश पाठवू शकतात. कालचे session disk वरून पुन्हा आणण्यापेक्षा ही वेगळी समस्या आहे.

FAQ

Claude Code माझ्या session history कुठे साठवते?

डीफॉल्टनुसार ती तुमच्या config directory अंतर्गत, ~/.claude/projects/<project>/<session-id>.jsonl येथे साठवली जाते. येथे <project> हा working directory path असून त्यातील non-alphanumeric characters hyphens ने बदललेले असतात. प्रत्येक file JSONL स्वरूपाची असते. प्रत्येक ओळीत message, tool use किंवा metadata entry दर्शवणारा एक JSON object असतो. CLAUDE_CONFIG_DIR config directory दुसऱ्या ठिकाणी हलवते. settings.json मधील cleanupPeriodDays transcripts किती काळ ठेवायचे ते ठरवते. डीफॉल्ट कालावधी 30 days आहे आणि किमान कालावधी 1 आहे.

माझ्या laptop वरील picker मध्ये माझे VPS session का दिसत नाही?

कारण transcripts ज्या machine वर agent चालला त्या machine च्या disk वर लिहिले जातात. त्या machines दरम्यान ते sync होत नाहीत. तुमच्या VPS वरील tmux मध्ये केलेले conversation फक्त VPS वरच उपलब्ध असते. SSH द्वारे तेथेच resume करा. स्थानिक record हवे असल्यास त्यात /export चालवून text file दुसरीकडे copy करा.

मी वेगळ्या directory मध्ये सुरू केलेले session resume करू शकतो का?

होय, तुमच्याकडे त्याचा session ID असल्यास. claude --resume <session-id> प्रथम current project directory आणि त्यातील git worktrees मध्ये शोधते. त्यानंतर त्याच machine वरील इतर प्रत्येक project मध्ये शोधते. Picker मध्ये Ctrl+A वापरल्यास यादी machine वरील प्रत्येक project पर्यंत विस्तृत होते. Ctrl+W वापरल्यास ती current repository मधील प्रत्येक worktree पर्यंत विस्तृत होते. काहीही जुळले नाही तर Claude Code No conversation found with session ID: <session-id> दाखवते.

जुने session resume करावे की नवीन सुरू करावे?

तुमचा पुढील message त्या conversation मध्ये आधी काय सांगितले गेले यावर अवलंबून असल्यास resume करा. तसे नसल्यास नवीन session सुरू करा. Resume केल्यावर संपूर्ण history पुन्हा load होते आणि त्यानंतरच्या प्रत्येक request सोबत ती history पाठवली जाते. Context मध्ये drift होत आहे का ते तपासा. तुम्ही आधीच delete केलेल्या files चा संदर्भ एखादे session वारंवार देत असल्यास त्यात stale context आहे. त्यामुळे प्रत्येक turn मध्ये tokens आणि accuracy खर्च होतात.

Claude Code ने transcripts disk वर लिहू नयेत असे मी करू शकतो का?

होय. CLAUDE_CODE_SKIP_PROMPT_HISTORY transcript writes बंद करते. एका non-interactive claude -p run साठी --no-session-persistence transcript writes बंद करते. आधी त्याचा परिणाम समजून घ्या. Resume करण्यासाठी transcripts आवश्यक असतात. त्यामुळे ती बंद केल्यास --continue आणि --resume कडे load करण्यासाठी काहीही उरणार नाही. Files अस्तित्वात असण्यापेक्षा त्या कुठे साठवल्या जातात ही तुमची चिंता असल्यास CLAUDE_CONFIG_DIR encrypted volume कडे निर्देशित करा आणि cleanupPeriodDays कमी करा.