I put my second brain in a Git repo and wired it to Claude
Update, Aug 2026: some of this changed — see The file that makes it work isn’t CLAUDE.md anymore.
I’ll be honest: I’ve tried a lot of note-taking systems and abandoned most of them.
Notion, Obsidian, plain text files scattered across drives, a brief and embarrassing period with physical index cards. Each one works great for about two weeks, then I stop using it consistently, then I feel guilty about the notes I’m not taking, and eventually I just start over somewhere else.
So when I say “I built a second brain in a Git repo,” I’m not claiming I’ve solved the productivity problem. I’m saying I found something I’ve actually stuck with — and the main reason I stuck with it is a bit unexpected.
The problem I was actually trying to solve
It wasn’t really about notes. It was about Claude.
Every time I started a new session, I’d spend the first ten minutes re-explaining my situation. Here’s the project I’m on. Here’s where I am in my job search. Here’s the decision I made last week. Claude is great, but it starts every conversation cold — it doesn’t remember anything between sessions.
At some point I started thinking: what if instead of briefing Claude every time, I just kept that context somewhere it could read?
I didn’t invent this idea
The concept of atomic notes — one idea per file, linked by meaning — comes from How to Take Smart Notes by Sönke Ahrens. That book changed how I thought about notes. Before it, I was just dumping things into folders and never finding them again.
I used Obsidian for a while after that. It’s genuinely good. But it was built for me to read, not for Claude to act on.
Why Git + Markdown specifically
Claude reasons over plain text really well. And Git is already how I manage everything else as a developer — I’m in it every day, I understand it, I trust it.
So I just… made a repo. The structure ended up looking roughly like this:
/
├── ideas/ # raw captures, half-baked thoughts
├── skills/ # reference material, how-tos
├── journal/ # daily notes, weekly reviews
├── projects/ # one folder per project
├── resources/ # articles, links worth keeping
└── books/ # reading notesNothing clever here. Every file is Markdown. Every change is a commit. Claude can read any of it, search across it, and write new notes to it — all in the same conversation, without me pasting context manually.
The file that makes it work
There’s a CLAUDE.md at the root that acts as an index — it tells Claude what exists and how to navigate it. Something like:
# Second Brain — Claude Instructions
## Structure
- /ideas — raw captures. Low friction.
- /skills — structured reference material.
- /journal — daily notes, reflections.
- /projects — one folder per project: goals, decisions, open questions.
- /resources — articles and links worth keeping.
- /books — reading notes and key insights.
## How to help
- Adding a note: right folder, kebab-case filename.
- Finding notes: search by keyword across folders.
- Linking: add a Related: line when notes connect.
- Commit after creating or editing notes.When I open a session now, Claude reads this first. It knows the layout. I don’t have to brief it anymore — that’s the whole point.
Going further: MCP servers
This is where it gets a bit more involved, and also where it gets genuinely useful.
MCP (Model Context Protocol) lets Claude connect to external tools during a conversation. I have it wired up to Git, Jira, and LinkedIn. So Claude doesn’t just read context from the repo — it can act on it:
- Create a Jira ticket for something I’m tracking
- Commit a new note directly to the repo
- Search LinkedIn for job listings matching my criteria
The repo is the brain. MCP servers are the hands. It’s not magic, but it cuts out a lot of copy-pasting between windows.
What I actually use it for
Here’s the honest version: it’s mostly small things.
In the last week I had sessions about planning a trip to a city I’d never visited, a shell command I kept forgetting, whether a laptop was worth repairing, import taxes on something I was buying, and whether my cover letter was too formal. Mixed in between those: job search, a work incident, a code review.
The big stuff is there. But the small stuff is most of it.
Keeping notes. Ideas, book highlights, things I learn. The difference is Claude can connect things across folders I wouldn’t think to check — I asked about something in /resources/ once and it pulled a related note from /books/ I’d completely forgotten about.
Custom skills. This one surprised me. I keep reusable prompt workflows — I call them skills — in the repo. Some are global, some live inside a specific project folder. A skill for planning a trip itinerary. One for doing a structured interview before writing a post. One for reviewing a pull request in a specific style. Claude picks them up automatically from the folder. I don’t have to re-explain how I want things done.
Job search. I keep resume variants in a project folder, each tuned for a different type of role. Claude knows my constraints, can search LinkedIn, and tracks where I’ve applied in a Markdown file. No spreadsheet.
Work context. Goals, decisions, open questions — one folder per active project. Before we dig into something, Claude reads that folder. It saves a lot of “wait, what did we decide about X?” back-and-forth.
The trip planning example sticks with me: I started a /projects/trip-valoria-2025/ folder after a single session asking about a place I wanted to visit. Over a few days it grew into day-by-day plans, transport notes, restaurant shortlists. I didn’t plan that — it just accumulated. That’s the part that actually feels like a second brain.
Is it perfect?
No. I still forget to write notes sometimes. The system only works if you actually use it. And setting up MCP properly has a learning curve — it’s not plug-and-play yet.
But it’s the first note system I’ve used consistently for more than a few months. Probably because the main beneficiary isn’t some future version of me who’ll read through everything — it’s the Claude session I’m opening right now.
That framing changed how I approach it. Writing a note isn’t archiving. It’s giving context to the next conversation.
If you’re already keeping notes somewhere and want Claude to actually participate in your thinking — not just answer questions but know your context — the move is simpler than it sounds.
Flatten it to Markdown. Put it in Git. Write a CLAUDE.md.
That’s basically it.