The project's README from github.com/evan-steinhilb/md2hd. As one markdown file: README.md.
Markdown, mapped. Point it at a file or a folder of notes and it opens a map in your browser — frontmatter becomes nodes, wikilinks become edges, and the topology you have been holding in your head becomes something you can look at.
npx md2hd notes/ # a folder of markdown
npx md2hd map.md # or a single file
Or install it for keeps: npm i -g md2hd.

You already have the material — organisations, people, threads, intent, all of it written down. The thing you are missing is a picture of how it fits together. md2hd draws that picture from the files you already keep, and keeps drawing it as you edit them: save the markdown, refresh the tab, the map re-reads from disk.
127.0.0.1, maps live in
your browser, and there is no account and no telemetry.type: map block in your own files.employs from the organisation and works at from the person, with a
compass chevron aimed at the node on the other end.
The strip at the foot of the canvas holds the map's three surfaces: the Overview, a tab per type, and — when you click a card — the node itself, its detail beside its connections, split To and From. Hover a row in a type's list and its card lights on the canvas; search filters the whole map; drag to arrange, and positions are saved.

Every node is a frontmatter block; every [[wikilink]] or rel: entry is an
edge. One optional type: map block configures the whole thing.
---
type: map
title: Partnerships
inverse:
works_at: employs
---
---
id: riverside-council
type: org
title: Riverside City Council
weight: lead
rel:
employs: [dana-whitfield]
---
The anchor relationship. Everything routes through [[dana-whitfield]].
Notes that were never written for md2hd usually read fine as-is: a --- line
only opens a node when what follows looks like YAML, and malformed blocks
degrade to prose instead of errors.
Full syntax and guides: md2hd.com · reference · guides
--port N — serve on a specific port (default 4173; falls back to a free one)--no-open — don't open the browserWriting a map by hand is easy; having a coding agent write one that
compiles to the graph you meant is what the bundled skill is for. The
package ships writing-md2hd-maps, which teaches an agent the whole
authoring language — node frontmatter, rel: and wikilink edges, the
type: map block, converting an existing folder of notes into a map — and
how to diagnose one that parses cleanly but draws the wrong thing: missing
nodes, reversed arrows, dashed placeholders, unlabelled grey lines.
npx skills add evan-steinhilb/md2hd
Claude Code users can take it as a plugin — this repo is its own marketplace:
/plugin marketplace add evan-steinhilb/md2hd
/plugin install md2hd@md2hd
or copy skills/writing-md2hd-maps/ into your agent's skills directory — it
is in the npm tarball too, so an installed md2hd carries it at
node_modules/md2hd/skills/. With the skill loaded, "turn these notes into
an md2hd map" produces markdown that opens as the map you asked for.
This repo is self-contained: dist/ (the built visualizer) and the skill are
committed, so a fresh clone can run, test, and publish with nothing else
checked out. The visualizer's source lives in the md2hd app repo;
npm run sync is the maintainer step that rebuilds it from a sibling ../dev
checkout and refreshes dist/ before a release. npm test runs a smoke
check against the packaged server.