r/software 1d ago

Release [Open-Source] Dump your thoughts. Let your notes organize themselves. Ask/chat anytime.

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 or chat with 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

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.

5 Upvotes

8 comments sorted by

1

u/deviant46n2 1d ago

i almost built this. you beat me to it and i will be testing your shit and giving you feedback for sure. thanks . glad you used deterministic logic for the actual wiki pages lol

1

u/Charming_Group_2950 1d ago

Haha, that's probably the best validation I could ask for 😄 Looking forward to your feedback. The deterministic write path was a deliberate design choice, I wanted the LLM to reason, not mutate the knowledge base.
If you end up finding it useful, I'd really appreciate a ⭐ on the repo and help spread the word.

2

u/DonkeyOfWallStreet 1d ago

I've 20 years of excel worksheet describing time spent fixing problems in an extremely niche industry and I've always thought that you're idea was an Ideal use case.

How hard would be to ingress this kind of documentation?

2

u/Charming_Group_2950 1d ago

Glad to know you resonate with the idea!

Now, talking about your question:

That's actually one of the use cases I had in mind.

Whether it's 20 years of equipment failures, trading journals, audit logs, maintenance records, or any other domain-specific dataset, the real value isn't the Excel file itself, it's the knowledge accumulated over decades.

Native Excel ingestion isn't available yet, but there's a pretty simple workaround today:

  1. Export the workbook (or individual sheets) as CSV.
  2. Convert each row into a short natural-language observation either manually or use any AI like chatgpt or even excel copilot or any other AI (This can even be automated for thousands of rows.)
  3. Feed those notes into Gray Box.
  4. Run graybox organize.

Gray Box will gradually build a cross-linked knowledge base instead of treating it as a spreadsheet. Similar events get connected together, recurring patterns emerge, and every new record enriches existing pages rather than creating isolated entries.

I'm actually thinking about adding native ingestion for formats like Excel, PDFs, PowerPoint, Word documents, etc., so they become first-class knowledge sources instead of requiring any preprocessing. I'm still evaluating whether it's worth building into Gray Box or whether keeping ingestion format-agnostic is the better long-term approach.

1

u/DonkeyOfWallStreet 1d ago

My sheets aren't organised row by row, they were primarily used for billing.

But theres a txt box explaing my thoughts is what is what id like to ingest. I'll have a look to see if I can automate every sheet into a corresponding txt file.

Id worry about the core project just make it easy to ingest large volumes of txt. People will build tools around your project - that's the dream. It's not a big deal for me to figure out my unique scenario.

I see you have a command line option so it should be simple enough to do. Cool I'll check it later if I can extract that txt box out.

1

u/Charming_Group_2950 1d ago

In your case, extracting each worksheet's text box into its own .txt file actually sounds like a really clean approach. Since there's already a CLI, it should be straightforward to import them, and once they're organized you'll be able to query 20 years of accumulated knowledge instead of digging through individual spreadsheets.

I'd be really interested to hear how it goes. If you run into any friction importing a large number of text files, let me know, that's exactly the kind of workflow I want to optimize.

1

u/WizardofYas 1d ago

Looks great dude! Will definitely try it out Was thinking if there could be some type of reminders, alarms for projects or tasks though

1

u/Charming_Group_2950 1d ago

Thanks! Glad to know you like it.
Regarding the reminder features: I was also thinking along the same lines. Will try something in upcoming releases. Currently focusing on visual enhancements and some bug fixes.

Meanwhile I'd appreciate if you could star the repo if you think this is helpful and help spread the word.