Install
openclaw skills install @highnoonoffice/second-brain-visualizerUnload your cognitive baggage. Drop ideas anywhere, find the signal later.
openclaw skills install @highnoonoffice/second-brain-visualizerYour brain wasn't designed to hold data. It was designed to produce it.
Pick a channel — Slack, Telegram, WhatsApp, Gmail, a private Discord. Every time something interesting moves through your mind, drop it. A line. A fragment. A joke that might be a product idea. Voice to text at a red light. You don't have to carry it anymore.
Second Brain Visualizer reads what accumulates. Not to categorize it. To find the signal underneath the noise — the questions you keep returning to in different disguises, the tensions you're working out across dozens of unrelated notes, the creative territory you're actively mapping without realizing it.
One note is just a note. Fifty notes across three weeks is a pattern. A year of notes is a portrait of how you think.
The clustering engine reads for intent, not keywords. A note about LLM inference costs and a quote from Simone Weil may belong in the same cluster if they're reaching toward the same underlying question. Clusters surface with a name, a one-sentence insight, and a status: ESTABLISHED, FORMING, or FADING. Tensions show you where you're arguing with yourself. Notable absences show you what your idea stream isn't touching yet.
This is not a note-taking app. Most note-taking tools are mirrors — they show you what you put in. This reads what it means.
Your raw idea stream gets parsed into atoms — the smallest units of intent. Atoms are clustered by affinity of meaning, not keyword overlap. A note about LLM inference costs and a quote from Simone Weil may belong in the same cluster if they're both probing the same underlying question about attention and value.
Each cluster gets:
The visualizer also surfaces:
Step 1 — Raw input becomes atoms
Every drop gets parsed into a structured atom: timestamp, verbatim text, type (thought / task / strategy / creative / idea-jar / etc.), signal heat (hot / warm / cool), and whether it's actionable. The roughness is preserved — voice-to-text errors, fragments, incomplete sentences. That's intentional.
Step 2 — Atoms are read for intent, not words
This is where it diverges from every other note-taking system. The clustering prompt doesn't ask "what words appear frequently?" It asks: what is this person actually working out?
The governing rule: two atoms belong together if they're reaching toward the same underlying question — even if they use completely different language. A note about why Bitcoin rewards people who can wait and a line about what it feels like the half-second before a room full of strangers decides to laugh can belong in the same cluster — if both are reaching toward the same question about what it means to give something your full attention on purpose.
Step 3 — Categories emerge from mass and direction
Constraints the prompt enforces:
Step 4 — Four outputs surface
| Output | What it is |
|---|---|
| Clusters | Named patterns with insight, status (ESTABLISHED / FORMING / FADING), confidence, and time spread in weeks |
| Emerging signals | Atoms with distinct intent but not enough mass yet to cluster |
| Tensions | Places where your idea stream is arguing with itself across notes |
| Absences | Intellectual territory conspicuously missing from your corpus given your overall profile |
The core IP is the prompt instruction: "Do not impose categories onto the data. Let the categories emerge from the mass and direction of the atoms." Everything else is scaffolding around that one rule.
1. Drop ideas anywhere You already have a channel you use. Voice to text, half a sentence, a project name with no context. Raw is fine. The roughness is the point — it's what unguarded thinking looks like.
2. Parser extracts atoms
references/parser.js reads your second brain markdown ledger and extracts structured atoms with timestamp, raw text, type, signal, and optional next action.
3. Clustering engine reads for intent
references/cluster.js passes your full atom corpus to an LLM with a custom intent-based prompt. The prompt reads for what you're actually working out, not what words you used. Outputs clusters, tensions, emerging signals, and absences as structured JSON.
4. Visualizer shows you the map
references/component.tsx renders a D3 force-directed graph where nodes are sized by atom count × time spread. Click any node to expand: the base insight, an LLM-generated deeper read in gold, and the full list of atoms that make up the cluster. Tensions, signals, and absences scroll below.
Full prompt in references/cluster.js.
Each atom in your markdown ledger:
### ts: <unix_timestamp>
- **date:** YYYY-MM-DDTHH:MM:SS UTC
- **raw:** verbatim text (voice to text, misspelled, incomplete — all valid)
- **type:** thought | task | strategy | creative | meta | idea-jar | visual | link
- **tags:** freeform, comma-separated
- **signal:** hot | warm | cool
- **actionable:** yes | no
- **nextAction:** optional single-sentence move
{
"clusters": [
{
"id": "stable-kebab-id",
"name": "Sharp name capturing underlying drive",
"insight": "One sentence: what does this pattern reveal?",
"atom_ids": ["sb-1234", "sb-5678"],
"confidence": 0.87,
"status": "ESTABLISHED",
"time_spread": 4,
"category": "CRAFT"
}
],
"emerging_signals": ["sb-9999"],
"tensions": [
{
"name": "Tension name",
"atom_ids": ["sb-1", "sb-2"],
"description": "What the person is working out"
}
],
"absences": ["Creative territory missing from the stream"]
}
| Cluster | Status | Atoms | Spread |
|---|---|---|---|
| Systems Over Shortcuts | ESTABLISHED | 7 | 2w |
| Language as Load-Bearing Structure | ESTABLISHED | 8 | 3w |
| The Speed Paradox | ESTABLISHED | 8 | 3w |
| Agent Failure as Intelligence | ESTABLISHED | 7 | 4w |
| Friction as Design Oracle | FORMING | 5 | 4w |
| Craft as Moral Position | ESTABLISHED | 7 | 3w |
| The Protagonist Problem | ESTABLISHED | 7 | 4w |
| Deliberate Presence as Counterculture | FORMING | 6 | 2w |
d3 and @types/d3 installedThe original idea to build a second brain capture system came from a conversation with Nate B. Jones. The architecture, clustering engine, and visualizer are original work — but the seed was his.
MIT-0. Copyright (c) 2026 @highnoonoffice. No attribution required.
Built by Joseph Voelbel / High Noon Office. Questions or want to build on this? josephvoelbel.com/contact