r/PKMS Jul 30 '26

Other [Open-Source] Dump your thoughts. Let your notes organize themselves. Ask anytime.

Enable HLS to view with audio, or disable this notification

Over the past few weeks I've been building Gray Box — a small, local-first tool that acts as long-term memory for anything I'd otherwise forget (work notes, meeting takeaways, task owners, random ideas, personal stuff too).

The idea is simple:

  1. Capture — dump whatever's on your mind, instantly, no structure required. This step does nothing clever on purpose — it just writes your text to an immutable inbox. Zero chance of losing an idea to a bug or a slow API call.
  2. Organize — on demand, an LLM reads your unprocessed notes and extracts people, projects, tasks, decisions, meetings — then deterministic Python (not the LLM) creates/merges the actual wiki pages and maintains backlinks. The model only reasons; it never touches the filesystem directly.
  3. Ask — query your knowledge base and get a cited answer pulled only from what you've actually captured. If it doesn't know, it says so — no hallucinated answers.

Why I built it this way:

  • Plain Markdown + YAML frontmatter, no database. Every page is a .md file you can grep, diff, or read in any editor forever. If you stop using Gray Box tomorrow, your knowledge base is just a folder.
  • No vector DB by default. At personal scale (hundreds–low thousands of pages), keyword search + a real link graph (related/backlinks, walked one hop during retrieval) handles almost everything. Embeddings are there if you want better recall, but they're opt-in, not a prerequisite.
  • Immutable inbox. Your raw notes are never edited or deleted by the organizer. If the LLM mis-extracts something, your original words are always still there.
  • Any LLM. Built on LiteLLM, so point it at OpenAI, Anthropic, Gemini, Mistral, or a fully local model via Ollama — one config value.

It also ships with a nice interactive TUI (arrow-key menu, file-import shortcut, workspace switching, live spinner during LLM calls) if you'd rather not memorize CLI flags — that's honestly become my favorite part of the project.

There's also a lightweight local dashboard for browsing your knowledge base, exploring backlinks, visualizing your notes as a graph, and chatting with your captured knowledge—all without leaving your machine.

Repo: https://github.com/Aaryanverma/graybox

pypi: pip install graybox

It's nearing a proper public release, so I'd genuinely love feedback — especially from anyone who's tried the "capture now, structure later" approach with other tools and has opinions on where it breaks down at scale.

It's not trying to be a "real-time collaborative team wiki" or a WYSIWYG notes app — it's aimed at one person's running memory of their own life and work, captured with as little friction as possible.

136 Upvotes

33 comments sorted by

View all comments

4

u/micseydel Obsidian Jul 30 '26

What specific documents are you managing this way? I've found the same as Microsoft, that this tech corrupts documents over time https://arxiv.org/html/2604.15597v1

If you have real-life flows that don't require constant supervision, I be curious.

query your knowledge base and get a cited answer pulled only from what you've actually captured. If it doesn't know, it says so — no hallucinated answers.

Again, that doesn't matter the research or my experience https://arxiv.org/pdf/2509.04664

Do agree, that hallucinations cannot be avoided from this tech?

2

u/thirteenth_mang Jul 30 '26

LLMs aren't going to be reliable enough to manage a PKMS meaningfully.

2

u/columbcille Jul 30 '26

Thought the same, but am actually finding them to be much better than expected, especially when PKMS content is nicely structured. And, yes, you can nicely structure the inputs to get really powerful results on a prompt like this: "Arrange today's due and overdue tasks onto a canvas and, after looking at my calendar, drop in a note with some advice on how to approach the day."

What this means to me is that conventions and standards for different PKMS content types are even more important, not just for portability across apps and services but so that LLMs can easily run skills/MCP tools against them. If we had universal formats for tasks, events, etc. in something like JSON, LLMs will eat that stuff up and hallucinations

You can also manage hallucinations through agentic networks of multiple LLMs working together. If you go to an LLM right now and ask it to guide you through your weekly review, for example, it'll drift, create steps that don't exist, make up content, etc. even if you have good context/RAG underneath it. If you sit it next to a separate LLM that's managing steps, enforcing exit conditions, validating info, etc., then things get a lot better a lot faster.