Exploratory note-taking LLM-driven addition to the homelab
Find a file
2026-08-05 23:59:33 +02:00
.gitignore Initial commit. 2026-08-05 08:44:25 +02:00
LICENSE.md Initial commit. 2026-08-05 08:44:25 +02:00
README.md README: map topology adjusted. 2026-08-05 23:59:33 +02:00

homelab-notes — LLM-Assisted PARA Note System

A terminal-based, LLM-assisted personal note-taking system built on the PARA method (Projects, Areas, Resources, Archives). Part of the mymh.dev homelab — see homelab-docs for full project context. Full project context, decisions, and runbooks live in homelab-docs; this repo's own docs cover only how to use its tooling.


What this is

A note-taking system where an LLM acts as both a search assistant and a note-writer, layered on top of a plain markdown note collection organized by PARA:

  • Projects — active, time-bound efforts with a defined end.
  • Areas — ongoing responsibilities with no end date.
  • Resources — reference material and topics of interest.
  • Archives — inactive items from the other three categories.

The LLM needs to actually understand PARA well enough to decide where a new note belongs — that's the point of using an LLM here rather than a plain search tool.


Architecture (initial design — subject to change as this gets built)

  • Runtime: llama.cpp, running a small local model — candidate: Mistral 3B (Q4 quantization). If response time holds up, upgrading to an 8B variant is on the table; starting small to keep CPU usage on EliteDesk #1 reasonable.
  • Context window: kept around 816k tokens initially, for the same CPU-usage reason. No embeddings, no vector database, at least for now — deliberately starting simple.
  • Search: ripgrep (or another reasonable Linux console tool) over both filenames and markdown content. Filenames must be descriptive — the same discipline as naming things clearly in code — so a search can often succeed on filenames alone.
  • Storage: plain markdown files, version-controlled in the same self-hosted Forgejo instance that already serves as this project's GitOps source of truth.
  • Interface: terminal only. No web UI, no GUI.
  • Host: EliteDesk #1.

The LLM's scope

The LLM gets read and write access to the notes catalogue only — never the backups, never any other system on the machine. It runs under its own dedicated, restricted system account with no privilege-escalation path — the same identity-scoping discipline already used elsewhere in this project (see zfsrepl in ADR-008): a narrow, single-purpose account, not a personal login, not broad access "just in case."


⚠️ Hard rule: no sensitive data in notes, ever

The LLM has full read access to every note in this catalogue. That means no credentials, keys, tokens, or other sensitive data may ever be written into a note in plain text — anything sensitive gets referenced by pointer (where it actually lives), never pasted in. This repo needs to be treated with the same discipline as the project's public repos in that respect, even though it isn't one: assume anything written here could end up read back out by the model, and design accordingly. This needs active, ongoing monitoring, not a one-time check.


Status

Early design stage — this README describes the intended shape, not a working system yet. Open questions include: exact model choice (3B vs. 8B), the dedicated system account's exact permission set, and folder/filename conventions within the PARA structure. A proper ADR in homelab-docs should follow once the access-control design is actually finalized — see I-009.


Repository structure

homelab-notes/
├─ .gitignore
├─ LICENSE.md
└─ README.md               # This file

(Grows as the system is actually built — note storage, scripts, and any config land here as they're written.)

Rules for this repo

  • No file — tracked or untracked — ever contains a real IP, MAC address, hostname, or credential. Environment-specific values are runtime parameters (env vars/CLI args), never persisted to disk in the repo.
  • No notes ever contain sensitive data in plain text — see the hard rule above.
  • Model weight files are never committed — fetched/documented as a setup step, not stored in git.

Documentation

  • Decisions: ADRs in homelab-docs
  • Operational procedures: runbooks in homelab-docs
  • Progress: roadmap/journal in homelab-docs

License

Licensed under the MIT License — free to use, share, and adapt with attribution (keep the copyright notice).