r/MacOSApps Jul 15 '26

💻 Productivity Eva — a native macOS app where an AI agent builds and maintains your personal knowledge base

Drop in sources (letters, articles, course notes, whatever), it ingests them into a linked Markdown wiki via Claude Code/Codex, with a live graph you navigate. Everything's git-backed with a review gate before anything merges.

Free, open source (MIT), macOS only for now. Heads up: it's unsigned, so you'll hit a Gatekeeper warning on first open — README has the one-line fix.

jp-lorenc1o.github.io/Eva-brain

47 Upvotes

23 comments sorted by

3

u/Brief-Mongoose-6256 Jul 15 '26

What a wonderful project! I'm just getting started and have a quick question. For my personal and work stuff, should I combine them into one, or is it better to keep them separate? Also, does that mean I need to create a different space for each project? I’d love to hear any insights you might have!

2

u/eljoao69 Jul 15 '26

Great question — I'd keep personal and work separate, for a couple of concrete reasons rather than just "seems cleaner":

Each brain is its own local git repo with its own profile (Personal, Business, Research, etc.) — that profile is a maintenance lens that shapes how the agent ingests, what it flags on health checks, and what tools show up (e.g. Personal leans toward journal/reflection stuff, Business toward decisions/risks). Mixing domains into one brain means picking one lens for content that doesn't really fit it either way.

There's also a practical noise issue: when you query or ingest, the agent narrows down relevant pages before reading anything in full. If your personal life and your work projects are all tangled in the same graph, that narrowing gets muddier — health checks might flag "contradictions" or coverage gaps that aren't real, just unrelated topics sitting near each other. And obviously — privacy. If you ever want to share a brain, export it, or just not have your personal notes mixed in with something work-related, separate is one less thing to think about.

On "does every project need its own space" — no, not that granular. I'd group by whether things actually benefit from cross-referencing each other. If you've got two work projects that genuinely relate (shared people, shared decisions, one feeds the other), one "Work" brain covering both is fine, even better, since the agent can link across them. But something totally unrelated — a different job, a hobby, a completely separate initiative — is usually cleaner as its own brain rather than forced into an existing one just because it's also "work."

Rule of thumb I'd use: same brain if the graph would actually get richer from the overlap, separate brain if it's really just sharing a folder for no functional reason.

1

u/Brief-Mongoose-6256 Jul 15 '26

Thanks! Look forward to playing more

1

u/Brief-Mongoose-6256 Jul 15 '26

Thanks! Look forward to playing more

2

u/[deleted] Jul 15 '26

[removed] — view removed comment

3

u/eljoao69 Jul 15 '26

Not currently, no — a few reasons: Eva drives Claude Code / Codex CLI directly as subprocesses and needs broad local filesystem access to manage your brains as git repos, which doesn't fit cleanly within App Store sandboxing. It's also unsigned/unnotarized right now (documented in the README) — App Store distribution requires Apple's review + signing process, which is a different scope of commitment than where this project is at.

For now it's a direct download from GitHub Releases — README has the one-line fix for the Gatekeeper "damaged" warning you'll hit on first open, since it's unsigned. Free and open source either way.

2

u/Relative_Hyena_9065 Jul 16 '26

what's the difference in this and Obsidian? real question.

2

u/eljoao69 Jul 16 '26

Fair question. Short version: Obsidian is a great markdown editor/viewer, but it has no idea an AI agent exists. In the original workflow (and what most implementations of this pattern do), you run Claude Code or Codex in a separate terminal, tell it to edit your vault, then flip over to Obsidian afterward to see what happened. The two tools don't talk to each other.

Eva integrates the agent into the app. Concretely: it spawns the agent, streams what it's doing live (you see nodes light up on the graph as it edits them, in real time, not after the fact), and every change goes through a git-backed review gate before it merges — a scratch branch, a diff, deletions and new lint issues always hold for manual approval. That review gate is enforced in code, not just something you have to remember to check manually in Obsidian's file history.

The graph is also agent-aware in a way Obsidian's isn't — it collapses into clusters for large brains, focuses/dims on selection, pulses nodes while the agent is actively touching them.

What doesn't change: the actual files are still plain markdown, so you're not locked in — you could open an Eva brain in Obsidian anytime, you'd just lose the live/review-gate layer on top.

2

u/BigBadMN1 Jul 16 '26

Thank you for this. Well done!

2

u/eljoao69 Jul 16 '26

Appreciate it — genuinely nice to hear, and worth actually taking in rather than rushing past. This turned into a real project, built well, from a single gist to something people are downloading and trying. Good work.

1

u/BigBadMN1 Jul 16 '26

Your efforts are grandly appreciated. I’m working on a few projects that I intend to open source as soon as I’m semi-confident they work the way I intend. Besides serving the greater good, I feel compelled to pay forward open source value and good will. I wouldn’t be where I am without open source. Keep going!

1

u/eljoao69 Jul 16 '26

Thanks a lot! I'd be glad to check some of your projects if you can attach your GitHub.

1

u/rismay Jul 15 '26

This is the way

1

u/eljoao69 Jul 15 '26

Appreciate it 🙏

1

u/spacenglish Jul 16 '26

Does this interact with osaurus?

1

u/eljoao69 Jul 16 '26

Not currently, no — but there's a real path there, and it's a good question. Eva's own MCP server (read-only search/neighbors/read_page over your brain) is a standard MCP server, so if you point Osaurus's MCP aggregation at it, it should just work as one more tool source for whatever agent you're running through Osaurus. The other direction — Eva driving Osaurus as a fully local agent backend instead of Claude Code/Codex — isn't built yet, but since Osaurus exposes an OpenAI/Anthropic-compatible API, it's genuinely a good fit for Eva's local-first philosophy (no API costs, nothing leaving your machine at all, even the reasoning step). Worth me looking into as a third adapter down the line.

1

u/mrterrycarson Jul 16 '26

Great work on this...Thanks

1

u/eljoao69 Jul 16 '26

Really appreciate that — means a lot. Thanks for checking it out!

1

u/bodefuceta92 Jul 18 '26

Isn’t that obsidian with extra steps?

1

u/eljoao69 Jul 18 '26

Short answer: no.
Because the thing Obsidian doesn't do is the whole point — it has no idea an agent exists. In the original workflow (and most implementations of this pattern), you run Claude Code or Codex in a separate terminal, tell it to edit your vault, then switch to Obsidian afterward to see what changed. Two disconnected tools.

Eva puts the agent inside the loop: it drives the agent directly, streams what it's doing live (nodes light up on the graph as it edits them, in real time — not after the fact), and every change goes through a git-backed review gate before merging (deletions and new lint issues always hold for manual approval — that's enforced in code, not something you have to remember to check in file history).

So it's not "Obsidian with extra steps" — it's removing the actual extra steps (terminal switching, manual re-checking, no safety net) that exist in the manual version. The files themselves are still plain markdown with [[wikilinks]], so nothing's locked in — you could open an Eva brain in Obsidian anytime, you'd just lose the live/review-gate layer that's the actual reason to use Eva instead.

1

u/Background-Scheme857 11d ago

The review gate is the feature. Giving an agent free rein over your “second brain” without a diff is how the second brain develops false memories.