foam
A personal knowledge management and sharing system for VSCode
Foam is a personal knowledge management system for VS Code that turns plain Markdown files into a linked network of notes with backlinks, a graph view, daily notes, and tag explorer, all stored in files you fully own.
Foam is a personal knowledge management system that lives inside Visual Studio Code. The basic idea is to keep all your notes as plain Markdown files in a folder you own, typically a GitHub repository, and use Foam to turn that pile of files into a connected, browsable network of ideas. It is built for people who want a second brain or Zettelkasten-style note system, while staying in plain files they fully control.
You write each thought as a small Markdown document and link notes to each other using wiki-style double-bracket links such as wikilink or wikilink with alias. Foam adds editor features on top of that, including link autocompletion, automatic link updates when you rename a file, a graph visualization showing how your notes connect, a backlinks panel showing what links into the current note, a tag explorer with hierarchical tags, daily notes, custom note templates, embedding the contents of one note into another, and dedicated panels for orphan notes (no links in or out) and placeholders (links pointing at notes that do not exist yet).
Because everything is just Markdown in a folder, the same notes also render and navigate on GitHub itself, and you can publish them with GitHub Pages if you want a public site. To get started, you create a workspace from the official foam-template GitHub repo, open it in VS Code, and install the recommended extensions. The codebase is TypeScript and ships as a VS Code extension. The README warns the project is still alpha-grade work in progress.
Where it fits
- Build a personal Zettelkasten or second-brain note system in VS Code where ideas link to each other and you can browse a visual graph of connections.
- Keep a developer wiki or project journal as linked Markdown files on GitHub, browsable both in VS Code and directly on github.com.
- Publish a collection of linked notes as a public website using GitHub Pages, with no extra tooling beyond VS Code and Foam.
- Use daily notes and custom templates to build a personal diary or meeting-notes system that links back to topic notes automatically.