Skip to main content
Wikilinks enable bidirectional linking between notes using a simple [[Note Title]] syntax, similar to Obsidian, Roam Research, and other knowledge management tools. There are three ways to create wikilinks:
Start typing [[ anywhere in your note to trigger the autocomplete menu:
1

Type Opening Brackets

Type [[ to activate wikilink suggestion
2

Filter Notes

Start typing to filter notes by title
3

Select Note

Use arrow keys to navigate, press Enter to insert

Autocomplete Suggestions

The wikilink autocomplete provides intelligent note filtering:
  • Case-insensitive search - Matches titles regardless of capitalization
  • Substring matching - Finds notes containing your query anywhere in the title
  • Top 10 results - Shows the most relevant notes
  • Keyboard navigation - Use and arrow keys to select
  • Escape to dismiss - Press Esc to close the suggestions menu
# Project Ideas

See also: [[Meeting Notes]] and [[Tasks]]

For technical details, check [[Architecture Overview]].
Click any wikilink to navigate to the linked note:
  • Single click - Opens the linked note immediately (no modifier key required)
  • Note not found - Shows a toast message if the note doesn’t exist yet
  • Case-insensitive matching - Links work regardless of title capitalization
Unlike regular links, wikilinks don’t require Cmd+Click - just click to navigate.

Implementation Details

Wikilinks are implemented as a custom TipTap extension:

Parsing and Rendering

export const Wikilink = Node.create<object, WikilinkStorage>({
  name: "wikilink",
  group: "inline",
  inline: true,
  atom: true,

  markdownTokenizer: {
    name: "wikilink",
    level: "inline" as const,
    start: "[[",
    tokenize(src: string, _tokens: MarkdownToken[]) {
      const match = src.match(/^\[\[([^\]]+?)\]\]/);
      if (!match) return undefined;
      return {
        type: "wikilink",
        raw: match[0],
        text: match[1],
      };
    },
  },

  parseMarkdown(token: MarkdownToken, helpers) {
    return helpers.createNode("wikilink", { noteTitle: token.text });
  },

  renderMarkdown(node: JSONContent) {
    return `[[${node.attrs?.noteTitle ?? ""}]]`;
  },
});

Suggestion Logic

The autocomplete system uses TipTap’s Suggestion plugin:
export const WikilinkSuggestion = Extension.create({
  name: "wikilinkSuggestion",

  addProseMirrorPlugins() {
    return [
      Suggestion<NoteMetadata>({
        editor: this.editor,
        char: "[[",
        pluginKey: wikilinkSuggestionPluginKey,
        allowSpaces: true,
        startOfLine: false,

        allow: ({ editor }) => {
          return (
            !editor.isActive("codeBlock") &&
            !editor.isActive("frontmatter") &&
            !editor.isActive("code")
          );
        },

        items: ({ query }) => {
          const notes = (this.editor.storage as any).wikilink?.notes;
          if (!notes) return [];
          const q = query.toLowerCase();
          return notes
            .filter((note) => note.title.toLowerCase().includes(q))
            .slice(0, 10);
        },

        command: ({ editor, range, props: note }) => {
          editor
            .chain()
            .focus()
            .deleteRange(range)
            .insertContent({
              type: "wikilink",
              attrs: { noteTitle: note.title },
            })
            .run();
        },
      }),
    ];
  },
});

Limitations

Wikilinks do not support titles containing ] characters (e.g., [[Note [v2]]] will not parse correctly).

Use Cases

Meeting Notes

Link action items to project notes

Zettelkasten

Build a network of interconnected ideas

Documentation

Cross-reference related documentation pages

Research

Connect research papers, citations, and insights

Future Enhancements

Potential future improvements to wikilinks:
  • Backlinks panel - See all notes linking to the current note
  • Graph view - Visualize note connections
  • Auto-create notes - Create linked notes that don’t exist yet
  • Alias support - Display different text than the note title ([[Note Title|Display Text]])
Combine wikilinks with Search (Cmd+Shift+F) to navigate your knowledge graph efficiently.

Build docs developers (and LLMs) love