ΤΕΥΧΟΣ 008  ·  13 ΟΚΤΩΒΡΙΟΥ 2026 RSS
CodeCity
ΓΝΩΣΗ & ΜΝΗΜΗ № 0008

Basic Memory — η μνήμη του βοηθού σου μένει σε αρχεία, όχι σε ξένο σέρβερ

Το Basic Memory δίνει στον βοηθό σου μόνιμη μνήμη γραμμένη σε απλά αρχεία markdown στον δικό σου δίσκο, με συνδέσμους ανάμεσα στις σημειώσεις. Είναι ταυτόχρονα εργαλείο γραμμής εντολών και MCP server, δουλεύει με Claude Code, Codex CLI και Cursor, και δεν στέλνει τη γνώση σου σε κανέναν server. Το τίμημα: άδεια AGPL και ένα κατέβασμα μοντέλου την πρώτη φορά.

Basic Memory — η μνήμη του βοηθού σου μένει σε αρχεία, όχι σε ξένο σέρβερ

Τι κάνει

Επτά άρθρα σε αυτή τη στήλη σου έδειξαν εργαλεία που διαβάζουν τον κώδικά σου. Αυτό το όγδοο δείχνει κάτι άλλο: πού να γράψεις ό,τι έμαθες, ώστε η επόμενη συνεδρία να μη ξεκινά από το μηδέν.

Το Basic Memory είναι δύο πράγματα σε ένα πακέτο. Είναι ένα πρόγραμμα γραμμής εντολών, που το τρέχεις και γράφεις σημειώσεις. Και είναι ένας MCP server, που τον συνδέεις στον βοηθό σου για να γράφει και να διαβάζει αυτές τις σημειώσεις μόνος του.

Δύο όροι με απλά λόγια, γιατί χωρίς αυτούς το υπόλοιπο άρθρο δεν βγάζει νόημα.

MCP σημαίνει «πρωτόκολλο για τη σύνδεση εργαλείων με έναν βοηθό». Σκέψου μια πρίζα. Ο βοηθός σου έχει μία υποδοχή, και κάθε εργαλείο που ταιριάζει στην υποδοχή μπορεί να του δώσει νέες ικανότητες. Ο MCP server είναι η συσκευή που μπαίνει στην πρίζα.

Το «η μνήμη μένει σε αρχεία markdown» σημαίνει κάτι πολύ συγκεκριμένο. Οι σημειώσεις δεν ζουν μέσα σε κάποια βάση δεδομένων στο διαδίκτυο. Είναι αρχεία κειμένου με κατάληξη .md, σε έναν φάκελο που διαλέγεις εσύ, στον δικό σου δίσκο. Τα ανοίγεις με οποιοδήποτε πρόγραμμα σημειώσεων. Τα βλέπεις με τα μάτια σου. Τα αντιγράφεις με ένα αντίγραφο ασφαλείας. Και αν αύριο σταματήσεις να χρησιμοποιείς το εργαλείο, τα αρχεία μένουν εκεί, δικά σου, διαβασμένα.

Εδώ είναι η διαφορά από μια υπηρεσία που κρατά τη γνώση της σε δικό της server. Σε εκείνη την περίπτωση η γνώση μένει πίσω από έναν λογαριασμό. Την εμπιστεύεσαι σε κάποιον άλλον. Την παίρνεις πίσω μόνο αν σου το επιτρέψει, και μόνο στη μορφή που σου δώσει. Το Basic Memory γυρίζει αυτό το βέλος. Ο φάκελος είναι δικός σου, η μορφή είναι απλό κείμενο, και ο βοηθός είναι απλώς ένας ακόμη αναγνώστης που περνά από εκεί.

Ανάμεσα στις σημειώσεις φτιάχνει συνδέσμους. Γράφεις `[[Σημείωση]]` μέσα σε μια σημείωση, και το εργαλείο καταλαβαίνει ότι η μία δείχνει στην άλλη. Έτσι χτίζεται ένα πλέγμα γνώσης — όχι ένας σωρός από αρχεία, αλλά ένα δίκτυο που μπορείς να περπατήσεις (αποθετήριο).

Για ποιον είναι

Για όποιον έχει κουραστεί να εξηγεί τα ίδια πράγματα στον βοηθό του κάθε φορά που ανοίγει μια νέα συνεδρία.

Είναι χρήσιμο αν δουλεύεις σε ένα project για εβδομάδες και θέλεις ο βοηθός να θυμάται τις αποφάσεις που πήρατε. Είναι χρήσιμο αν κρατάς σημειώσεις από έρευνα και θέλεις να τις συνδέεις μεταξύ τους. Και είναι χρήσιμο αν απλώς δεν θέλεις η γνώση σου να κάθεται σε λογαριασμό κάποιου άλλου.

Δεν είναι εργαλείο για να φτιάξεις κώδικα. Είναι εργαλείο για να θυμάσαι τι έφτιαξες.

Εγκατάσταση

Το πακέτο λέγεται basic-memory, ζει στο PyPI, και η τελευταία σταθερή έκδοση είναι η 0.23.2. Θέλει Python 3.12 ή νεότερη, και η άδειά του είναι AGPL-3.0-or-later — θα εξηγήσω τι σημαίνει αυτό παρακάτω, γιατί έχει σημασία.

Η εγκατάσταση γίνεται με uv, από όποιον φάκελο θέλεις:

uv tool install basic-memory

Μετά επιβεβαιώνεις ότι μπήκε:

basic-memory --version

Τυπώνει «Basic Memory version: 0.23.2». Αυτό το είδαμε σε αυτό το μηχάνημα.

Αν δεν θέλεις να το εγκαταστήσεις καθόλου, μπορείς να το καλέσεις όπως ακριβώς το καλεί ένας client, χωρίς εγκατάσταση:

uvx basic-memory mcp

Χρήση σε κάθε LLM

Το Basic Memory είναι ένας MCP server, οπότε η σύνδεσή του μοιάζει σε όλα τα προγράμματα. Αυτό που αλλάζει είναι πού βάζεις τη ρύθμιση. Η εντολή που δίνεις είναι παντού η ίδια: τρέξε το uvx με το basic-memory mcp.

Πριν από αυτό, ένα βήμα που δεν το παραλείπεις. Δηλώνεις τον φάκελο που θα κρατά τις σημειώσεις:

basic-memory project add notes "<διαδρομή>/notes"

Βάλε στη θέση της διαδρομής τον φάκελο που θέλεις πραγματικά. Το εργαλείο γράφει εκεί τα αρχεία του.

Claude Code

Στο Claude Code η ρύθμιση ζει σε ένα αρχείο JSON με όνομα .mcp.json, μέσα στον φάκελο του project. Το περιεχόμενο είναι το εξής:

{
  "mcpServers": {
    "basic-memory": {
      "command": "uvx",
      "args": ["basic-memory", "mcp"]
    }
  }
}

Μετά ανοίγεις το Claude Code στον φάκελο του project. Θα δει τη ρύθμιση και θα συνδέσει τον server. Από εκεί και πέρα, όταν του ζητήσεις να θυμηθεί κάτι, θα γράψει τη σημείωση στον φάκελό σου.

Codex CLI

Στο Codex CLI η ρύθμιση δεν είναι JSON. Γράφεται σε ένα αρχείο TOML με όνομα config.toml, μέσα στον φάκελο .codex του προφίλ σου:

[mcp_servers.basic-memory]
command = "uvx"
args = ["basic-memory", "mcp"]

Η εντολή μέσα είναι ακριβώς η ίδια. Το Codex τη διαβάζει με δικό του τρόπο, αλλά το αποτέλεσμα δεν αλλάζει.

Cursor

Στο Cursor η ρύθμιση μπαίνει σε ένα αρχείο με όνομα mcp.json, μέσα στον φάκελο .cursor του project:

{
  "mcpServers": {
    "basic-memory": {
      "command": "uvx",
      "args": ["basic-memory", "mcp"]
    }
  }
}

Ίδιο σχήμα με το Claude Code, ίδια εντολή. Ξεκινάς το Cursor και ο server εμφανίζεται συνδεδεμένος.

Μία ειλικρινής σημείωση για τα τρία παραπάνω. Εμείς δοκιμάσαμε τον server τον ίδιο, μέσω stdio, και είδαμε ότι απαντά σωστά. Δεν τρέξαμε και τους τρεις clients από την αρχή ως το τέλος. Οι θέσεις των αρχείων είναι οι καθιερωμένες κάθε προγράμματος. Αν κάτι δεν δουλέψει σε σένα, ξεκίνα από εκεί.

Πού κερδίζει, πού χάνει

Κερδίζει στο πιο ουσιαστικό σημείο. Η μνήμη σου είναι αρχεία που τα βλέπεις. Δεν είναι κουτί που πατάς ένα κουμπί και ελπίζεις. Αν το εργαλείο χαλάσει αύριο, οι σημειώσεις είναι ακόμη εκεί, ανοιγμένες σε οποιοδήποτε πρόγραμμα.

Κερδίζει στη σύνδεση των σημειώσεων. Τα wikilinks τύπου `[[Σημείωση]]` χτίζουν δίκτυο, όχι σωρό. Και κερδίζει στο ότι είναι CLI και MCP server μαζί: μπορείς να γράψεις μια σημείωση με το χέρι από το τερματικό, και ο βοηθός να τη διαβάσει μετά.

Κερδίζει στην υγεία του. Το αποθετήριο στο github.com/basicmachines-co/basic-memory είχε 4.148 αστέρια και 308 forks, με τελευταία ενημέρωση στις 12 Οκτωβρίου 2026 — σήμερα. Είναι ενεργό, όχι αρχειοθετημένο. Στο PyPI έχει 119 εκδόσεις, και περίπου 47.900 λήψεις τον μήνα.

Τώρα τα τέσσερα σημεία που πονάνε, και τα λέω χωρίς περιστροφές.

Πρώτο, η άδεια. Είναι AGPL-3.0, όχι MIT. Στην πράξη: αν ενσωματώσεις αυτόν τον κώδικα σε ένα κλειστό προϊόν που πουλάς, η άδεια σε υποχρεώνει να δώσεις και τον δικό σου κώδικα. Δεν είναι απαγορευτικό. Είναι όμως μια υποχρέωση που πρέπει να ξέρεις πριν το βάλεις σε εμπορική δουλειά. Για προσωπική χρήση δεν σε αγγίζει.

Δεύτερο, η πρώτη εγγραφή θέλει internet. Την πρώτη φορά που γράφεις μια σημείωση, το εργαλείο κατεβάζει ένα μοντέλο embeddings από το Hugging Face — πέντε αρχεία, περίπου 45 δευτερόλεπτα, χωρίς λογαριασμό. Μετά δουλεύει τοπικά. Αν δεν έχεις δίκτυο την πρώτη φορά, δεν ξεκινά.

Τρίτο, μια ατέλεια στην αναζήτηση. Στην απάντησή της, το πεδίο total στο JSON γράφει 0, ενώ τα αποτελέσματα είναι εκεί, στη λίστα. Είναι γνωστό θέμα. Μην το χρησιμοποιήσεις ως μέτρηση, γιατί θα νομίζεις ότι δεν βρήκε τίποτα ενώ βρήκε.

Τέταρτο, δύο αριθμοί έκδοσης στο ίδιο εργαλείο. Το CLI λέει 0.23.2, ο MCP server λέει 4.0.0b1. Μπερδεύει όποιον βλέπει μήνυμα για «νέα έκδοση διαθέσιμη». Δεν είναι δύο προγράμματα. Είναι το ίδιο, με δύο αριθμούς.

Δοκιμή

Έτρεξε στ’ αλήθεια, σε αυτό το μηχάνημα, Windows 11, με uv και Python 3.14.7.

Πρώτα η εγκατάσταση με uv tool install basic-memory. Μετά η επιβεβαίωση, που τύπωσε «Basic Memory version: 0.23.2».

Στήσαμε ένα project δοκιμής με δικό του φάκελο σημειώσεων:

basic-memory project add bmtest "<διαδρομή>/notes"

Και μετά γράψαμε μια σημείωση με το εργαλείο:

basic-memory tool write-note --title "Anna Probe" --folder "notes" --content "Smoke test. Links to [[Anna]]." --tags "smoke-test" --project bmtest

Η απάντηση, αυτούσια:

{"title": "Anna Probe", "permalink": "bmtest/notes/anna-probe", "file_path": "notes/Anna Probe.md", "action": "created"}

Τι σημαίνει αυτό. Η λέξη action είναι created, το file_path δείχνει ένα αρχείο με κατάληξη .md στον δίσκο, και το permalink δίνει στη σημείωση σταθερή διεύθυνση μέσα στο πλέγμα. Πήγαμε και το ανοίξαμε: είναι αρχείο κειμένου, με μια κεφαλίδα στην αρχή που κρατά τον τίτλο και τις ετικέτες. Δηλαδή το νόημα του εργαλείου φάνηκε με τα μάτια μας, δεν το υποθέσαμε.

Μετά δοκιμάσαμε τον MCP server τον ίδιο. Τον ρωτήσαμε σε stdio τι είναι και τι εργαλεία προσφέρει. Απάντησε ότι είναι ο «Basic Memory», έκδοση 4.0.0b1, με πρωτόκολλο 2025-06-18. Και στη λίστα των εργαλείων του μέτρησα εικοσιένα — ανάμεσά τους write_note, read_note, edit_note, move_note, delete_note, search_notes, build_context, recent_activity, list_directory, list_memory_projects, και τρία για σχήματα, τα schema_validate, schema_infer και schema_diff.

Τι δεν τρέξαμε, και το λέω καθαρά. Δεν δοκιμάσαμε τη σύνδεση του server μέσα στους τρεις clients. Δηλώσαμε τον φάκελο, γράψαμε σημείωση, ανοίξαμε το αρχείο, ρωτήσαμε τον server απευθείας. Τη διαδρομή μέσα από το μενού του Claude Code, του Codex και του Cursor δεν την περπατήσαμε ως το τέλος.

Ετυμηγορία

Το Basic Memory δεν σου δίνει νέα δύναμη. Σου δίνει έναν τόπο.

Η ιδέα του είναι τόσο απλή που ξενίζει: η μνήμη του βοηθού σου είναι αρχεία κειμένου, σε φάκελο που διαλέγεις, με κατάληξη .md. Δεν υπάρχει μυστικό. Και ακριβώς γι’ αυτό είναι δυνατό. Ό,τι χτίσεις μαζί του δεν το χάνεις αν αλλάξεις εργαλείο, δεν το χάνεις αν χαλάσει το λογισμικό, δεν το ζητάς πίσω από κανέναν.

Οι ενστάσεις είναι σοβαρές αλλά ξεκάθαρες. Η άδεια AGPL θέλει προσοχή σε εμπορική χρήση. Η πρώτη εγγραφή θέλει δίκτυο μία φορά. Δύο αριθμοί έκδοσης μπερδεύουν. Και μια ατέλεια στην αναζήτηση σε κάνει να μην εμπιστεύεσαι το μέτρημα.

Τίποτα από αυτά δεν αγγίζει τον πυρήνα. Αν θες ο βοηθός σου να θυμάται, και θέλεις η γνώση να μένει δική σου, αυτό είναι το εργαλείο.

Score: 8.6/10.

Πηγές: πακέτο https://pypi.org/project/basic-memory/ · αποθετήριο https://github.com/basicmachines-co/basic-memory · τεκμηρίωση https://docs.basicmemory.com/ · Hugging Face (μοντέλο embeddings) https://huggingface.co/