Information grows faster than any brain can follow. Second Brain is a local-first workspace with an agent inside: it triages and critiques what you capture, finds meaningful connections across your library, remembers what you know, and proactively recommends sources you'd actually want.
The reading — and the judgment — stay yours.
Get started · What you get · Why local-first · Chrome extension
The problem isn't too much to read. It's too much that looks worth reading.
Every feed is now full of polished, plausible essays, threads, reports, recaps, and hot takes. You open too many, trust too few, forget most of them, and still end the day unsure what deserved your attention.
Second Brain is a local-first personal knowledge base with an agent inside. It helps you judge what matters, digest what is worth keeping, connect it to what you already know, and turn your reading back into your own work.
Nobody needs one more tool that turns essays into three bullets so you can pretend you read them. Second Brain's AI does two jobs — and reading for you isn't one of them:
- Capture anything in seconds — paste a link or text, drop a PDF or image, or one-click the Chrome extension (logged-in and JS-rendered pages included).
- Filter before you read — every capture gets scored and critiqued, so you can recognize AI slop and shallow takes before they cost you twenty minutes.
- Deepen what matters — when something is worth reading, the original stays front and center with digest, concepts, hidden assumptions, and shaky claims beside it.
- Let the library argue with itself — new captures are checked against the most relevant sources in your library: what they support, repeat, or contradict.
Every verdict is advisory. Every analysis is editable. The reader stays human — that's the point, not a limitation.
The original stays front and center. The verdict, the critique, and a "this contradicts what you read last week" sit beside it.
Beside every worthwhile read: the quotes worth keeping, the concepts worth learning (Knew / Learned), and a critique that keeps you honest.
- Your library is the agent's workspace — plain local files mean the agent reads and organizes the exact same files you see. Hand it content anytime: reorganize the library, or draft a post from what you've been reading lately, straight into your Notebook.
- It learns from your behavior, not just your settings — clicks, reading history, ratings, starred or dismissed highlights, Knew / Learned concepts, and For You actions become local feedback signals. The more you use it, the sharper the agent gets about what is worth your attention.
- Information comes to you — the "For You" feed ranks RSS (and optional search) against your interests and reading history. It breaks the bottleneck of only knowing what you went looking for. Works out of the box, no API key.
- You control what it knows —
USER.mdholds your explicit preferences;MEMORY.mdis the agent's own evolving notes about you, visible and editable right in the app. Modern agent memory, without the black box.
"For You" is not a generic news feed. Tune the radar topics, RSS feeds, and optional web search sources yourself; Second Brain ranks fresh stories against what you've already read, upvoted, and skipped. Start the morning with a briefing that speaks in terms of your library, not headlines.
All you need is Node 20+ and one agent CLI you already use, signed in:
Claude Code (claude) or OpenAI Codex (codex).
Core analysis runs through that local CLI: no separate model API key, no metered bill from Second Brain.
git clone https://github.com/ryannli/secondbrain.git
cd secondbrain
npm install
npm run devOpen http://localhost:3000, confirm your agent shows Connected, and hit Enable Agent Mode. First launch seeds a small example library so you can feel the product before capturing anything.
Want a guided path? See docs/ONBOARDING.md.
The optional Chrome extension captures pages exactly as you see them — including logged-in pages, JS-heavy apps, and tweets. Bookmark a tweet on X and it lands in your library automatically (you can turn that off).
Load it from chrome://extensions → Load unpacked → select the extension/ folder. A welcome page opens, checks the connection, and walks you through the rest.
No extension? Paste links, text, PDFs, and images straight into the dashboard.
Second Brain is built so your reading history does not become someone else's cloud dataset.
- You choose where the data lives — use the default local folder or point
SECONDBRAIN_ROOTat any folder you control. - Your captures remain your evidence — original pages and files are preserved; AI analysis is editable workspace you can regenerate or delete.
- Your interaction history stays local too — UI history, reading signals, feed actions, and agent conversations live in your data folder as part of the feedback loop.
- There is no Second Brain cloud — content is analyzed through your authenticated local agent session, not through a hosted Second Brain backend.
Think of your user data as a folder you can open in Finder:
User Data
├── Library things you captured
│ ├── Saved article
│ └── Research paper
└── Notebook things you or your agent wrote from those sources
├── Weekly brief
└── Draft outline
Each Library item is a small folder of files. Each Notebook item is a small folder of files too. You can inspect them, back them up, sync them, move them, or delete them with normal file tools.
Feed generation
The For You feed has two inputs:
- RSS feeds, enabled by default and editable in Settings → Feed.
- Optional web search, enabled only when you add a Brave Search API key.
Radar topics from Settings tune both feed ranking and web-search queries, so the briefing stays connected to what you already care about.
To enable web search:
cp .env.example .env.local # then paste your key into BRAVE_SEARCH_API_KEY.env.local is git-ignored. Without a key, the feed still runs on RSS and says so clearly.
Agent runtime
Second Brain calls a local agent CLI via subprocess — Claude Code (claude) or OpenAI Codex (codex). Pick your provider in Agent Mode setup or Settings.
- Core analysis runs through your authenticated local agent session, so no separate model API key is required.
- Agent Mode is required: if no provider is connected, you get a setup gate instead of a degraded app.
- Prompt/response debug logs are off by default.
SECONDBRAIN_AGENT_DEBUG_LOGS=1enables them for local debugging only — they can contain source text.
Provider-specific spawn details stay in the provider layer; the rest of the app calls one shared agent interface.
Development
npm test
npm run lint
npm run buildPipeline tracing: SECONDBRAIN_DEBUG=1 npm run dev.
Contributor guide: CONTRIBUTING.md. Agent-facing project context lives in AGENTS.md (CLAUDE.md is a symlink so Claude Code and Codex share one context).



