Features
Everything ForkLeaf does
A notebook of plain Markdown files in your own GitHub repository — and the linking, remembering, reading and publishing a real notebook needs. Every card says where to find it; almost all of it is one ⌘K away.
- features
- 87features
- areas
- 7areas
- new this release
- 52new this release
- databases holding your notes
- 0databases holding your notes
87 features
Writing
13An editor for plain Markdown files that does not make you think about Markdown.
Three views of one file
Rich text that formats as you type, a split view with live preview, or the raw source. Switching never rewrites the file.
Rich / Split / Source in the header, or ⌘1 ⌘2 ⌘3
Paste images straight in
Screenshots are committed to assets/ and linked by a relative path, so they still render on github.com.
Paste or drop a picture into a note
Properties are real front matter
Title, tags and anything else you add are YAML at the top of the file, readable by Obsidian, Jekyll and Hugo.
The properties panel on the right
Templates
NewAny note in templates/ becomes a starting point, with {{title}}, {{date}} and {{weekday}} filled in.
⌘K → New note from template
A note for today
Newjournal/YYYY-MM-DD.md, made from templates/daily.md when you have one — somewhere for the day's scraps.
⌘K → Open today's note
Focus mode
NewThe file tree, tabs, panels and status bar step away, and come back exactly as they were.
⌘⇧F
Encrypted notes
NewSeal a note with a passphrase: its words, title and tags are unreadable on GitHub or anywhere else without it.
⌘K → Encrypt this note…
Encrypt for people
NewSeal a note — or a whole folder — for the people you choose, each opening it with their own key (P-256 ECDH, AES-256-GCM). A key that changes is caught before anything is sealed for it.
⌘K → Encrypt for people…
Voice notes
NewRecord a thought, keep the audio beside the note and play it from there — with an optional transcript.
⌘K → Record a voice note
Lock a note
Stop stray keystrokes from editing a note you read constantly, without stopping sync.
The padlock in the header, or ⌘⇧L
Code blocks that run
bash, Python and JavaScript blocks run in a throwaway virtual machine and write their output into the note.
The Run button on a code block
Needs a connected GitHub repository
Opens the .md files on your computer
Install ForkLeaf and it becomes a Markdown editor for your operating system; ⌘S writes the file back.
⌘K → Open a file from this computer
Organising and remembering
33Ways to see a notebook as more than a list of files.
Links and backlinks
[[Wikilinks]] in the Obsidian dialect. Every note shows what links to it, quoting the line the link is on.
Type [[ in a note; backlinks are in the right panel
Search every word
Full-text, ranked, offline — and notes linked to the one you are in float to the top.
⌘K
Graph of your notes
NewEvery note as a dot and every link as a line, starting near the note you are in.
⌘K → Show the graph of my notes
Every open to-do in one list
NewUnticked boxes from across the notebook, overdue first. Tick one there and it is ticked in its note.
⌘K → Show every open to-do
A folder as a board
NewCards in columns by status. Drag one and the note's status property changes.
⌘K → Show this folder as a board
A folder as a table
NewEvery note's properties as columns you can sort, filter and edit in place.
⌘K → Show this folder as a table
What I learned this month
NewA journal page built from the month's new notes, flashcard progress and decisions, which you can publish.
⌘K → What I learned this month
Notebook health badge
NewA README badge for your notes repository showing broken links, stale notes and your review streak.
/ → Notebook health badge
Needs a connected GitHub repository
Decision notes
NewOptions with pros and cons weighed and scored, and the chosen option kept with a dated history of the decision.
/ → Decision
Claim checker
NewWhile you write, underline sentences that nothing in your notes or saved sources backs, and see what backs the rest.
⌘K → Check claims in this note
Map this note
NewA canvas of the note and every note it links with, laid out automatically, right in the note.
/ → Map this note
Hands-free review
NewA note's cards read aloud and answered by voice, each graded on its schedule — for studying while walking.
/ → Flashcards: review by voice
A folder as a course
NewA folder's notes as lessons ordered by how they link, with progress, cards per lesson and a quiz at the end — in the note.
/ → Course from a folder
Spaced reading
NewHighlights from PDFs and quotes saved from the web come back a few a day, in the note, on the flashcard schedule.
/ → Spaced reading
Explain it back
NewHide a note, write down — or say out loud — what you remember, and see it side by side with the original, every sentence marked by what you forgot.
⌘K → Explain it back
Flashcards
NewType Question :: Answer and press Enter: it becomes a card in the note that you turn over and grade in place, or review them all at once, on a spaced-repetition schedule that syncs with the notebook.
Type Question :: Answer, or / → Flashcard
Cards from what you wrote
NewSelect text and press + Card to make it an answer, or Blank to hide those words in the sentence. The status bar says how many cards are due; one click starts studying.
Select text → + Card or Blank · ⌘⇧Y to study
If I stop writing
NewA GitHub Action in your own repository: when nothing has been written for months, it publishes a folder you chose and tells someone you trust — after reminding you two weeks before. It never deletes anything.
⌘K → If I stop writing…
Needs a connected GitHub repository
This note's family
NewThe notes a note shares whole passages with — split from, pasted into, quoted — found from the text itself, beside its links in and out.
⌘K → This note's family
Why I changed my mind
NewWhen an edit reverses what a note said — Postgres became SQLite, should became should not — the header asks why, and the reason goes into the note under its own heading. The part version history cannot keep.
Edit a note → Changed your mind? Say why
Echoes
NewA sentence you wrote yesterday, a week, a month and a year ago, from the notes named after those days — and one question: is it still true?
Dashboard → Echoes
Fading from memory
NewEvery note gets a forgetting curve from when you last opened it. The dashboard shows the notes you came back to before and are now losing, with Reread and Test myself.
Dashboard → Fading from memory
What the AI has read
NewA receipt for every send from this browser to a model: when, which provider and model, which note and how much of it, and what was asked. Kept on this device; the note's text is never stored in it.
⌘K → See what the AI has read, or Receipts in the assistant
Search by meaning
NewFinds notes about the same thing in other words, learned from how your own notes use them — built on this device, nothing downloaded or sent. Steps in by itself when no note has the words you typed.
Dashboard → search → By meaning
Scheduled notes
NewGive a template a schedule property — daily, weekdays, weekly, monthly or a day like friday — and its note is made the first time you open ForkLeaf in that period. Only ever for the current one.
templates/ → add property schedule
Then and now
NewThe note as it was a month, six months or a year ago, beside today's — words, paragraphs added and let go, and the diff. Read from the repository's own history.
⌘K → This note, then and now
Needs a connected GitHub repository
Map of contents
NewWrites a list of every note linked with this one and every note sharing its tags into the note, as ordinary [[links]]. Run it again to refresh it.
⌘K → Write this note's map of contents
Present a note
NewThe open note full screen, a slide per section — or per --- line if it has them — with diagrams and maths as they are in the note.
⌘K → Present this note
Maths
New$E=mc^2$ inline and $$…$$ blocks, typeset with KaTeX in the preview. Prices stay prices: "$5 and $10" is not a formula.
Type $…$ or $$…$$
Cards from diagrams
NewIn a note tagged flashcards, every arrow in a flowchart or state diagram and every branch of a mind map becomes a card: what comes after this step?
Tag the note flashcards
Weekly review
NewA note listing what you started, worked on and deleted this week, and what is overdue.
⌘K → Write this week's review
Dashboard
Every note across every connected repository, indexed by title, tag and folder.
⌘⇧D
Needs a connected GitHub repository
Saving from the web
5Keep what you find elsewhere, with where it came from.
Save from anywhere
NewShare a page, a quote, a link or a picture into inbox/. ForkLeaf always shows what will be saved and asks first.
Share → ForkLeaf on a phone, or the bookmarklet from ⌘K
Save to ForkLeaf extension
NewOne click, or a right-click on a selection, link or image. No account and no host permissions.
Alt+Shift+S, or right-click → Save to ForkLeaf — in Chrome, Edge, Brave, Arc or Firefox
Step-by-step setup →Everything you saved
NewThe inbox as a grid — quotes as quotes, pictures as pictures — with filters and search.
⌘K → Show everything I saved
Sources that survive link rot
A citation with the page's real title, when you read it, and an archived copy.
⌘K → Capture a web page as a source
Needs a connected GitHub repository
Link hover cards
See a link's title, description and picture before opening it — fetched so the site never sees you.
Hover a link in a note
Reading papers
6PDFs are part of the notebook, not attachments to it.
Read a PDF beside your note
Its own table of contents, find that matches through hyphenation, and a pane you can resize.
Click a .pdf in the sidebar, or drop one on the window
Quote into a note
A citation that records the sentence, not the page, so it still finds the passage after the paper is revised.
Select text in the document → Quote into note
Highlights as a text file
Highlights live in a markdown file beside the PDF. The PDF itself is never touched.
Select text → Highlight
Everything you wrote about a paper
Every note quoting a document, with the passage it took and the page, in the paper's own order.
The Notes tab beside the document
Paper and note on the same page
Moving through the note turns the document to the page you are writing about, and back.
Read beside a note in Split or Source view
Search inside your documents
⌘K finds words in every PDF you have opened, and opens it at the page.
⌘K and type a phrase
Diagrams
4Mermaid, without having to remember Mermaid.
Templates for every diagram type
Flowcharts, sequence, state, ER, Gantt, mind maps, timelines and more, each drawn as a preview.
/ → Diagram
Draw instead of type
Drag boxes and pull arrows for six diagram types; the Mermaid is written for you.
Visual mode in the diagram editor
A box can be a note
Put a [[wikilink]] in a label and the box opens that note.
A["[[Deploy runbook]]"]
See a diagram change
Two versions of a diagram compared as graphs, so a renamed box reads as a rename.
Diagram changes in a pull request
Needs a connected GitHub repository
History and checks
8Git already keeps everything. These are ways to use that.
Every version of every note
The commit log for a note, any old version readable, and a replay of how it was written.
Properties panel → Version history
Needs a connected GitHub repository
Where did this paragraph come from?
When each paragraph last changed, what it said before, and — shaded by times rewritten — which parts you have never been sure of.
⌘K → See when each paragraph was written
Needs a connected GitHub repository
The notebook on any date
The files that existed that day, each readable as it stood. Read-only.
⌘K → Show me my notebook as it was on…
Needs a connected GitHub repository
Bring back a deleted note
NewNotes that are gone now, read from the history and restored at the path they had.
⌘K → Bring back a deleted note
Needs a connected GitHub repository
Try a rewrite
Rewrite a note on a branch, compare it with the original, then keep it or throw it away.
⌘K → Try a rewrite of this note
Needs a connected GitHub repository
Notes that say they have gone stale
Links to files that have gone, links to no note, and claims nobody has checked in years.
⌘K → Check which of my notes have gone stale
Notebook check on every pull request
NewA GitHub Actions workflow that fails a pull request which leaves a note pointing at a missing file or a link to no note.
Copy docs/workflows/notebook-check.yml into .github/workflows
Needs a connected GitHub repository
Are my quotations still true?
Every quotation checked against its document, with a one-press fix for a moved page.
⌘K → Check my citations against their documents
Needs a connected GitHub repository