An open API service indexing awesome lists of open source software.

https://github.com/foambubble/foam

A personal knowledge management and sharing system for VSCode
https://github.com/foambubble/foam

graph-visualisation markdown markdown-editor note-taking notes-app personal-knowledge-base pkm vscode zettelkasten

Last synced: about 1 year ago
JSON representation

A personal knowledge management and sharing system for VSCode

Awesome Lists containing this project

README

          

# Foam

๐Ÿ‘€*This is an early stage project under rapid development. For updates join the [Foam community Discord](https://foambubble.github.io/join-discord/g)! ๐Ÿ’ฌ*

[![All Contributors](https://img.shields.io/badge/all_contributors-125-orange.svg?style=flat-square)](#contributors-)

[![Visual Studio Marketplace Installs](https://img.shields.io/visual-studio-marketplace/i/foam.foam-vscode?label=VS%20Code%20Installs)](https://marketplace.visualstudio.com/items?itemName=foam.foam-vscode)
[![Discord Chat](https://img.shields.io/discord/729975036148056075?color=748AD9&label=discord%20chat&style=flat-square)](https://foambubble.github.io/join-discord/g)

**Foam** is a personal knowledge management and sharing system inspired by [Roam Research](https://roamresearch.com/), built on [Visual Studio Code](https://code.visualstudio.com/) and [GitHub](https://github.com/).

You can use **Foam** for organising your research, keeping re-discoverable notes, writing long-form content and, optionally, publishing it to the web.

**Foam** is free, open source, and extremely extensible to suit your personal workflow. You own the information you create with Foam, and you're free to share it, and collaborate on it with anyone you want.

## Features

### Graph Visualization

See how your notes are connected via a [graph](https://foambubble.github.io/foam/user/features/graph-visualization) with the `Foam: Show Graph` command.

![Graph Visualization](./assets/screenshots/feature-show-graph.gif)

### Link Autocompletion

Foam helps you create the connections between your notes, and your placeholders as well.

![Link Autocompletion](./assets/screenshots/feature-link-autocompletion.gif)

### Sync links on file rename

Foam updates the links to renamed files, so your notes stay consistent.

![Sync links on file rename](./assets/screenshots/feature-link-sync.gif)

### Unique identifiers across directories

Foam supports files with the same name in multiple directories.
It will use the minimum identifier required, and even report and help you fix existing ambiguous wikilinks.

![Unique identifier autocompletion](./assets/screenshots/feature-unique-wikilink-completion.gif)

![Wikilink diagnostic](./assets/screenshots/feature-wikilink-diagnostics.gif)

### Link Preview and Navigation

![Link Preview and Navigation](./assets/screenshots/feature-navigation.gif)

### Go to definition, Peek References

See where a note is being referenced in your knowledge base.

![Go to Definition, Peek References](./assets/screenshots/feature-definition-references.gif)

### Navigation in Preview

Navigate your rendered notes in the VS Code preview panel.

![Navigation in Preview](./assets/screenshots/feature-preview-navigation.gif)

### Note embed

Embed the content from other notes.

![Note Embed](./assets/screenshots/feature-note-embed.gif)

### Support for sections

Foam supports autocompletion, navigation, embedding and diagnostics for note sections.
Just use the standard wiki syntax of `[[resource#Section Title]]`.

### Link Alias

Foam supports link aliasing, so you can have a `[[wikilink]]`, or a `[[wikilink|alias]]`.

### Templates

Use [custom templates](https://foambubble.github.io/foam/user/features/note-templates) to have avoid repetitve work on your notes.

![Templates](./assets/screenshots/feature-templates.gif)

### Backlinks Panel

Quickly check which notes are referencing the currently active note.
See for each occurrence the context in which it lives, as well as a preview of the note.

![Backlinks Panel](./assets/screenshots/feature-backlinks-panel.gif)

### Tag Explorer Panel

Tag your notes and navigate them with the [Tag Explorer](https://foambubble.github.io/foam/user/features/tags).
Foam also supports hierarchical tags.

![Tag Explorer Panel](./assets/screenshots/feature-tags-panel.gif)

### Orphans and Placeholder Panels

Orphans are notes that have no inbound nor outbound links.
Placeholders are dangling links, or notes without content.
Keep them under control, and your knowledge base in a better state, by using this panel.

![Orphans and Placeholder Panels](./assets/screenshots/feature-placeholder-orphan-panel.gif)

### Syntax highlight

Foam highlights wikilinks and placeholder differently, to help you visualize your knowledge base.

![Syntax Highlight](./assets/screenshots/feature-syntax-highlight.png)

### Daily note

Create a journal with [daily notes](https://foambubble.github.io/foam/user/features/daily-notes).

![Daily Note](./assets/screenshots/feature-daily-note.gif)

### Generate references for your wikilinks

Create markdown [references](https://foambubble.github.io/foam/user/features/link-reference-definitions) for `[[wikilinks]]`, to use your notes in a non-Foam workspace.
With references you can also make your notes navigable both in GitHub UI as well as GitHub Pages.

![Generate references](./assets/screenshots/feature-definitions-generation.gif)

### Commands

- Explore your knowledge base with the `Foam: Open Random Note` command
- Access your daily note with the `Foam: Open Daily Note` command
- Create a new note with the `Foam: Create New Note` command
- This becomes very powerful when combined with [note templates](https://foambubble.github.io/foam/user/features/note-templates) and the `Foam: Create New Note from Template` command
- See your workspace as a connected graph with the `Foam: Show Graph` command

## Recipes

People use Foam in different ways for different use cases, check out the [recipes](https://foambubble.github.io/foam/user/recipes/recipes) page for inspiration!

## Getting started

Whether you want to build a [Second Brain](https://www.buildingasecondbrain.com/) or a [Zettelkasten](https://zettelkasten.de/posts/overview/), write a book, or just get better at long-term learning, **Foam** can help you organise your thoughts if you follow these simple rules:

1. Create a single **Foam** workspace for all your knowledge and research following the [[Getting started]] guide.
2. Write your thoughts in markdown documents (I like to call them **Bubbles**, but that might be more than a little twee). These documents should be atomic: Put things that belong together into a single document, and limit its content to that single topic. ([source](https://zettelkasten.de/posts/overview/#principles))
3. Use Foam's shortcuts and autocompletions to link your thoughts together with `[[wikilinks]]`, and navigate between them to explore your knowledge graph.
4. Get an overview of your **Foam** workspace using the [[Graph Visualisation]], and discover relationships between your thoughts with the use of [[Backlinking]].

You can also use our Foam template:

1. Log in on your GitHub account.
2. [Create a GitHub repository from foam-template](https://github.com/foambubble/foam-template/generate). If you want to keep your thoughts to yourself, remember to set the repository private.
3. Clone the repository and open it in VS Code.
4. When prompted to install recommended extensions, click **Install all** (or **Show Recommendations** if you want to review and install them one by one).

This will also install `Foam`, but if you already have it installed, that's ok, just make sure you're up to date on the latest version.

## Requirements

High tolerance for alpha-grade software.
Foam is still a Work in Progress.
Rest assured it will never lock you in, nor compromise your files, but sometimes some features might break ;)

## Known Issues

See the [issues](https://github.com/foambubble/foam/issues/) on our GitHub repo ;)

## Release Notes

See the [CHANGELOG](./packages/foam-vscode/CHANGELOG.md).

## Learn more

**Head over to the ๐Ÿ‘‰[Published version of this Foam workspace](https://foambubble.github.io/foam#whats-in-a-foam)** to see Foam in action and read the rest of the documentation!

Quick links to next documentation sections

- [What's in a Foam?](https://foambubble.github.io/foam#whats-in-a-foam)
- [Getting started](https://foambubble.github.io/foam#getting-started)
- [Features](https://foambubble.github.io/foam#features)
- [Call To Adventure](https://foambubble.github.io/foam#call-to-adventure)
- [Thanks and attribution](https://foambubble.github.io/foam#thanks-and-attribution)

You can also browse the [docs folder](https://github.com/foambubble/foam/tree/main/docs).

## License

Foam is licensed under the [MIT license](LICENSE).

[//begin]: # 'Autogenerated link references for markdown compatibility'
[Backlinking]: docs/user/features/backlinking.md 'Backlinking'
[//end]: # 'Autogenerated link references'

## Contribution Guide

See the [Contribution Guide](https://foambubble.github.io/foam/dev/contribution-guide)

## Code of conduct

See the [Code of Conduct](https://foambubble.github.io/foam/dev/code-of-conduct)

## Contributors โœจ

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Jani Evรคkallio
Jani Evรคkallio

๐Ÿ’ป ๐Ÿ“–
Joe Previte
Joe Previte

๐Ÿ’ป ๐Ÿ“–
Riccardo
Riccardo

๐Ÿ’ป ๐Ÿ“–
Janne Ojanaho
Janne Ojanaho

๐Ÿ’ป ๐Ÿ“–
Paul Shen
Paul Shen

๐Ÿ“–
coffenbacher
coffenbacher

๐Ÿ“–
Mathieu Dutour
Mathieu Dutour

๐Ÿ“–


Michael Hansen
Michael Hansen

๐Ÿ“–
David Nadlinger
David Nadlinger

๐Ÿ“–
Fernando
Fernando

๐Ÿ“–
Juan Gonzalez
Juan Gonzalez

๐Ÿ“–
Louie Christie
Louie Christie

๐Ÿ“–
Sandro
Sandro

๐Ÿ“–
Simon Knott
Simon Knott

๐Ÿ“–


Steven
Steven

๐Ÿ“–
Tim
Tim

๐Ÿ“–
Saurav Khdoolia
Saurav Khdoolia

๐Ÿ“–
Ankit Tiwari
Ankit Tiwari

๐Ÿ“– โš ๏ธ ๐Ÿ’ป
Ayush Baweja
Ayush Baweja

๐Ÿ“–
TaiChi-IO
TaiChi-IO

๐Ÿ“–
Juan F Gonzalez
Juan F Gonzalez

๐Ÿ“–


Sanket Dasgupta
Sanket Dasgupta

๐Ÿ“– ๐Ÿ’ป
Nicholas Stafie
Nicholas Stafie

๐Ÿ“–
Francis Hamel
Francis Hamel

๐Ÿ’ป
digiguru
digiguru

๐Ÿ’ป ๐Ÿ“–
CHIRAG SINGHAL
CHIRAG SINGHAL

๐Ÿ’ป
Jonathan Carter
Jonathan Carter

๐Ÿ“–
Julian Elve
Julian Elve

๐Ÿ“–


Thomas Koppelaar
Thomas Koppelaar

๐Ÿ’ฌ ๐Ÿ’ป ๐Ÿ““
Akshay
Akshay

๐Ÿ’ป
John Lindquist
John Lindquist

๐Ÿ“–
Ashwin Ramaswami
Ashwin Ramaswami

๐Ÿ“–
Claudio Canales
Claudio Canales

๐Ÿ“–
vitaly-pevgonen
vitaly-pevgonen

๐Ÿ“–
Dmitry Shemetov
Dmitry Shemetov

๐Ÿ“–


hooncp
hooncp

๐Ÿ“–
Martin Laws
Martin Laws

๐Ÿ“–
Sean K Smith
Sean K Smith

๐Ÿ’ป
Kevin Neely
Kevin Neely

๐Ÿ“–
Arief Rahmansyah
Arief Rahmansyah

๐Ÿ“–
Vishesh Handa
Vishesh Handa

๐Ÿ“–
Hitesh Kumar
Hitesh Kumar

๐Ÿ“–


Spencer Woo
Spencer Woo

๐Ÿ“–
ingalless
ingalless

๐Ÿ’ป ๐Ÿ“–
Josรฉ Duarte
Josรฉ Duarte

๐Ÿ’ป ๐Ÿ“–
Yenly
Yenly

๐Ÿ“–
hikerpig
hikerpig

๐Ÿ’ป
Sigfried Gold
Sigfried Gold

๐Ÿ“–
Tristan Sokol
Tristan Sokol

๐Ÿ’ป


Danil Rodin
Danil Rodin

๐Ÿ“–
Scott Williams
Scott Williams

๐Ÿ“–
jackiexiao
jackiexiao

๐Ÿ“–
John B Nelson
John B Nelson

๐Ÿ“–
Asif Mehedi
Asif Mehedi

๐Ÿ“–
Tan Li
Tan Li

๐Ÿ’ป
Shauna Gordon
Shauna Gordon

๐Ÿ“–


Mike Cluck
Mike Cluck

๐Ÿ’ป
Brandon Pugh
Brandon Pugh

๐Ÿ’ป
Max Davitt
Max Davitt

๐Ÿ“–
Brian Anglin
Brian Anglin

๐Ÿ“–
elswork
elswork

๐Ÿ“–
lรฉon h
lรฉon h

๐Ÿ’ป
Nikhil Nygaard
Nikhil Nygaard

๐Ÿ“–


Mark Dixon
Mark Dixon

๐Ÿ’ป
Joel James
Joel James

๐Ÿ’ป
Hashiguchi Ryo
Hashiguchi Ryo

๐Ÿ“–
Michael Overmeyer
Michael Overmeyer

๐Ÿ’ป
Derrick Qin
Derrick Qin

๐Ÿ“–
Omar Lรณpez
Omar Lรณpez

๐Ÿ“–
Robin King
Robin King

๐Ÿ’ป


Dheepak
Dheepak

๐Ÿ“–
Daniel VG
Daniel VG

๐Ÿ“–
Barabas
Barabas

๐Ÿ’ป
Engincan VESKE
Engincan VESKE

๐Ÿ“–
Paul de Raaij
Paul de Raaij

๐Ÿ’ป
Scott Bronson
Scott Bronson

๐Ÿ“–
Rafael Riedel
Rafael Riedel

๐Ÿ“–


Pearcekieser
Pearcekieser

๐Ÿ“–
Owen Young
Owen Young

๐Ÿ“– ๐Ÿ–‹
Prashanth Subrahmanyam
Prashanth Subrahmanyam

๐Ÿ“–
Jonas SPRENGER
Jonas SPRENGER

๐Ÿ’ป
Paul
Paul

๐Ÿ“–
Ikko Ashimine
Ikko Ashimine

๐Ÿ“–
memeplex
memeplex

๐Ÿ’ป


AndreiD049
AndreiD049

๐Ÿ’ป
Yan
Yan

๐Ÿ“–
Jim Tittsler
Jim Tittsler

๐Ÿ“–
Malcolm Mielle
Malcolm Mielle

๐Ÿ“–
Veesar
Veesar

๐Ÿ“–
bentongxyz
bentongxyz

๐Ÿ’ป
Brian DeVries
Brian DeVries

๐Ÿ’ป


Clifford Fajardo
Clifford Fajardo

๐Ÿ”ง
Chris Usick
Chris Usick

๐Ÿ’ป
Joe DeCock
Joe DeCock

๐Ÿ’ป
Drew Tyler
Drew Tyler

๐Ÿ“–
Lauviah0622
Lauviah0622

๐Ÿ’ป
Josh Dover
Josh Dover

๐Ÿ’ป
Phil Helm
Phil Helm

๐Ÿ“–


Larry Li
Larry Li

๐Ÿ’ป
Joe Taber
Joe Taber

๐Ÿ“–
Woosuk Park
Woosuk Park

๐Ÿ“–
Daniel Murphy
Daniel Murphy

๐Ÿ’ป
Dominic D
Dominic D

๐Ÿ’ป
luca
luca

๐Ÿ“–
Lloyd Jackman
Lloyd Jackman

๐Ÿ“–


sn3akiwhizper
sn3akiwhizper

๐Ÿ“–
jonathan berger
jonathan berger

๐Ÿ“–
Daniel Wang
Daniel Wang

๐Ÿ’ป
Liu YongLiang
Liu YongLiang

๐Ÿ“–
Scott Akerman
Scott Akerman

๐Ÿ’ป
Jim Graham
Jim Graham

๐Ÿ’ป
Zhizhen He
Zhizhen He

๐Ÿ”ง


Tony Cheneau
Tony Cheneau

๐Ÿ“–
Nicholas Latham
Nicholas Latham

๐Ÿ’ป
Tomochika Hara
Tomochika Hara

๐Ÿ“–
Daniel Carosone
Daniel Carosone

๐Ÿ“–
Miguel Angel Bruni Montero
Miguel Angel Bruni Montero

๐Ÿ’ป
Kevin Walsh
Kevin Walsh

๐Ÿ“–
Xinglan Liu
Xinglan Liu

๐Ÿ’ป


Thomas Hegghammer
Thomas Hegghammer

๐Ÿ“–
Piotr Mrzygล‚osz
Piotr Mrzygล‚osz

๐Ÿ“–
Mark Schaver
Mark Schaver

๐Ÿ“–
Nathan Layman
Nathan Layman

๐Ÿ’ป
Emmanuel Ferdman
Emmanuel Ferdman

๐Ÿ“–
Tenormis
Tenormis

๐Ÿ’ป

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

[//begin]: # "Autogenerated link references for markdown compatibility"
[Backlinking]: docs/user/features/backlinking.md "Backlinking"
[//end]: # "Autogenerated link references"