SSD Nodes Learn 🎉 VPS $5.50/महिन्यापासून
मार्गदर्शक Matt Connorद्वारे Matt Connor

Claude Code सत्र पुन्हा सुरू करणे आणि इतिहास शोधणे

नाव, ID किंवा picker वापरून Claude Code session पुन्हा सुरू करा. Terminal बंद झाल्यानंतरही जतन होणारे plaintext transcripts agent चाललेल्या machine वर कुठे सापडतात ते जाणून घ्या.

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

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

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

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

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

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

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

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

काही गोष्टी परत येत नाहीत, कारण त्या जतन केलेली state नसून launch-time flags असतात. --add-dir ने जोडलेल्या directories आणि --mcp-config, --settings तसेच --plugin-dir सारखे options resume करताना पुन्हा द्यावे लागतात. settings.json सारख्या settings files launch वेळी पुन्हा वाचल्या जातात. त्यामुळे त्या files मध्ये असलेल्या कोणत्याही settings पुन्हा देण्याची गरज नसते.

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 वेगळा आणि बराच लहान संच दाखवतो.

हीच विभागणी वेगवेगळ्या interfaces मध्येही लागू होते. Desktop app आणि VS Code extension यांचा session history स्वतंत्र असतो. यापैकी कोणताही history CLI चा नसतो. Claude Code on the web चा history देखील स्वतंत्र असतो.

एका मशीनमध्ये search ची व्याप्ती तुमच्या अपेक्षेपेक्षा मोठी असते. claude --resume <session-id> प्रथम current project directory आणि त्यातील git worktrees तपासते. त्यानंतर ती त्या मशीनवरील इतर प्रत्येक project मध्ये शोधते. लक्षात ठेवण्यासारखा मुख्य भाग म्हणजे “त्या मशीनवर”. दुसऱ्या 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 ते नाव लहान करते आणि पूर्ण path चा hash शेवटी जोडते. त्यामुळे directory चे नाव filesystem limits मध्ये राहते.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Automated कामांसाठी स्थिर ठेवण्यासाठी तयार केलेले 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 करण्यापेक्षा ही पद्धत अधिक योग्य आधार देते.

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

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

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

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

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

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

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

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

Resume, compaction आणि memory यांच्यातील फरक

या तिन्ही संकल्पनांमध्ये सतत गोंधळ होतो. त्या वेगवेगळ्या समस्या सोडवतात.

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

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

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

FAQ

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

डीफॉल्टनुसार तो तुमच्या config directory अंतर्गत, ~/.claude/projects/<project>/<session-id>.jsonl येथे साठवला जातो. <project> हा working directory path असतो; त्यातील alphanumeric नसलेली अक्षरे hyphens ने बदलली जातात. प्रत्येक फाइल 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 कॉपी करा.

वेगळ्या 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 आहे. या 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 कमी करा.