<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/mull-note-taking-with-a-language-server-vscode-extension-d4ne4hsau" -->

---
title: Mull: note-taking with a language server / vscode extension
description: Mull is a tool for managing a personal wiki stored in a single plain text file with a .mull extension, featuring a Visual Studio Code / Cursor extension that...
canonical: https://daily.dev/posts/mull-note-taking-with-a-language-server-vscode-extension-d4ne4hsau
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Mull: note-taking with a language server / vscode extension | daily.dev
og:description: Mull is a tool for managing a personal wiki stored in a single plain text file with a .mull extension, featuring a Visual Studio Code / Cursor extension that...
og:url: https://daily.dev/posts/mull-note-taking-with-a-language-server-vscode-extension-d4ne4hsau
og:image: https://api.daily.dev/og/posts/D4nE4HSau.png
og:image:alt: Mull: note-taking with a language server / vscode extension
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Mull: note-taking with a language server / vscode extension

**[Lobsters](https://daily.dev/sources/lobsters)** · 8 min read · 1 upvotes · 0 comments

## Summary

Mull is a tool for managing a personal wiki stored in a single plain text file with a .mull extension, featuring a Visual Studio Code / Cursor extension that adds syntax highlighting, hover previews, autocompletion, diagnostics, and formatting. Pages link to each other starting from a required Home page, enforcing reachability instead of folder hierarchies. It supports linking to external files and directories, embedding synced 'portals' into other pages, and extending functionality with custom scripts (e.g., auto-sorting lists). Mull can be run via the IDE extension or from the command line for CI checks, and installs via a shell script, Cargo, or manual binary download on macOS, Linux, and Windows.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://github.com/stepchowfun/mull>

## Questions this post answers

### How does Mull organize wiki pages without using folders or hierarchies?

Mull organizes wiki pages purely through links rather than a folder hierarchy. Every page must be reachable, directly or indirectly, by following links starting from a required Home page, and the tool automatically reorders pages in the file so related ones sit near each other whenever the wiki is formatted.

_daily.dev surfaces tools like this for developers rethinking how they organize personal notes._

### How do I install the Mull wiki tool on macOS or Linux?

Run the install script with curl: `curl https://raw.githubusercontent.com/stepchowfun/mull/main/install.sh -LSfs | sh`, which installs both the binary and the Visual Studio Code or Cursor extension automatically. Environment variables VERSION and PREFIX can customize the installed version and install path; the same command re-run later updates to the latest version.

_Developers evaluating new CLI tools can track setup details like this via daily.dev._

### How can I keep a list automatically sorted inside a Mull wiki file?

Create an executable script at `<wiki>_files/scripts/sort.sh` containing `sort "$@"`, then wrap the list in a `::: sort ... :::` block. Mull runs the script automatically whenever the wiki is formatted, and arguments like `-r` can be passed for reverse sorting, since using a script in a block counts as linking to it.

_daily.dev helps developers keep up with small automation tricks like scripting extensible text tools._

## Community take

How the wider developer community reacted, aggregated from 2 discussions and 11 comments across lobsters, hackernews (as of 2026-10-18).

**TL;DR:** Commenters find the concept appealing, with curiosity centered on the LSP architecture and whether it can work in editors other than VS Code, plus some design questions about markup choices and reachability enforcement.

**Sentiment:** 65% positive · 30% mixed · 5% skeptical

**The case for**

- The language server design means most functionality works outside the VS Code extension, so other editors could benefit.
- The author confirmed LSP support, with one commenter providing a working Helix configuration.
- The enforced-reachability feature for pages was called out as a favorite by at least one commenter.

**The pushback**

- Helix integration lacks syntax highlighting since Mull ships a TextMate grammar rather than a tree-sitter one.
- Some wondered how it compares to existing tools like ltex-ls-plus.

**By community**

- lobsters (positive): Interest centered on the language server architecture, editor portability, and design choices, with the author actively responding to questions.
- hackernews (mixed): No substantive discussion content was provided.

**Open questions**

- Can Mull's language server be fully used in non-VS Code editors like Helix with full feature parity, including syntax highlighting?
- How does Mull's local-language-tooling approach compare to existing tools like ltex-ls-plus?

**Highlights**

> One example is "dimming" of all but the active page (the one that the cursor is on) to help you visually focus on one page at a time. But such features are rare; the vast majority of the functionality is provided by the language server so other language clients can still get most of the experience without the extension.
> — [lettuce on lobsters · 2 points](https://lobste.rs/s/xcacrh/mull_note_taking_with_language_server#c_b7cqu1)

> Yes, this is enforced, and it's my favorite feature! If a page isn't reachable, it's reported as an error in the IDE, and `mull check` fails.
> — [lettuce on lobsters · 1 points](https://lobste.rs/s/xcacrh/mull_note_taking_with_language_server#c_44o0rj)

> This is very close to an idea I'm kicking around as well, looks well done.  Why did you chose your own (markdown compatible?) markup over markdown + wikilinks?
> — [lknuth on lobsters · 2 points, 1 comments](https://lobste.rs/s/xcacrh/mull_note_taking_with_language_server#c_2zthof)

> > Mull requires that every other page is reachable (directly or indirectly) by following links, starting from Home. Is this enforced? If I have a chain of page links ABCD, assuming nothing else links to D, does something prevent the removal of C?
> — [jmtd on lobsters · 1 points, 1 comments](https://lobste.rs/s/xcacrh/mull_note_taking_with_language_server#c_isxhwf)

**Source threads**

- [lobsters](https://lobste.rs/s/xcacrh/mull_note_taking_with_language_server) · 15 points · 11 comments
- [hackernews](https://news.ycombinator.com/item?id=50129777) · 2 points · 0 comments

## Similar posts on daily.dev

- [GitHub - drasimwagan/mdv: MDV — a Markdown superset for documents, dashboards, and slides with embedded data and visualizations. HTML \+ PDF export, live preview, VS Code extension.](https://daily.dev/posts/github---drasimwagan-mdv-mdv-a-markdown-superset-for-documents-dashboards-and-slides-with-embed-kszufeww8) · Hacker News · 0 upvotes · 0 comments
- [antonmedv/gitmal: A static page generator for repos](https://daily.dev/posts/antonmedv-gitmal-a-static-page-generator-for-repos-qzbjs2xm0) · Lobsters · 0 upvotes · 0 comments
- [I started using VS Code with GitHub Wiki and I should have sooner](https://daily.dev/posts/i-started-using-vs-code-with-github-wiki-and-i-should-have-sooner-pfwkchd20) · XDA Developers · 1 upvotes · 0 comments

---

Tags: [#devtools](https://daily.dev/tags/devtools), [#rust](https://daily.dev/tags/rust), [#vscode](https://daily.dev/tags/vscode)

[View this post on daily.dev](https://daily.dev/posts/mull-note-taking-with-a-language-server-vscode-extension-d4ne4hsau)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Mull: note-taking with a language server / vscode extension","url":"https://daily.dev/posts/mull-note-taking-with-a-language-server-vscode-extension-d4ne4hsau","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/mull-note-taking-with-a-language-server-vscode-extension-d4ne4hsau"},"datePublished":"2026-10-18T07:11:44.715Z","dateModified":"2026-10-18T07:12:12.837Z","description":"Mull is a tool for managing a personal wiki stored in a single plain text file with a .mull extension, featuring a Visual Studio Code / Cursor extension that...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/03061865c0ffdc2508bff7bb90046348?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/03061865c0ffdc2508bff7bb90046348?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Lobsters","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Lobsters","logo":"https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg","url":"https://daily.dev/sources/lobsters"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/mull-note-taking-with-a-language-server-vscode-extension-d4ne4hsau","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"devtools,rust,vscode","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Lobsters","item":"https://daily.dev/sources/lobsters"},{"@type":"ListItem","position":3,"name":"Mull: note-taking with a language server / vscode extension"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/mull-note-taking-with-a-language-server-vscode-extension-d4ne4hsau#faq","mainEntity":[{"@type":"Question","name":"How does Mull organize wiki pages without using folders or hierarchies?","acceptedAnswer":{"@type":"Answer","text":"Mull organizes wiki pages purely through links rather than a folder hierarchy. Every page must be reachable, directly or indirectly, by following links starting from a required Home page, and the tool automatically reorders pages in the file so related ones sit near each other whenever the wiki is formatted. daily.dev surfaces tools like this for developers rethinking how they organize personal notes."}},{"@type":"Question","name":"How do I install the Mull wiki tool on macOS or Linux?","acceptedAnswer":{"@type":"Answer","text":"Run the install script with curl: `curl https://raw.githubusercontent.com/stepchowfun/mull/main/install.sh -LSfs | sh`, which installs both the binary and the Visual Studio Code or Cursor extension automatically. Environment variables VERSION and PREFIX can customize the installed version and install path; the same command re-run later updates to the latest version. Developers evaluating new CLI tools can track setup details like this via daily.dev."}},{"@type":"Question","name":"How can I keep a list automatically sorted inside a Mull wiki file?","acceptedAnswer":{"@type":"Answer","text":"Create an executable script at `\u003cwiki\u003e_files/scripts/sort.sh` containing `sort \"$@\"`, then wrap the list in a `::: sort ... :::` block. Mull runs the script automatically whenever the wiki is formatted, and arguments like `-r` can be passed for reverse sorting, since using a script in a block counts as linking to it. daily.dev helps developers keep up with small automation tricks like scripting extensible text tools."}}]}
```

