VPS वर Claude Code साठी Recall memory कशी सेट करावी
Recall प्रत्येक Claude Code session चा local log आणि resumable summary तयार करते. VPS वर version 0.4.0 सेटअप करा आणि tokens मध्ये होणारी बचत मोजा.
Claude Code memory साठी Recall काय करते
Recall हे Claude Code plugin आहे. ते प्रत्येक project साठी sessions दरम्यान memory ठेवते. ते तुमच्या project मधील .recall/ folder मध्ये दोन markdown files लिहिते: काय घडले याचा append-only log आणि तुम्ही कुठे काम थांबवले याचा लघु summary. तुम्ही काम करत असलेल्या machine वर local Python summarizer या दोन्ही files तयार करतो. त्यामुळे memory साठी API tokens ची किंमत शून्य असते.
यामुळे भरून निघणारी उणीव लहान पण सततची आहे. तुम्ही मंगळवारी तुमच्या VPS वरील session बंद करता. बुधवारी Claude Code ला मंगळवारी काय झाले हे काहीही माहीत नसते. तुम्ही project पुन्हा स्वतः समजावून सांगता किंवा ते समजून घेण्यासाठी model ला repository चा अर्धा भाग पुन्हा वाचू देता. दोन्ही पर्यायांसाठी tokens लागतात. दुसऱ्या पर्यायासाठी मोठ्या प्रमाणात tokens लागतात.
July 2026 पर्यंत Recall version 0.4.0 सध्याची आहे आणि हा project MIT licensed आहे. हे एक plugin आहे. यातील कोणताही भाग network call करत नाही.
तुम्हाला VPS वर काय आवश्यक आहे
Recall चे capture hooks हे plugin सोबत उपलब्ध होणारे Python scripts आहेत. तृतीय-पक्ष dependencies नाहीत. त्यामुळे प्रत्यक्षात फक्त interpreter आवश्यक आहे.
python3 -VUbuntu 24.04 साठी Python 3.12.3 हे उत्तर योग्य आहे. Recall Python 3.9 आणि त्यानंतरच्या आवृत्त्यांना support करते. Minimal container images मध्ये कधी कधी interpreter अजिबात नसतो. अशा वेळी shell python3: command not found असे उत्तर देते. पुढे जाण्यापूर्वी एक interpreter install करा.
sudo apt update && sudo apt install -y python3Summarizer मधील एका टप्प्यासाठी NumPy हा optional accelerator आहे. तो आवश्यक नाही.
python3 -c "import numpy"ModuleNotFoundError: No module named 'numpy' हे येथे स्वीकार्य उत्तर आहे. Summarizer मध्ये pure-Python path उपलब्ध आहे. Project ची test suite दोन्ही paths समान sentences निवडतात का हे तपासते.
Laptop पेक्षा server वर session memory अधिक महत्त्वाची असते, कारण server वरील काम अनेक दिवसांमध्ये विभागलेल्या छोट्या सत्रांमध्ये केले जाते. तुमच्याकडे आधीपासून VPS वर tmux मध्ये Claude Code चालू असेल, तर कालचे session आजच्या session पर्यंत नेणारा घटक Recall आहे.
plugin marketplace मधून Recall स्थापित करा
Claude Code सत्रात टाइप करायचे दोन commands:
/plugin marketplace add raiyanyahya/recall
/plugin install recall@recallदुसरा command plugin@marketplace वाचतो. येथे दोन्ही नावे recall आहेत. हे copy-paste मधील चूक वाटते, परंतु तसे नाही.
Plugin मधील स्वतःचा एक command चालवून installation तपासा:
/recall:show/recall:show सध्याचा summary दाखवतो. अगदी नवीन project मध्ये दाखवण्यासाठी अद्याप काहीही नसते. त्यामुळे येथे प्रत्यक्षात तपासायचे हेच आहे की command अस्तित्वात आहे. Claude Code ने /recall:show ओळखले नाही, तर plugin load झालेला नाही आणि कोणताही hook चालणार नाही.
Checkout मधून चालवायचे असल्यास, repository clone करून प्रथम त्याचे validation करा:
git clone https://github.com/raiyanyahya/recall ~/recall
cd ~/recall && claude plugin validate .claude plugin validate ., .claude-plugin/ मधील manifest वाचतो आणि plugin योग्य रचनेचा आहे की नाही ते कळवतो. त्यानंतर तुमच्या project directory मधून claude --plugin-dir ~/recall वापरून Claude Code सुरू करा.
hooks काय लिहितात आणि ते कधी लिहितात
Recall मध्ये तीन Claude Code hooks नोंदवलेले आहेत. प्रत्येक hook plugin directory मधील Python script चालवतो.
SessionStartstartup, resume आणि clear वेळी चालतो. तोcontext.mdदाखवतो, त्यामुळे session सुरू होताना तुमचा summary दिसतो.StopClaude ने प्रत्येक response पूर्ण केल्यावर चालतो. तो तो turn log मध्ये जोडतो.SessionEndsession बंद होताना चालतो आणि summary पुन्हा तयार करू शकतो.
यातून दोन files तयार होतात. दोन्ही .recall/ मध्ये असतात.
history.mdहा append-only record आहे: prompts, responses, वापरलेल्या files आणि चालवलेल्या commands यांची नोंद.context.mdहा generated digest आहे: goal, summary, next steps, वापरलेल्या files, चालवलेल्या commands आणि git context.
एक प्रत्यक्ष session पूर्ण झाल्यावर directory तपासा.
ls -la .recall/history.md मध्ये content असलेले दिसले पाहिजे. context.md अजिबात दिसणार नाही. हे fault नसून default behaviour आहे. तुम्ही ते set केले नसल्यास auto_save_context हे off असते. त्यामुळे summary तुम्ही मागितल्यावरच लिहिला जातो:
/recall:saveही command history.md वर local summarizer चालवते आणि context.md पुन्हा लिहिते. Algorithm मध्ये TF-IDF (term frequency, inverse document frequency) scoring वापरून TextRank sentence ranking केली जाते. ही प्रक्रिया deterministic आणि extractive आहे. म्हणजे log मध्ये आधीपासून असलेली sentences निवडल्या जातात. कोणतेही model call केले जात नाही. त्यामुळे ही पायरी विनामूल्य आहे आणि machine offline असतानाही कार्य करते.
एका प्रकल्पासाठी Recall कॉन्फिगर करा
कॉन्फिगरेशन प्रकल्पाच्या root मध्ये असलेल्या recall.config.json फाइलमध्ये असते. ही वितरित केलेली default settings आहेत:
{
"output_dir": ".recall",
"capture_history": true,
"summary_sentences": 8,
"redact": true,
"include_git": true,
"max_input_chars": 200000
}output_dirया दोन फाइल्स कुठे असतील ते ठरवते. त्या प्रकल्पाच्या आतच ठेवा.capture_historyhistory.mdlog सुरू किंवा बंद करते.auto_save_contextमध्येoffकिंवाon_endस्वीकारले जाते आणि default म्हणूनoffवापरले जाते.summary_sentencesमध्ये किती वाक्येcontext.mdमध्ये ठेवली जातील ते ठरते. हे मूल्य वाढवल्यास summary अधिक मोठा होतो आणि session सुरू होताना load किंचित वाढतो.redactडिस्कवर काहीही लिहिण्यापूर्वी सामान्य secret patterns काढून टाकते.include_gitsummary मध्ये सध्याचा diff आणि अलीकडील commits समाविष्ट करते.max_input_charsएका वेळी summarizer कितीhistory.mdवाचेल त्यावर कमाल मर्यादा घालते.
VPS वरील प्रकल्पासाठी automatic saving सुरू करणे हा उपयुक्त बदल आहे, कारण server वरील session अनेकदा तुम्ही थांबवण्याचा निर्णय घेतल्यामुळे नव्हे, तर terminal बंद झाल्यामुळे संपतो.
{
"auto_save_context": "on_end",
"summary_sentences": 12
}कॉन्फिगरेशनमध्ये बदल न करता काही काळ capture थांबवण्यासाठी pause marker तयार करा. पुन्हा capture सुरू करण्यासाठी तो delete करा.
touch .recall/.capture-pausedProduction credentials हाताळण्यापूर्वी हे करा, कारण redaction हा एक filter आहे; तो हमी देत नाही. हाच विचार सर्वसाधारणपणे AI agents पासून secrets दूर ठेवण्यामागे आहे: agent ला कधीही न दिसणारा secret हाच सुरक्षित secret असतो.
Recall मुळे tokens मध्ये किती बचत होते?
यासाठी पर्याय कोणता होता यावर ते अवलंबून असते. Session सुरू होताना summary लोड करणे स्वस्त असते. मात्र ते ज्या प्रक्रियेची जागा घेते ती खर्चिक ठरू शकते, कारण project ची memory नसलेले model files वाचून project पुन्हा समजून घेते.
The data behind this chart
[
{
"label": "Recall context.md",
"char_count": "4,800",
"est_tokens": "1,200"
},
{
"label": "Hand-written CLAUDE.md",
"char_count": "3,200",
"est_tokens": "800"
},
{
"label": "Re-reading the repo",
"char_count": "120,000",
"est_tokens": "30,000"
},
{
"label": "Full transcript replay",
"char_count": "340,000",
"est_tokens": "85,000"
}
]ही mid-size project साठीची सामान्य आकडेवारी आहे; तुमच्या project चे मोजमाप नाही. Recall summary साधारण 1,200 tokens मध्ये लोड होते. हे resume साठी एक ते दोन हजार tokens लागतात या project च्या प्रकाशित दाव्याशी सुसंगत आहे. मागील संपूर्ण transcript पुन्हा वापरल्यास संपूर्ण conversation लोड होते आणि ते साधारण 85,000 tokens इतके असते. Files वाचून model ने project पुन्हा समजून घेऊ दिल्यास खर्च या दोन्हीच्या मध्ये राहतो, म्हणजे जवळपास 30,000 tokens; repository वाढल्यावर ही संख्या वाढते. CLAUDE.md row प्रमाण समजण्यासाठी दिली आहे: ती लहान आणि स्थिर असल्यामुळे स्वस्त आहे आणि मागील रात्री काय घडले याऐवजी model ला तुमचे कायमचे नियम सांगते.
तुमच्या स्वतःच्या आकडेवारीचे मोजमाप करा. English prose मध्ये एक token साधारण चार characters इतका असतो; code साठी तो थोडा कमी असतो. तुम्ही ही summary त्याच VPS वरील local model ला देत असाल, तर resume वर विश्वास ठेवण्यापूर्वी ती कोणत्या window मध्ये जात आहे ते तपासा, कारण Ollama लांब prompts लहान default context length वर truncate करते आणि शेवटचा भाग वगळला असल्याचे सांगत नाही.
wc -c .recall/context.md .recall/history.md
echo $(( $(wc -c < .recall/context.md) / 4 ))Session मध्ये सध्या context window मध्ये काय लोड आहे ते /context दाखवते आणि session ची एकूण आकडेवारी /cost देते. एक session सुरुवातीला पूर्णपणे रिकामे ठेवून सुरू करा आणि पुढील session summary सह सुरू करा; त्यांची तुलना करा. Session चे tokens प्रत्यक्षात कुठे खर्च होतात याचे संपूर्ण चित्र पाहण्यासाठी Claude Code tokens कसे खर्च करते येथे breakdown दिले आहे.
एक मर्यादा लक्षात घेतल्यास हा दावा अचूक राहतो. प्रत्येक session सुरू होताना summary लोड केली जाते. त्यामुळे तुम्ही कधीही वापरत नसलेली summary बचत करण्याऐवजी लहान अतिरिक्त खर्च ठरते. तुमचे sessions दीर्घकाळ चालत नसतील, तर summary_sentences default जवळ ठेवा. दुसऱ्या बाजूला session शांत ठेवल्यास फायदा होतो, कारण काम करणारा सर्वात लहान परिणामकारक बदल करण्याकडे प्रवृत्त असलेला agent summarizer ला क्रम लावण्यासाठी कमी log ठेवतो.
सत्राशिवाय सारांश पुन्हा तयार करा
तुम्ही repository clone केला असल्यास, summarizer साठी स्वतंत्र command-line entry point उपलब्ध असतो. terminal सोबत session बंद झाल्यावरही digest हवा असल्यास VPS वर हे उपयुक्त ठरते.
python3 ~/recall/scripts/make_context.py --helphelp output मध्ये स्वीकारले जाणारे flags दिलेले असतात: project root साठी --cwd, स्पष्ट transcript file साठी --transcript, output दडपण्यासाठी --quiet आणि claude व opencode यांपैकी निवड करण्यासाठी --harness. ते एखाद्या project कडे निर्देशित करा:
python3 ~/recall/scripts/make_context.py --cwd /srv/projects/apiते session transcript वाचते आणि history.md, त्यानंतर तुम्ही दिलेल्या directory अंतर्गत context.md लिहिते. marketplace द्वारे install केले असल्यास, plugin Claude Code व्यवस्थापित करत असलेल्या directory मध्ये असतो आणि तेच काम करण्यासाठी /recall:save ही समर्थित पद्धत आहे.
काहीही का लिहिले जात नाही
पूर्ण session नंतर कोणतीही .recall/ directory नाही. Hooks कधीच चालले नाहीत. Plugin load झाले आहे का हे तपासण्यासाठी /recall:show टाइप करा आणि त्यानंतर python3 -V चालवा. Hook command प्रथम python3 आणि नंतर python वापरण्याचा प्रयत्न करते. त्यामुळे या दोन्हीपैकी एकही उपलब्ध नसलेल्या मशीनवर काहीही लिहिले जात नाही आणि याबाबत कोणतीही सूचना मिळत नाही.
history.md ची size वाढते, पण context.md मध्ये कधीही बदल होत नाही. auto_save_context चे default मूल्य off आहे. /recall:save चालवा किंवा key चे मूल्य on_end ठेवा आणि SessionEnd hook ला ते करण्याची परवानगी द्या.
Files चुकीच्या project अंतर्गत दिसतात. Claude Code ज्या directory मधून सुरू केला आहे, त्याच्या संदर्भात Capture writes करते. त्यामुळे home directory मधून session सुरू केल्यास memory तेथेच लिहिली जाते. Project root मधून सुरू करा आणि files प्रत्यक्षात कुठे लिहिल्या गेल्या हे शोधण्यासाठी ls -la .recall/ वापरा.
Capture थांबले, पण कोणतीही सूचना मिळाली नाही. ls -a .recall/ वापरून pause marker आहे का ते तपासा. तुम्ही मागील आठवड्यात तयार केलेली .capture-paused file अजूनही कार्यरत आहे.
दीर्घ session नंतर summary अपुरी आहे. max_input_chars summarizer input 200000 characters पर्यंत मर्यादित करते. त्यामुळे खूप मोठा log कापला जातो. तो rotate करा.
mv .recall/history.md .recall/history-2026-07-30.mdत्यानंतर एक छोटा session चालवा आणि नवीन history.md तयार झाले आहे का हे तपासण्यासाठी पुन्हा ls -la .recall/ तपासा.
Recall च्या मर्यादा
Recall हे log आणि summarizer यांचे संयोजन आहे. त्यामुळे त्यात काय समाविष्ट होत नाही हे स्पष्टपणे समजून घेणे महत्त्वाचे आहे.
Summarizer extractive आहे. TextRank आधीपासून history.md मध्ये असलेली वाक्ये निवडतो. त्यामुळे एखादा निर्णय योग्य होता की नाही हे तो ठरवत नाही. मंगळवारी नोंदवलेली चुकीची दिशा बुधवारी घेतलेल्या योग्य निर्णयासारखीच दिसते. जोखीम महत्त्वाची असेल, तर context.md वाचा आणि ते manually दुरुस्त करा. ती markdown file आहे आणि ती संपादित करण्यास कोणतीही अडचण नाही.
यामध्ये search नाही. प्रत्येक project साठी तुम्हाला एक current summary आणि वाढत जाणारा एक log मिळतो. Projects मधील query करता येणारी memory मिळत नाही. Database विषयी तीन आठवड्यांपूर्वी काय ठरवले होते हा प्रश्न असल्यास तुम्ही history.md मध्ये grep करत आहात. हे sessions मधील माहिती आपोआप शेअर करत नाही. एकाच VPS वर एकाच वेळी उघडलेली दोन sessions एकमेकींचे logs पाहू शकत नाहीत. त्यामुळे एका session ला दुसरी session काय करत आहे हे जाणून घ्यायचे असल्यास, त्या चालू असताना sessions एकमेकींमध्ये थेट text पाठवू शकतात.
Session च्या आत हे मदत करत नाही. Session च्या मध्यावर context window भरून जाणे ही वेगळी समस्या आहे आणि तिचे उपायही वेगळे आहेत. एका session मधील context window व्यवस्थापित करणे हा या guide चा पूरक भाग आहे.
Summary ला जाणीवपूर्वक untrusted input मानले जाते. context.md fenced आणि labelled स्वरूपात inject केले जाते आणि त्यावर अवलंबून राहण्यापूर्वी Claude विचारतो. ही रचना आवश्यक आहे, कारण committed .recall/ directory मध्ये commit access असलेली कोणतीही व्यक्ती agent वाचेल असा text लिहू शकते. Agent वाचलेल्या मजकुराविषयी किती वेळा प्रश्न विचारतो हे session सुरू होताना निवडलेल्या permission mode वर अवलंबून असते. 14 August 2026 रोजी auto mode हा Claude Code चा default होतो. .recall/ personal आहे की shared हे एकदाच ठरवा: personal memory साठी ते .gitignore मध्ये जोडा, किंवा ते commit करून इतर कोणत्याही contribution प्रमाणे review करा. Agent unattended चालत असल्यास, VPS वर Claude Code सुरक्षितपणे चालवणे व्यापक boundary स्पष्ट करते.
Redaction best effort आहे. ती API keys, tokens, PEM blocks आणि .env assignments यांसारख्या सामान्य patterns वर लक्ष केंद्रित करते. ते commit करण्यापूर्वी .recall/ वाचा.
Version number maturity विषयी प्रामाणिक माहिती देते. July 2026 मध्ये 0.4.0 असताना config keys आणि file layout releases दरम्यान अजूनही बदलू शकतात. त्यामुळे तुम्ही अवलंबून असलेली setup upgrade करण्यापूर्वी changelog वाचा.
FAQ
Recall माझा code किंवा transcripts कुठे पाठवते का?
नाही. Capture hooks आणि summarizer हे तुमच्या स्वतःच्या मशीनवर चालणारे Python scripts आहेत. Plugin मध्ये कोणताही API key नाही आणि ते कोणतेही network call करत नाही. Summarising साठी model ऐवजी TF-IDF आणि TextRank वापरले जातात. त्यामुळे ही प्रक्रिया विनामूल्य आहे आणि मशीन offline असतानाही चालते. यातील trade-off असा आहे की summary extractive असतो: तो नवीन वाक्ये लिहिण्याऐवजी तुमच्या log मधील वाक्ये निवडतो.
माझा .recall/context.md का उपलब्ध नाही किंवा अद्ययावत का नाही?
auto_save_context चे default मूल्य off आहे. त्यामुळे तुम्ही /recall:save चालवल्यावरच summary पुन्हा तयार होते. प्रत्येक session संपल्यावर ती पुन्हा लिहिली जावी यासाठी recall.config.json मध्ये "auto_save_context": "on_end" सेट करा. history.md देखील उपलब्ध नसेल, तर hooks अजिबात चालू नाहीत. /recall:show वापरून plugin load झाले आहे का ते तपासा. त्यानंतर त्या box वर python3 -V प्रतिसाद देते का ते तपासा, कारण hooks हे Python scripts आहेत.
Recall प्रत्येक session मध्ये किती बचत करते?
Summary load करण्यासाठी साधारण 1,200 tokens लागतात. याउलट, repository पुन्हा वाचून सध्याची स्थिती समजून घेण्यासाठी model ला साधारण 30,000 tokens लागतात. ही सामान्य आकडेवारी आहे. Session मध्ये wc -c .recall/context.md आणि /context command वापरून तुमच्या स्वतःच्या आकडेवारीचे मोजमाप करा. त्यासाठी cold start ची तुलना summary वरून resume होणाऱ्या session शी करा.
मला अजूनही CLAUDE.md file आवश्यक आहे का?
होय. दोन्हींची कामे वेगवेगळी आहेत. CLAUDE.md मध्ये तुम्ही जाणीवपूर्वक लिहिलेल्या स्थायी नियमांचा आणि build commands चा समावेश असतो. context.md मागील session मध्ये प्रत्यक्षात घडलेल्या घटनांवरून तयार होते. त्यामुळे त्यात तुम्ही लिहून ठेवण्याचा विचारही केला नसता अशी अर्धवट migration असू शकते. दोन्ही files ठेवा.
एका VPS मध्ये अनेक projects साठी memory ठेवता येते का?
होय. Recall प्रत्येक project directory मधील .recall/ मध्ये memory ठेवते. त्यामुळे एकाच server वरील दोन projects चे logs आणि summaries स्वतंत्र राहतात. प्रत्येक वेळी project root मधून Claude Code सुरू करा, कारण files user account नुसार नव्हे तर working directory नुसार ठेवल्या जातात.