Jinsi ya kuweka kumbukumbu ya Claude Code kwenye VPS
Tumia Recall kuhifadhi vipindi vya kazi vya Claude Code kwenye VPS yako. Plugin hii inatengeneza muhtasari wa ndani wa mradi ili kupunguza matumizi ya token za API kila unapoanza.
Kazi ya Recall kwa kumbukumbu ya Claude Code
Recall ni plugin ya Claude Code inayopatia kila mradi kumbukumbu inayodumu kati ya vipindi vya kazi. Inaandika faili mbili za markdown ndani ya folda ya .recall/ iliyo kwenye mradi wako: logi ya kuongeza tu (append-only) inayorekodi matukio, na muhtasari mfupi wa mahali ulipoishia. Faili zote mbili hutengenezwa kwenye mashine unayotumia kupitia summarizer ya Python ya ndani, kwa hivyo kumbukumbu yenyewe haitumii token zozote za API.
Pengo linalozibwa na zana hii ni dogo na la kudumu. Unafunga kipindi cha kazi kwenye VPS yako siku ya Jumanne. Siku ya Jumatano, Claude Code haijui chochote kuhusu Jumanne. Unalazimika kuelezea mradi upya kwa mikono, au unaruhusu modeli isome nusu ya hazina ya msimbo (repository) tena ili kuelewa hali. Vyote hivi vinagharimu token, na njia ya pili inagharimu token nyingi sana.
Toleo la Recall 0.4.0 ni la sasa kufikia Julai 2026, na mradi huu una leseni ya MIT. Hii ni plugin. Hakuna sehemu yoyote ndani yake inayofanya mawasiliano ya mtandao.
Unachohitaji kwenye VPS
Hook za kunasa data za Recall ni hati za Python zinazosafirishwa pamoja na plugin hii. Hakuna utegemezi wa wahusika wengine, kwa hivyo hitaji pekee la msingi ni interpreter.
python3 -VUbuntu 24.04 inajibu Python 3.12.3. Recall inasaidia Python 3.9 na matoleo mapya zaidi. Picha za container ndogo wakati mwingine hazina interpreter yoyote, na hapo shell inajibu python3: command not found. Sakinisha moja kabla ya kuendelea.
sudo apt update && sudo apt install -y python3NumPy ni kiongeza kasi cha hiari kwa hatua moja ya summarizer. Huna haja nayo.
python3 -c "import numpy"ModuleNotFoundError: No module named 'numpy' ni jibu linalokubalika hapa. Summarizer ina njia ya Python pekee, na suite ya majaribio ya mradi huu inathibitisha kuwa njia zote mbili huchagua sentensi zilezile.
Kumbukumbu ya session ni muhimu zaidi kwenye seva kuliko kwenye laptop, kwa sababu kazi za seva hufika katika ziara fupi zilizotawanyika kwa siku kadhaa. Ikiwa tayari unayo Claude Code inayofanya kazi ndani ya tmux kwenye VPS, Recall ndiyo sehemu inayohamisha session ya jana hadi leo.
Sakinisha Recall kutoka kwenye soko la plugin
Amri mbili, zilizoandikwa ndani ya kipindi cha Claude Code:
/plugin marketplace add raiyanyahya/recall
/plugin install recall@recallAmri ya pili inasomeka plugin@marketplace. Majina yote mawili ni recall hapa, jambo ambalo linaonekana kama kosa la kunakili na kubandika lakini si kosa.
Thibitisha usakinishaji kwa kuendesha moja ya amri za plugin hiyo:
/recall:show/recall:show huchapisha muhtasari wa sasa. Kwenye mradi mpya kabisa hakuna cha kuchapisha bado, kwa hivyo unachokagua hasa ni kama amri hiyo ipo. Ikiwa Claude Code haitambui /recall:show, plugin hiyo haijapakiwa, na hakuna hook itakayofanya kazi.
Ili kuendesha kutoka kwenye checkout badala yake, clone repository hiyo na uithibitishe kwanza:
git clone https://github.com/raiyanyahya/recall ~/recall
cd ~/recall && claude plugin validate .claude plugin validate . inasoma manifest iliyo kwenye .claude-plugin/ na kutoa taarifa kama plugin hiyo imesanifiwa vizuri. Kisha anzisha Claude Code kutoka kwenye saraka ya mradi wako kwa kutumia claude --plugin-dir ~/recall.
Yale ambayo hooks huandika, na wakati wa kuandika
Kumbuka kuwa registers hutoa hooks tatu za Claude Code. Kila moja huendesha script ya Python kutoka kwenye saraka ya plugin.
SessionStarthuanza wakati wa startup, resume, na clear. Inatoacontext.mdili session ifunguke huku muhtasari wako ukiwa unaonekana.Stophuanza kila wakati Claude anapomaliza kutoa jibu. Inaongeza hatua hiyo kwenye log.SessionEndhuanza wakati session inafungwa, na inaweza kutengeneza upya muhtasari.
Faili mbili hutokana na hili, zote zikiwa ndani ya .recall/.
history.mdni rekodi ya kuongeza tu (append-only): prompts, majibu, faili zilizoguswa, na amri zilizotekelezwa.context.mdni muhtasari uliotengenezwa: lengo, muhtasari, hatua zinazofuata, faili zilizoguswa, amri zilizotekelezwa, na muktadha wa git.
Baada ya session moja halisi, angalia saraka hiyo.
ls -la .recall/Unapaswa kuona history.md ikiwa na maudhui ndani yake. Huenda usione context.md kabisa, na hiyo ni tabia ya kawaida badala ya kuwa hitilafu. auto_save_context ni off isipokuwa ukiweka wewe mwenyewe, kwa hivyo muhtasari huandikwa tu unapouomba:
/recall:saveAmri hiyo huendesha summarizer ya ndani juu ya history.md na kuandika upya context.md. Algorithm inayotumika ni TF-IDF (term frequency, inverse document frequency) inayolisha TextRank kwa ajili ya kupanga sentensi. Ni ya kiufundi na ya dondoo (extractive), kumaanisha kuwa inachagua sentensi zilizopo tayari kwenye log yako. Hakuna model inayoitwa, kwa hivyo hatua hii ni ya bure na inafanya kazi hata mashine ikiwa nje ya mtandao (offline).
Sanidi Recall kwa mradi mmoja
Usanidi unapatikana kwenye faili la recall.config.json katika mzizi wa mradi. Hizi ndizo chaguo-msingi zilizotolewa:
{
"output_dir": ".recall",
"capture_history": true,
"summary_sentences": 8,
"redact": true,
"include_git": true,
"max_input_chars": 200000
}output_dirhuweka mahali ambapo faili hizo mbili zinapatikana. Iweke ndani ya mradi.capture_historyhuwasha au kuzima log yahistory.md.auto_save_contexthukubalioffauon_end, na chaguo-msingi nioff.summary_sentencesni idadi ya sentensi zinazobaki kwenyecontext.md. Kuiongeza kutatoa muhtasari mrefu zaidi na mzigo mdogo zaidi wakati wa kuanza kipindi.redacthuondoa mifumo ya kawaida ya siri kabla ya kitu chochote kuandikwa kwenye diski.include_githuongeza diff ya sasa na commits za hivi karibuni kwenye muhtasari.max_input_charshuweka kikomo cha kiasi chahistory.mdambacho kisomaji muhtasari husoma kwa mkupuo mmoja.
Kwa mradi kwenye VPS, mabadiliko muhimu ni kuhifadhi kiotomatiki, kwa sababu kipindi kwenye seva mara nyingi huisha wakati terminal inafungwa badala ya wakati unapoamua kusitisha.
{
"auto_save_context": "on_end",
"summary_sentences": 12
}Ili kusitisha unasa kwa muda bila kugusa usanidi, tengeneza alama ya kusitisha (pause marker). Ifute ili kuanza kunasa tena.
touch .recall/.capture-pausedFanya hivi kabla ya kipindi ambacho unashughulikia vitambulisho vya uzalishaji (production credentials), kwa sababu ufutaji wa siri ni kichujio na si hakikisho. Sababu hiyo hiyo ndiyo inayoongoza kuepuka kuweka siri kwenye mawakala wa AI kwa ujumla: siri iliyo salama ni ile ambayo wakala haioni kamwe.
Recall huokoa token kiasi gani?
Inategemea na kile ambacho kingetumika badala yake. Kupakia muhtasari mwanzoni mwa session ni nafuu. Kile kinachobadilishwa kinaweza kuwa ghali, kwa sababu model isiyo na kumbukumbu ya mradi wako huigundua upya kwa kusoma faili.
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"
}
]Hizi ni takwimu za kawaida kwa mradi wa ukubwa wa wastani, si kipimo cha mradi wako. Muhtasari wa Recall hupakia takriban 1,200 tokens, jambo linaloendana na madai yaliyochapishwa ya mradi ya token elfu moja hadi mbili kwa ajili ya resume. Kurudia transcript kamili ya awali hupakia upya mazungumzo yote, katika kiwango cha 85,000 tokens. Kuruhusu model igundue mradi upya kwa kusoma faili hupatikana katikati ya viwili hivyo, karibu na 30,000 tokens, na namba hiyo hukua kulingana na repository. Safu ya CLAUDE.md ipo kwa ajili ya kulinganisha: ni nafuu kwa sababu ni fupi na tuli, na huambia model sheria zako za kudumu badala ya kile kilichotokea jana usiku.
Pima namba zako mwenyewe. Token moja ni takriban herufi nne za lugha ya Kiingereza, na kidogo zaidi kwa code. Ikiwa pia utalisha muhtasari huo kwenye local model kwenye VPS hiyo hiyo, kagua window inayotumika kabla ya kuamini resume, kwa sababu Ollama hukata prompts ndefu kwenye urefu mdogo wa context chaguo-msingi badala ya kukuambia kuwa imeacha sehemu ya mwisho.
wc -c .recall/context.md .recall/history.md
echo $(( $(wc -c < .recall/context.md) / 4 ))Ndani ya session, /context huonyesha kile kilichopakiwa kwenye context window hivi sasa, na /cost huripoti jumla ya session. Anza session moja bila kitu, anza inayofuata ukiwa na muhtasari, kisha ulinganishe. Kwa picha kamili ya mahali ambapo tokens za session huenda, jinsi Claude Code inavyotumia tokens ina uchambuzi wa kina.
Tahadhari moja huweka madai haya kuwa ya kweli. Muhtasari hupakiwa kila session inapoanza, kwa hivyo muhtasari ambao huutumii ni gharama ndogo badala ya akiba. Weka summary_sentences karibu na thamani chaguo-msingi isipokuwa kama session zako ni ndefu. Session tulivu husaidia upande mwingine wa hesabu, kwa sababu wakala anayesukumwa kuelekea mabadiliko madogo zaidi yanayofanya kazi huacha log fupi kwa ajili ya summarizer kupanga.
Jenga upya muhtasari bila session
Ikiwa umekopi (clone) hazina (repository), zana ya muhtasari ina sehemu yake ya kuingilia kupitia mstari wa amri (command line). Hii ni muhimu kwenye VPS wakati session imekufa pamoja na terminal na bado unataka muhtasari huo.
python3 ~/recall/scripts/make_context.py --helpMaelezo ya usaidizi (help output) yanaorodhesha flag zinazokubalika: --cwd kwa ajili ya mzizi wa mradi (project root), --transcript kwa ajili ya faili mahususi ya transcript, --quiet ili kuzuia matokeo (suppress output), na --harness ili kuchagua kati ya claude na opencode. Ielekeze kwenye mradi:
python3 ~/recall/scripts/make_context.py --cwd /srv/projects/apiInasoma transcript ya session na history.md, kisha inaandika context.md chini ya saraka (directory) uliyopitisha. Ikiwa uliisakinisha kupitia marketplace, plugin hiyo hukaa kwenye saraka inayodhibitiwa na Claude Code, na /recall:save ndiyo njia inayoungwa mkono ya kufanya kazi hiyo hiyo.
Kwa nini hakuna kinachoandikwa
Hakuna saraka ya .recall/ baada ya kikao kamili. Hook hazikuwahi kufanya kazi. Andika /recall:show ili kuthibitisha kuwa plugin imepakiwa, kisha endesha python3 -V. Amri ya hook hujaribu python3 kwanza na python pili, kwa hivyo kisanduku kisicho na mojawapo ya hizo hakiandiki chochote na hakitoi taarifa yoyote kuhusu hilo.
history.md inakua lakini context.md haibadiliki kamwe. auto_save_context imewekwa kuwa off kwa chaguomsingi. Endesha /recall:save, au weka ufunguo kuwa on_end na uruhusu hook ya SessionEnd ifanye kazi hiyo.
Faili zinaonekana chini ya mradi usio sahihi. Recall huandika kulingana na saraka ambayo Claude Code ilianzishiwa, kwa hivyo kuanzisha kikao kutoka kwenye saraka yako ya nyumbani huweka kumbukumbu huko. Anza kutoka kwenye mzizi wa mradi, na utumie ls -la .recall/ ili kupata mahali ambapo faili zimetua kihalisi.
Ukamataji umesimama na hakuna onyo lililotolewa. Angalia alama ya kusitisha kwa kutumia ls -a .recall/. Faili ya .capture-paused uliyotengeneza wiki iliyopita bado inafanya kazi yake.
Muhtasari ni mfupi baada ya kikao kirefu. max_input_chars hupunguza ingizo la muhtasari kwa vibambo 200000, kwa hivyo logi ndefu sana hukatwa. Izungushe (rotate).
mv .recall/history.md .recall/history-2026-07-30.mdEndesha kikao kimoja kifupi baada ya hapo na uangalie ls -la .recall/ tena ili kuthibitisha kuwa history.md mpya imeonekana.
Mahali ambapo Recall huishia
Recall ni logi pamoja na kifupishi, na ni muhimu kufafanua kile ambacho hakijumuishwi.
Kifupishi hiki ni cha uchimbaji (extractive). TextRank huchagua sentensi ambazo tayari zipo kwenye history.md, kwa hivyo haihukumu kamwe kama uamuzi ulikuwa sahihi. Uamuzi mbaya uliorekodiwa siku ya Jumanne unasomeka sawa kabisa na uamuzi mzuri wa siku ya Jumatano. Wakati mambo ni mazito, soma context.md na uirekebishe kwa mkono. Hii ni faili ya markdown na hakuna kinachokuzuia kuihariri.
Hakuna utafutaji. Unapata muhtasari mmoja wa sasa na logi moja inayokua kwa kila mradi, si kumbukumbu inayoweza kuulizwa maswali (queryable) katika miradi yote. Ikiwa swali ni nini uliamua kuhusu database wiki tatu zilizopita, unatumia grep kwenye history.md. Pia haibebi chochote kando: vipindi (sessions) viwili vilivyofunguliwa kwenye VPS moja kwa wakati mmoja haviwezi kuona logi za kila kimoja, kwa hivyo wakati kimoja kinahitaji kujua kile kingine kinafanya, vipindi vinaweza kupitishana maandishi moja kwa moja wakati vinafanya kazi.
Haisaidii ndani ya kipindi kimoja. Dirisha la muktadha (context window) linalojaa katikati ya kipindi ni tatizo tofauti lenye masuluhisho tofauti, na kusimamia dirisha la muktadha ndani ya kipindi kimoja ni sehemu inayokamilisha mwongozo huu.
Muhtasari huchukuliwa kama data isiyoaminika kwa muundo wake. context.md huingizwa ikiwa imefungwa kwenye alama na kupewa lebo, na Claude huuliza kabla ya kuitegemea. Muundo huo upo kwa sababu saraka ya .recall/ iliyofanyiwa commit ni mahali ambapo mtu yeyote mwenye idhini ya commit anaweza kuandika maandishi ambayo wakala wako atasoma. Kiasi ambacho wakala husimama ili kuuliza kuhusu kile anachokisoma huwekwa na hali ya idhini (permission mode) ambayo kipindi huanza nayo, na auto mode inakuwa chaguo-msingi la Claude Code kuanzia tarehe 14 Agosti 2026. Amua mara moja kama .recall/ ni ya kibinafsi au ya pamoja: iongeze kwenye .gitignore kwa ajili ya kumbukumbu ya kibinafsi, au ifanyie commit na uikague kama mchango mwingine wowote. Ikiwa wakala anafanya kazi bila kusimamiwa, kuendesha Claude Code kwa usalama kwenye VPS kunashughulikia mipaka mipana zaidi.
Ufichaji (redaction) ni jitihada bora tu. Inalenga mifumo ya kawaida kama vile API keys, tokens, PEM blocks na assignment za .env. Soma .recall/ kabla ya kuifanyia commit.
Nambari ya toleo ni ya kweli kuhusu ukomavu wake. Katika 0.4.0 mnamo Julai 2026, funguo za usanidi (config keys) na mpangilio wa faili bado unaweza kubadilika kati ya matoleo (releases), kwa hivyo soma changelog kabla ya kuboresha usanidi unaoutegemea.
FAQ
Je, Recall hutuma msimbo wangu au nakala za mazungumzo mahali popote?
Hapana. Hooks za kunasa data na kiondoa muhtasari ni hati za Python zinazoendeshwa kwenye mashine yako mwenyewe; plugin haina API key yoyote na haifanyi mawasiliano yoyote ya mtandao. Utoaji wa muhtasari hutumia TF-IDF na TextRank badala ya modeli, kwa hivyo hatua hiyo haigharimu chochote na hufanya kazi hata mashine ikiwa nje ya mtandao. Hasara yake ni kwamba muhtasari huo ni wa dondoo: huchagua sentensi kutoka kwenye log yako badala ya kuandika sentensi mpya.
Kwa nini .recall/context.md yangu haipo au imepitwa na wakati?
auto_save_context ina mipangilio chaguo-msingi ya off, kwa hivyo muhtasari huzalishwa upya tu unapoiendesha /recall:save. Weka "auto_save_context": "on_end" ndani ya recall.config.json ili iandikwe upya kila kikao kinapomalizika. Ikiwa history.md pia haipo, basi hooks hazifanyi kazi kabisa: thibitisha kuwa plugin imepakiwa kwa kutumia /recall:show, kisha thibitisha kuwa python3 -V inajibu kwenye seva hiyo, kwa sababu hooks hizo ni hati za Python.
Recall huhifadhi kiasi gani kwa kila kikao?
Kupakia muhtasari hugharimu takriban 1,200 tokens ikilinganishwa na 30,000 tokens kwa modeli inayolazimika kusoma hazina yako (repository) tena ili kujua ilipoishia. Hizo ni takwimu za kawaida. Pima matumizi yako mwenyewe kwa kutumia wc -c .recall/context.md na amri ya /context ndani ya kikao, ukilinganisha kuanza upya (cold start) na kuanza tena kutoka kwenye muhtasari.
Je, bado ninahitaji faili ya CLAUDE.md?
Ndiyo, na faili hizo mbili hufanya kazi tofauti. CLAUDE.md ni kile unachoandika kwa makusudi: sheria za kudumu na amri za ujenzi (build commands). context.md huzalishwa kutoka kwa kile kilichotokea kweli katika kikao kilichopita, kwa hivyo huhifadhi uhamiaji (migration) ambao haujakamilika ambao usingefikiria kuandika. Hifadhi zote mbili.
Je, VPS moja inaweza kuhifadhi kumbukumbu kwa miradi kadhaa?
Ndiyo. Recall huhifadhi kumbukumbu katika .recall/ ndani ya saraka ya kila mradi, kwa hivyo miradi miwili kwenye seva moja huhifadhi log na muhtasari tofauti. Anzisha Claude Code kutoka kwenye mzizi wa mradi (project root) kila wakati, kwa sababu faili hufuata saraka ya kazi (working directory) na si akaunti ya mtumiaji.