Skip to content

A personal notes base on a CPU-only machine#

You keep notes in Markdown — a journal, meeting notes, how-tos you wrote for yourself. You give them a knowledge base of their own on a small machine with no GPU (a mini PC, a home server, a Windows PC under WSL), add notes from your laptop and from your phone, and search them by what they mean, not only by the words you remember.

The base has no drive: it is filled only by what you add to it, and keeps it on its own machine. That is the simplest setup for notes that live on your devices. If your notes already sit in a folder on the machine (an Obsidian vault, a Git checkout), make that folder a drive instead, as in Your company handbook, and the base follows every change.

What you need:

  • A machine of the workspace with no GPU, or whose GPU you keep for other work, with a data location and, free, 5 CPU cores and about 6 GB of memory (Footprint). Below it is mini-01.
  • Your notes as Markdown (.md), text or PDF files, here in a folder journal/ on your laptop.
  • astra signed in on the laptop (Install the CLI), the app on your phone (The app), and the editor role.

1. Serve the two models on the machine's CPUs#

The CPU defaults: BGE-M3 for embeddings (multilingual, 1024 dimensions) and BGE Reranker v2 M3, both 438 MB at Q4_K_M. Each replica reserves 2 CPU cores and uses the machine's idle cores beyond them.

  1. Eos → Models → Library, Category: embedding, open BGE-M3, choose Q4_K_M and press Deploy. Name: bge-m3. Runs on: CPUs only. Clear Scale to zero when idle. Press Deploy.
  2. Category: Rerankers, BGE Reranker v2 M3, Q4_K_M, deployed the same way as bge-reranker.
$ astra eos add bge-m3:567m
$ astra eos deploy bge-m3-567m-q4-k-m --name bge-m3 --cpu --min 1 --max 1
$ astra eos add bge-reranker-v2-m3:568m
$ astra eos deploy bge-reranker-v2-m3-568m-q4-k-m --name bge-reranker --cpu --min 1 --max 1
$ for c in bge-m3:567m bge-reranker-v2-m3:568m; do
    curl -fsS -X POST "$ASTRALYX_API/eos/catalog-models" -H "Authorization: Bearer $ASTRALYX_TOKEN" \
      -H 'content-type: application/json' -d "{\"catalog\": \"$c\"}" > /dev/null
  done
$ curl -fsS -X POST "$ASTRALYX_API/eos/deployments" -H "Authorization: Bearer $ASTRALYX_TOKEN" -H 'content-type: application/json' \
    -d '{"metadata": {"name": "bge-m3"}, "spec": {"model": "bge-m3-567m-q4-k-m", "accelerator": "cpu", "replicas": {"min": 1, "max": 1}}}' > /dev/null
$ curl -fsS -X POST "$ASTRALYX_API/eos/deployments" -H "Authorization: Bearer $ASTRALYX_TOKEN" -H 'content-type: application/json' \
    -d '{"metadata": {"name": "bge-reranker"}, "spec": {"model": "bge-reranker-v2-m3-568m-q4-k-m", "accelerator": "cpu", "replicas": {"min": 1, "max": 1}}}' > /dev/null

On a machine with fewer than 5 free cores, give each deployment 1 core (CPU cores per replica in the deployment's form, cpu_cores in its spec): they still use every idle core.

2. Create a base with no drive#

astra metis create needs a drive; a base filled only by what you add is made in the console or the API.

  1. Metis → Knowledge bases → New knowledge base. Keep Documents.
  2. Name: notes. Leave Drives it reads empty.
  3. Embedding model: bge-m3. Reranker: bge-reranker.
  4. To keep it on this machine, open Advanced and write mini-01 in Only on these machines.
  5. Press Make it.
$ curl -fsS -X POST "$ASTRALYX_API/metis/knowledge-bases" -H "Authorization: Bearer $ASTRALYX_TOKEN" -H 'content-type: application/json' \
    -d '{"metadata": {"name": "notes"},
         "spec": {"sources": [],
                  "embedding": {"deployment": "bge-m3"},
                  "reranker": {"deployment": "bge-reranker"},
                  "placement": {"machines": ["mini-01"]}}}' > /dev/null

The base starts on mini-01 and becomes Ready with nothing in it: 0 documents, 0 chunks. A search answers nothing is indexed until you add something.

3. Add your notes from the laptop#

$ astra metis add notes ./journal
journal/2026-10-01.md: 100% of 2 KB
./journal/2026-10-01.md: added as notes/journal/2026-10-01.md
journal/2026-10-05.md: 100% of 3 KB
./journal/2026-10-05.md: added as notes/journal/2026-10-05.md
indexing: 2 of 2 read

A folder keeps its name and subfolders (notes/journal/…); hidden files and kinds a base does not read are skipped and named. astra waits until the base has read them — a few seconds for notes. A file of the same path is refused (FILE_EXISTS): add it again with --replace after you change it.

$ astra metis files notes
journal/2026-10-01.md  2 KB  indexed
journal/2026-10-05.md  3 KB  indexed
2 files, 5 KB (cited as metis-notes)

4. Add notes from your phone#

  1. In the app, open the base: More, then Metis' Knowledge bases, then notes.
  2. On Documents, under Added to this base, tap Choose files and pick Markdown, text or PDF files. An optional folder goes in into folder.
  3. Each file shows its progress, then indexed with its chunks.

In the app's Assistant, attach a file to a message (Attach → A PDF or a text file). On its chip, tap the bookmark — Keep in a knowledge base — choose notes and tap Keep in notes. The file is added to the base and still goes with your message.

On an answer worth keeping, tap Save to a knowledge base, choose notes, keep This message or choose A summary of the conversation, written by the model (then Write the summary), check the title and tap Save to notes. The note is notes/saved/<date>-<title>.md, with its date and where it came from (Save to a base from a conversation).

Whatever the way, the file goes from your phone to the base's machine, where it is written; it is not kept anywhere on the way.

5. Search your notes#

Metis → Search, tick notes, ask what did I decide about the backup disk? Results cite notes/journal/2026-10-05.md with the headings above the passage and its line.

$ astra metis search notes "what did I decide about the backup disk?" -k 3
$ curl -fsS -X POST "$ASTRALYX_API/metis/knowledge-bases/notes/search" -H "Authorization: Bearer $ASTRALYX_TOKEN" \
    -H 'content-type: application/json' -d '{"query": "what did I decide about the backup disk?", "top_k": 3}'

Each result's citation has source metis-notes (the base's own drive) and document notes/<path>. Searching by meaning finds a note that says the external drive when you asked about the backup disk; searching by words finds an exact name or number. A search uses both (How search works).

Footprint and cost#

What Default Notes
BGE-M3 2 CPU cores reserved, 438 MB of weights Uses idle cores beyond its 2
BGE Reranker v2 M3 2 CPU cores reserved, 438 MB of weights Optional: without it, results come in the fused order
The base 1 CPU core, 2 GiB of memory About 5 KB of memory per chunk; a year of daily notes is far below what 2 GiB holds
Your notes On the base's drive metis-notes, on mini-01's data location Deleted with the base

Everything runs on the CPUs: no GPU is needed for indexing or searching. Indexing many files at once is the slowest part on a small machine; adding a few notes is quick. The cores and memory are metered like any work of the workspace; Metis adds no price of its own.

Your notes live with the base

Notes you add are kept on the base's own drive, not on a drive of yours. Deleting the base deletes them. Keep your originals on your laptop, or make a folder of the machine a drive and let the base read it (Delete a knowledge base).

Clean up#

astra metis delete notes (or Delete on its page) deletes the base, its index and every note added to it. Delete the two deployments if nothing else uses them.