
Käytän Claude Codea ja Codexia joka päivä. Ajan mittaan niille kertyy paljon tietoa: miten haluan koodin kirjoitettavan, mitä komentoja projekti tarvitsee ja mikä meni viimeksi pieleen. Claude Code kirjoittaa sen muistitiedostoihin. Omat ohjeeni kirjoitan CLAUDE.md- ja AGENTS.md-tiedostoihin.
Mikään tästä ei ole oletuksena Gitissä. Varmuuskopioin omat tiedostoni jo skripteillä, jotka toimivat vain omilla koneillani. Tämä on versio, jonka voin jakaa: github.com/ollijunes/agent-memory-sync.
Ongelma
Helpoin ratkaisu olisi viedä koko ~/.claude ja ~/.codex Git-repoon. Se on väärä ratkaisu. Samoissa kansioissa ovat myös kaikki keskustelut, kehotehistoria, kirjautumistiedostot ja välimuistit. Keskustelut ovat isoja, ja niissä on usein kaikki, mitä sessioon on liitetty, myös avaimia.
Talteen kannattaa ottaa vain vähän: muutama ohjetiedosto, muistikansiot, omat skillit ja komennot sekä asetukset.
Mitä työkalu tekee
agent-memory-sync kopioi sallittujen listalla olevat tiedostot erilliseen Git-repoon, commitoi ja pushaa.
- Mukaan tulevat vain muisti-, ohje- ja asetustiedostot. Keskustelut, tunnukset, tietokannat, välimuistit ja lokit jäävät aina pois, eikä oma asetustiedosto saa niitä takaisin.
- Väliaikaisista kansioista aloitettujen sessioiden kansiot ohitetaan.
- Jokaisella koneella on oma kansionsa, joten sama repo käy usealle koneelle.
- macOS:llä ajon hoitaa launchd ja Linuxilla systemd-ajastin kerran päivässä.
agent-memory-sync plan näyttää jokaisen tiedoston ja säännön, jolla se otettiin mukaan tai jätettiin pois.
Ensin salaisuudet
Muistitiedostot ovat tekstiä. Muistiinpanossa voi hyvin lukea testipalvelimen API-avain, koska niin agentille on kerrottu. Siksi työkalu ei kopioi mitään suoraan Gitiin.
Tiedostot menevät ensin yksityiseen väliaikaiskansioon. Gitleaks ja oma sisäänrakennettu tarkistin lukevat sen. Jos kumpi tahansa löytää jotain, ajo pysähtyy eikä varmuuskopiorepoon kosketa. Tulosteessa on tiedosto, rivi ja sääntö, ei koskaan itse arvoa.
Vääriä hälytyksiä tulee, koska muistitiedostoissa puhutaan avaimista. Ne voi sallia, mutta työkalu ei tee sitä itse.
Mitä olen testannut
Testit ajetaan CI:ssä Linuxilla ja macOS:llä Pythonin versioilla 3.11–3.14. Ne käyttävät keksittyä kotikansiota eivätkä lue oikeita agenttitiedostoja. Yksi testi ajaa oikeaa Gitleaksia esimerkkitiedostoja vastaan.
Ajoin koko ketjun myös käsin keksityllä kotikansiolla: käyttöönotto, kuiva-ajo, varmuuskopio pushin kanssa, toinen ajo ilman muutoksia ja istutettu väärennetty avain, joka pysäytti ajon.
Omaa varmuuskopiotani en ole vielä siirtänyt tälle työkalulle.
Mitä työkalu ei tee
Tarkistus tunnistaa tunnetut avainmuodot ja ilmeiset sijoitukset. Se ei tiedä, että jokin lause on yksityinen. Asiakkaan nimi tai sisäinen palvelinnimi menee läpi. Varmuuskopiorepon on pysyttävä yksityisenä.
Tiedostot ovat Gitissä tavallisena tekstinä, joten Git-palvelu voi lukea ne. Salausta ei ole. Projektien omia CLAUDE.md- ja AGENTS.md-tiedostoja ei kopioida, koska ne kuuluvat projektin omaan repoon. Windowsia ei tueta.
Kokeile
Koodi on osoitteessa github.com/ollijunes/agent-memory-sync. Asenna se uv tool install -komennolla, aja init tyhjällä yksityisellä repolla, katso plan ja aja schedule install. Palautusohje kertoo, miten muisti siirtyy uudelle koneelle.
Issuet ja pull requestit ovat tervetulleita. Älä liitä niihin oikeaa muistitiedostoa, keskustelua tai avainta. Kuvaa ongelma keksityillä tiedostoilla.
