• Sort numeric siblings in GoToSiblingCommand
  • Disable Dendron shortcuts when plugin is not active

Bug Fixes

  • Nested note refs in preview can display incorrectly

House Cleaning

  • Update initialization telemetry to only collect rounded numbers of notes (docs)



More Caching Improvements

Even if your workspace is +10k notes, initialization of said workspace should happen in the matter of seconds. You can read about the details here


  • progress indicator when adding a remote vault
  • init engine from cli (docs)
  • add html pod (docs)
  • move note now shows completions via lookup
  • rename note now shows completions via lookup

Bug Fixes

  • Tree widget doesn't update when new files are added
  • Goto note prefer existing note for multi-vault workspace
  • MarkdownPod still using legacy note refs
  • Move note will sometimes fail
  • Insert note will sometimes fail
  • Vault picker toggle for move note will execute if user clicks escape

House Cleaning

  • Rename note is now just a re-mapped version of the Move Note command. In the future, we might deprecate Rename altogether and replace with Move Note


Bug Fixes

  • proper initialization of backlinks when initializing from cache



Faster startup performance

Dendron startup is now up to 5x faster for large workspaces πŸš€πŸš€πŸš€ Prior to this release, Dendron re-indexes all files at startup. We're now smarter about this and will read data from our cache instead if the note contents have not changed. You can read about the details here.


  • Managed Publishing (NEW) is now compatible with version 0.37 of Dendron
  • Add progress bar to Dendron: Show Note Graph
  • MoveNoteCommand will not prompt for vaults if not multi-vault

Bug Fixes

  • Create daily journal note fails if there's no note open

House Cleaning


With this release of Dendron, we've added limited telemetry that is opt-out by default.

This is to help us understand how many people are using Dendron as well as measure the impact on performance when we introduce new features. We do not and will never read the data inside your notes.

You can see the full list of information we collect and why we do it in our telemetry documentation as well as instructions on how to opt out of telemetry.



Bug Fixes

  • correctly index notes added outside of Dendron




CLI for Workspace Commands

dendron workspace <cmd>

workspace related commands

  cmd  a command to run            [string] [required] [choices: "pull", "push"]

  --version         Show version number                                [boolean]
  --help            Show help                                          [boolean]
  --wsRoot          location of workspace
  --vault           name of vault
  --quiet           don't print output to stdout
  --enginePort      If set, connect to to running engine. If not set, create new
                    instance of Dendron Engine
  --useLocalEngine  If set, use in memory engine instead of connecting to a
                    server                                             [boolean]

Insert Note Command

Insert the contents from a note into another note. You can configure a starting hierarchy for this command. Useful if you designated a hierarchy (eg. templates) for insertions.

When inserting a note, all snippet variables will also be resolved.


  • support custom port for preview (docs)




CLI for Working with Vaults

dendron vault <cmd>

vault related commands

  cmd  a command to run                  [string] [required] [choices: "create"]

  --version         Show version number                                [boolean]
  --help            Show help                                          [boolean]
  --wsRoot          location of workspace
  --vault           name of vault
  --quiet           don't print output to stdout
  --enginePort      If set, connect to to running engine. If not set, create new
                    instance of Dendron Engine
  --useLocalEngine  If set, use in memory engine instead of connecting to a
                    server                                             [boolean]
  --vaultPath       path to vault                            [string] [required]
  --noAddToConfig   if set, don't add vault to dendron.yml             [boolean]


  • less verbose logs for CLI



CLI for Working with Notes

Start anchor note-commands not found


  • toggle xvault wiki links (docs)
  • auto detect workspace root if --wsRoot not passed to CLI
  • add --quiet flag to cli

House Cleaning

  • remove legacy note references, use doctor with oldNoteRefToNew to convert your old note references


Bug Fixes

  • multiple notes created when clicking on a link with an alias


Bug Fixes

  • Multiple notes created when opening a note via the treeview




Go to Note command

  • NOTE: this fixes issue 564 which causes a new note to be created on hover when combined with noAutoCreateOnDefinition set to true. We introduced noAutoCreateOnDefinition configuration to help folks transition to the new behavior. Auto creating on definition will be deprecated in a future release


  • better details in diagnostics report
  • support xvault backlinks
  • faster backlink generation
  • include content from unpublished notes (docs)
    • this allows you to use note references to hierarchies that aren't explicitly published
  • better Theia compatibility

Bug Fixes

  • disable auto-creation notes on definition (docs)



Add and Commit

Add and commit all notes across all vaults to git.


  • useNoteTitleForLink now true by default
  • control hierarchy display using note frontmatter (docs)
  • ability to disable appending uuid's to assets when importing Markdown (docs)
  • ability to set an index file when importing Markdown (docs)

Bug Fixes

  • bulk importing notes would fail if payload was greater than 10mb
  • punchcard pod referring to wrong commit





A Better Doctor

Dendron doctor has been updated with a bunch of new options including the ability to migrate old style refs to new style refs

End anchor *c not found


Browse Note

  • shortcuts: None

Open the GitHub repository (if it exists) of the current note. If you have a multi vault workspace with different git repositories, this command will

Create Daily Journal Note

  • shortcuts:
    • key: ctrl+shift+i
    • mac: cmd+shift+i
    • when: editorFocus

Create a global journal note

  • shortcuts:
    • key: ctrl+shift+c
    • mac: cmd+shift+c
    • when: editorFocus

Copy wiki link to note. The title of the note will be applied as the note alias. If you highlight a header, Dendron will create a relative link to the header with the alias set to the header value.

You can also highlight any line of text, and Dendron will create a link to it by inserting a block anchor, or copy an existing anchor.

If you use this command in a multi vault workspace, Dendron will create a cross vault link to the note in question.

You can use this command in any file inside your workspace, including files that aren't notes, to get links to those files.

You can also copy note link by Right Click on editor and select Dendron: Copy Note Link from the context menu.

Copy Note Ref

  • shortcuts:
    • key: ctrl+shift+r
    • mac: cmd+shift+r
    • when: editorFocus

Copies a reference to the current open document

This lets you quickly create a note reference to the current note.

Header Selection

If you have a header selected while running this command, it will copy the note ref with the selected header to the next note ref.

Having the cursor within a header will also show a lightbulb for the Contextual UI Header Operations, which includes a Copy Header Reference quick fix. This will copy the note ref to your clipboard.

Block Selection

If you have some text selected, Dendron can insert block anchors to reference the region you have selected.

Range Selection

If you highlight multiple blocks, Dendron can create a range selection that spans the blocks selected. Watch the following video starting at the 10s mark for an example.


If you use this command in a multi vault workspace, Dendron will create a cross vault link to the note in question.

Delete Node

  • shortcuts:
    • key: ctrl+shift+d
    • mac: cmd+shift+d

Delete a note or schema. A prompt will occur before deletion if any links will break that are referencing the note.

You can also delete a note from the explorer:

  • Right Click on the note
  • Dendron: Delete Node

Insert Note

Insert the contents from a note into another note. You can configure a starting hierarchy for this command. Useful if you designated a hierarchy (eg. templates) for insertions.

When inserting a note, all snippet variables will also be resolved.

Insert the note link into the current document using lookup.

There are two modifiers that can be passed into this command:

  1. multiSelect
  2. aliasMode


This modifier enables the multi-select mode. With multi-select enabled, you can select all the notes you want the links to be inserted.

This can be toggled on by clicking on the button, or setting multiSelect: true in dendron.yml as below:

  multiSelect: true

You can also pass it as a command argument through a custom keybinding as below:

/* in keybindings.json. 
* Use `Preference: Open Keyboard Shortcuts (JSON)` to open.
    "key": "{desired keybinding}",
    "command": "dendron.insertNoteLink",
    "args": {
      "multiSelect": true


This modifier enables different alias modes.

Here is the list of available alias modes:

  1. snippet: Inserted note link resolves into a VS Code snippet string
  2. selection: Extracts the selection of the active note and use it as the alias.
  3. title: Use the note title of the linked note as alias.
  4. prompt: Open an input box that will prompt for an input for the alias.
  5. none: Does not add alias. (default)

You can override the default alias mode in dendron.yml as below:

// dendron.yml
  aliasMode: "snippet" // choose one from the list

You can also pass it as a command argument through a custom keybinding as below:

/* in keybindings.json. 
* Use `Preference: Open Keyboard Shortcuts (JSON)` to open.
    "key": "{desired keybinding}",
    "command": "dendron.insertNoteLink",
    "args": {
      "aliasMode": "snippet" // choose one from the list

Inserted note link will resolve into a VS Code snippet in the form of

[[{$1: alias}|note-name]]$0

If multi-select is enabled, each subsequent alias field will be available as separate tabstops like so:

[[{$1: alias}|note1]]
[[{$2: alias}|note1]]
[[{$3: alias}|note1]]
[[{$4: alias}|note1]]
[[{$5: alias}|note1]]
[[{$n: alias}|note1]]$0

Selection present in the active editor will be extracted and used as the alias.

The original selection will be replaced by the link inserted.

If multi-select is enabled, all inserted note links will have identical aliases.


The title of the note that is being linked is used as the link's alais.


An input box will be prompted that will let you type in the desired alias.

If multi-select is enabled, you will be prompted for each of the note links you want to insert.


No alias will be used for the inserted note link(s).

Insert Note Index

Insert a block that lists the direct children of the current note to cursor position.

The format of the block is as follows:

## Index
- [[{ch1}|{noteName}]]

If used in a multi-vault workspace and noXVaultWikiLink is not set, the wikilinks will have a vault prefix added to avoid ambiguity.

Given the following hierarchy:

β”œβ”€β”€ recipe
β”œβ”€β”€ recipe.eggs
β”œβ”€β”€ recipe.eggs.royale
β”œβ”€β”€ recipe.eggs.deviled
β”œβ”€β”€ recipe.eggs.benedict
β”œβ”€β”€ recipe.eggs.florentine
β”œβ”€β”€ recipe.bagel 
β”œβ”€β”€ recipe.bagel.with-gravlax
β”œβ”€β”€ recipe.chicken
└── recipe.chicken.curry

Running this command with the note recipe open will insert the following at cursor position:

## Index
- [[Eggs|recipe.eggs]]
- [[Bagel|recipe.bagel]]
- [[Chicken|recipe.chicken]]

Running it in the note recipe.eggs will insert the following at cursor position:

## Index
- [[Royale|recipe.eggs.royale]]
- [[Deviled|recipe.eggs.deviled]]
- [[Benedict|recipe.eggs.benedict]]
- [[Florentine|recipe.eggs.florentine]]

Move Note

If looking to move a note within a hierarchy in a local vault, or just to rename the note, use Rename Note

  • shortcuts: none

Move a note between vaults when in a Multi Vault workspace, and update all backlinks.

You can also move a note from the explorer, and all of the backlinks to that note will be updated automatically:

  • Right Click on the note
  • Select Dendron: Move Note

NOTE: Dendron will not allow you to move a note to a note that already exists

Transform URL in clipboard to nicely formatted Markdown link

Converts links of various statuses and kinds.

Random Note

Navigates to a random note in the workspace. By default, all notes are included in the set that can be navigated to with this command. This can be adjusted with the randomNote setting in the Dendron Config (see Configure (yaml)).

# Sample configuration in dendron.yml:
        - alpha
        - beta.foo
        - alpha.bar

This pattern would specify a set including all notes under alpha except for notes in the alpha.bar hierarchy. The set would also include notes under beta.foo*.

  • If include is not specified, then the include matching pattern will match all notes.
  • exclude takes precedence over include, so if the patterns are identical, no notes will match.

Show Preview

  • shortcuts:
    • windows: windows+ctrl+p
    • mac: cmd+ctrl+p

Shows a Markdown preview view. This preview supports rendering Dendron features, such as note refs, wikilinks, custom image properties, and more. Show Preview supports previewing Dendron notes and regular Markdown files such as a project README.md.

Show Preview (legacy)

⚠️ This is a deprecated command. Please consider using Show Preview instead.

  • shortcuts:
    • windows: windows+ctrl+p
    • mac: cmd+ctrl+p

Show Markdown Preview. See Preview for more details.


  • shortcuts:
    • mac: cmd+L
    • key: ctrl+l

Initiate note lookup

To work with notes, Dendron uses lookups. Lookups help you create, find, and organize your notes. You can watch the following video to see some of the things you can do with lookups.


Dendron supports lookups by keywords separated by spaces/' ' without having to know the order where the keywords occur in the note. As example: dendron rename & rename dendron will both match note dendron.dev.design.commands.rename.

As mentioned in Details, the look up is accomplished through utilization of fusejs. You can use fusejs extended search syntax when looking up notes.

For entries that have the same score, Dendron will sort results by their last updated time. Further info on lookup syntax can be found in Finding Notes

Look up Auto Complete

Pressing Tab while having lookup view open will attempt to auto complete results. This is especially useful when dealing with hierarchies which adds on one level of hierarchy (from the highest matched result) at a time.


Behind the scenes, lookup uses fusejs to do fuzzy string matching based on the note hierarchy. You can see our parameters here.

Scoring is explained here.

You can see the pseudo code for how fusejs integrates with lookup here (Private).

Lookup (Journal Note)

  • shortcuts:
    • key: ctrl+shift+j
    • mac: cmd+shift+j
    • args: {'noteType': 'journal'}

Initiate note lookup with journal note pre-selected

Lookup (Scratch Note)

  • shortcuts:
    • key: ctrl+shift+s
    • mac: cmd+shift+s
    • args: {'noteType': 'scratch', 'selectionType': 'selection2link'}

Initiate note lookup with scratch note pre-selected

Lookup Note

  • shortcuts: none

Initiate a note lookup. This is the successor to the Lookup command, limited to just notes. It is significantly faster on large workspaces when compared to its predecessor and also comes with addiitional modifiers.

Create Task Note

  • shortcuts: none

Creates a task note, which comes with some extra features to keep track of work items.

The Create Task Note lookup supports tabbing for autocompletion.

Lookup Schema

  • shortcuts:
    • mac: cmd+shift+L
    • key: ctrl+shift+l

Initiate schema lookup

  • shortcuts: none

Open link to external file (eg. PDF, .mov, etc.) use system default. Relative files paths will be opened relative to the vault that the note is in.

Go to Commands

Find all References




Reload Index

  • shortcuts: none

Reload the index. Necessary for Dendron to pick up on schema changes.

Archive Hierarchy

  • shortcuts: none

Move current note and all children under the archive hierarchy

This is a convenience method around Refactor Hierarchy for the case of archiving hierarchies you are no longer using. For example, if you were currently at pro.foo, running Archive Hierarchy would be equivalent to running Refactor Hierarchy with the following arguments:

  • matcher: pro.foo
  • replacement: archive.pro.foo


Hook Create

Create a custom hook to trigger during Dendron's lifecycle. This command takes two parameters:

  • hookName: name of your hook
  • hookFilter: a glob pattern that filters what notes your hook applies to
    • default: *, apply hook to all notes by default
  • hookType: where to attach the hook (coming soon - we only support onCreate at the moment)
    • types: onCreate|onDelete|onChange
    • default: onCreate

Hook Delete

Delete a custom hook. Will remove the hook from dendron.yml and optionally, remove {workspace}/hooks/{hookName}.js


  • hookName: name of the hook to remove
  • shouldDeleteScript: whether you should also delete the hook script


Disable Telemetry

Disable telemetry across all workspaces with Dendron

Enable Telemetry

Enable telemetry across all workspaces with Dendron

Vault Add

  • shortcuts: none

Add a new vault to your workspace.

When you add a vault, you can choose between adding a local vault or a remote vault. You can change this later with the Vault Convert command.

You can also add a vault from the explorer by: Right Click on the explorer > Dendron: Vault Add

Vault Remove

  • shortcuts: none

Remove a vault

Remove a vault from your workspace. Note that the underlying files will not be deleted - the vault will lose its association with your workspace.

You can also remove a vault from the explorer by: Right Click on the vault > Dendron: Vault Remove

Vault Convert

You can convert a local vault to a remote vault, or a remote vault to a local vault using this command. Simply run the command and follow the prompts.

Launch Tutorial

Prompt user to create an initial tutorial workspace and takes user through new tutorial

Initialize Workspace

  • shortcuts: none

Create a new workspace

Change Workspace

  • shortcuts: none

Change into existing workspace

Snapshot Vault

  • shortcuts: none

Create a snapshot of your vault

Takes a snapshot of your entire vault, including assets. This command will ignore version control folders like .git when making a snapshot. Snapshots are saved under {workspace}/snapshots/{timestamp}

Restore Vault

  • shortcuts: none

Restore your vault from a snapshot

Restores your vault based on a snapshot. When restoring, it will over-write any notes that have the same name as notes in the snapshot. It will ignore version control directories like .git when restoring your vault

Show Help

  • shortcuts: none

Dendron will open your current browser to the cheatsheet page.

Configure (yaml)

  • shortcuts: none

Modify Dendron Config as raw YAML


  • shortcuts: none

Modify Dendron Config using Dendron UI

Workspace: Add and Commit

Add and commit all notes across all vaults to git.

Workspace: Sync

Synchronizes all notes across all vaults with git. Any changes you made will be pushed back to remote, and any changes in the remote will be pulled.

In more detail: Dendron will first commit all your changes, then pull changes from the remote, and finally push everything back to the remote. This workflow is good in most cases: private notes, internal shared vaults, or your personal writings. This workflow doesn't work as well in some cases however, so we offer per-vault configuration options which you can use to adjust how your notes are synchronized.

You can set these configuration options in your dendron.yml, either for each vault with the sync option, or for all workspace vaults with the workspaceVaultSync option. The configuration will look like this:

... rest of your dendron.yml
workspaceVaultSync: noPush
        fsPath: my-website
        sync: noCommit
            type: git
            url: 'git@github.com:my-username/my-website.git'
        fsPath: my-notes
        sync: sync
        type: git
            url: 'git@github.com:my-username/my-notes.git'

configuration options


Dendron will try to synchronize everything: Dendron will first commit all your changes, then pull changes from the remote, and finally push everything back to the remote. This is the default for regular vaults.


Pull and push updates if the workspace is clean, but don't commit. You manually commit your local changes, but automatically share them once you committed. This is good for vaults where you want to write a meaningful commit message and control what is being committed, for example a shared knowledge base or wiki. This is the default for Workspace Vaults.


Commit any changes and pull updates, but don't push. You can watch the repository and make local changes without sharing them back. This is good if you want to watch the updates in a vault and maybe even note your own thoughts in the vault without sharing them, for example an organization handbook that you don't want to edit yourself.


Don't do any synchronization. This may be useful if you use some other tool to synchronize this vault.

Workspace Types

Dendron recognizes 2 types of workspaces, Code and Native. When you initialize your workspace with the Initialize Workspace command, you get a Code workspace. Code workspaces include a dendron.code-workspace file which sets up vaults and recommends installing some useful extensions. Code workspaces are great when you are setting up a knowledge base.

Native workspaces on the other hand don't have a dendron.code-workspace file. They are useful when you are writing notes or documentation, and you want to keep your notes as part of a project rather than a separate knowledge base.

See Native Workspace Setup to see how you can start using a native workspace!


Version control your workspace using Git

Inside your workspace, run the following

  1. Initialize a git repo
    git init
    git add .
    git commit -m "initial commit"
  2. Add a remote

Syncing your workspace with Git

Workspace Sync does not sync the workspace if all your vaults are separate git repos. In order to synchronize your workspace, you need to explicitly do a git pull from the workspace folder.

If you are inside VS Code, you should be able to run > Create Integrated Terminal..., choose the folder containing your workspace, and launch the terminal. After launching, run a git pull inside of it.


Build Pod

  • shortcuts: none

Build your notes for export. Currently, only export to GitHub Pages is supported.

Configure Pod

  • shortcuts: none

Update your pod configuration

Configure Export Pod V2

Update your export pod v2 configuration.

Configure Service Connection

Update your service Connections (Private) config.

Import Pod

  • shortcuts: none

Import notes from an external data source. Currently, only the local file system is supported

Export Pod

  • shortcuts: none

Export notes to an external data source. Currently only JSON is supported.

Publish Pod

  • shortcuts: none

Publish your note to a different format/location

Copy Note URL

  • shortcuts:
    • mac: cmd+shift+u
    • windows: ctrl+shift+u

Get URL of current note from published site

If you highlight a header, will copy the url with the header set as the anchor

The url is taken from the siteUrl property.


Browse the Seed Registry

Browse the Seeds available in the Seed Registry and view detailed information about each one. You can also add seeds to your workspace through the UI.

Add Seed to Workspace

Add a seed (Private) to your current workspace.

Remove Seed from Workspace

Remove a seed (Private) from your current workspace.



  • shortcuts: none

Become an environmentalist and keep Dendron sustainable

This command takes you to Dendron's Environmentalist plans. Environmentalists are users that can support Dendron financially through a monthly contribution. Environmentalist get access to Insiders builds, priority support, and access to exclusive dev channels.

Paste File

Takes the path currently in the clipboard, copies the file into {vault}/assets, and inserts Markdown link in the current note. This is the file equivalent of Dendron's Paste Image command

Note that most file types won't be natively supported in the preview. You'll need to use the VS Code built-in > Open Link command to open the file.

If you are on macOs, you can find instructions for getting the path to the current file here



  • shortcuts: none

Build, commit and publish your notes with a single command

  • NOTE: this is meant for v1 publishing. V2 publishing currently does not have a publish command.

Publish Export

  • shortcuts: none

Build and export your notes using publishing v2

Publish Dev

  • shortcuts: none

Preview your notes on localhost using publishing v2.



  • support hiding hierarchy view on published page (docs)
  • GitPunchcard support multi-vault (docs)
  • support toggling vault initialization behavior at startup (docs)
  • support migrating old note refs to new note refs (docs)

Bug Fixes

  • correct hiearchyDisplayTitle to hierarchyDisplay option (BREAKING)
  • fix spurious getVault errors

House Cleaning

  • removed all old style refs from dendron-site
  • formal deprecation notice for old style refs (((ref: )) syntax) - they will be removed in the next release. use doctor to upgrade




Browse Current File

  • shortcuts: None

Open the GitHub repository (if it exists) of the current note. If you have a multi vault workspace with different git repositories, this command will


  • wikilinks to missing vaults will display an error instead of throwing one
  • ability to disable legacy refs (docs)
  • add xkcd to vault presets (docs)
  • 5x faster Markdown pod import using plugin πŸš€ πŸš€ πŸš€
  • toggle katex settings from config (docs)

Bug Fixes

  • displaying children hierarchies fails on stub notes
  • empty query doesn't display all root nodes when multi-vault




Markdown Export

The export Markdown pod will take Dendron Markdown and convert it to regular Markdown. Dendron specific markup like wikilinks will be converted to their Markdown equivalent.


Start anchor dendrongitpunchard not found


  • disable git linking on a per note basis (docs)
  • set a custom path for git url (docs)
  • dendron-cli is now named dendron (dendron-cli will continue to work)
  • buildSiteV2 has been renamed to buildSite (buildSiteV2 will continue to work but is now considered deprecated)
  • add tldr to remote vault presets (docs)
  • support useFMTitle when publishing to Markdown
  • fix link textwrap issue when publishing for mobile

House Cleaning

  • consolidate engine-server and common-server tests into engine-test-utils



Password protected sites

You can now use managed publishing with a password. Note that you'll need sprout membership to use the feature.


  • control display for children links (docs)
  • skipLevels also applies to children lins
  • useNoteTitleForLink also applies to note references
  • importing from Markdown is now 5x faster πŸš€πŸš€πŸš€
    • NOTE: this is only for the CLI
  • a bunch of new options when importing a pod (docs)
  • show progress bar when importing pod from plugin

Bug Fixes

  • Dendron will check if dependencies are actually installed before trying to preview your site
  • remove un-used extensions
  • failure when importing large amounts of Markdown files using import pod

House Cleaning

  • importing a pod now requires a vaultName parameter (previous, we just defaulted to the first vault)





  • status: 🚧

Dendron can now generate a changelog for your published site. Note that this feature is currently experimental and will only generate the changelog for your latest commit. It also requires that you be using git to store your notes. When enabled, this will add Changelog to your nav bar which will have your most recent commit.

House Cleaning

  • all tests are now jest style tests



Custom Domain Names

Dendron now supports custom domain names for managed publishing. You can find docs here. Note that this feature is currently limited to environmentalist .


  • Add paste link command (docs)
  • don't throw fatal error on bad wikilink
  • don't throw fatal error if siteUrl not set while in dev
  • add remark-containers plugin docs

Bug Fixes

  • refs don't include children or backlinks
  • clean dendron.yml after removing a vault


Bug Fixes

  • issue with mixed case file names




Cross vault links are a way of exactly specifying a note in a multi vault workspace. You can turn a regular link into a cross vault link by adding dendron://$vaultName/ prefix where $vaultName is the name of your vault.

Some examples:

  • regular wiki link: [[dendron://vault/foo]]
  • wiki link with alias: [[Foo Note|dendron://vault/foo]]
  • relative link: [[Foo Note|dendron://vault/foo#header1]]

You can also use cross vault links for note references.

  • note ref: ![[dendron://vault/foo]]

Markdown links can be used for local files and stuff on the internet (websites, images, blogs etc.). The Markdown Shortcuts: Toggle hyperlink command makes this operation really easy. You can even bind this to a shortcut key combination. We'd recommend using 'cmd/ctrl + K' to get the usual application behavior or 'cmd/ctrl + U' if you want to continue using ctrl+k as part of the usual VS Code combo operation.


Converts links of various statuses and kinds.


  • you can now add a workspace when adding a remote vault (docs)
  • better block quotes (docs)
  • better formatted backlinks on published pages
  • backlinks display using note title instead of file names
  • copy note commands will create a cross vault link when in multi-vault environment

Bug Fixes

  • selecting non-primary root note in Dendron tree
  • bad backlinks created for home page
  • issue with hierarchies for mixed case parents


  • new docs on using Dendron for blogging

House Cleaning

  • table of contents on published sites is now a remark extension, header changed to children
  • Jekyll publishing has been renamed to legacy publishing
  • lots of internal refactoring of code



Custom Pods

We now have custom pod support

If you are interested in developing your own publishing pod, you can docs to do so here

Dev.to Pod

As an example of what you can do with a custom pod, we created the Dev.to Pod (Private) which lets you publish your notes to dev.to


  • backlinks in published sites

This is the equivalent to the backlinks panel when using the desktop app.

Backlinks are automatically deduped and also work in a multi-vault setting.

Bug Fixes

  • delete node sometimes fails in multi-vault
  • publishing multi-vault will sometimes not work if multiple domain notes
  • unable to select root of multi-vault notes in tree view

House Cleaning

  • if you're working on the codebase, dendron.code-workspace has been renamed to dendron-main.code-workspace
    • this helps if you're working on Dendron while having Dendron installed since Dendron, prior to this change, would also activate when you were editing the code