{
  "id": 14961689,
  "title": "Mull: note-taking with a language server / vscode extension",
  "url": "https://urgent.news/2026/10/16/mull-note-taking-with-a-language-server-vscode-extension",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-16T12:54:20.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://github.com/stepchowfun/mull"
  },
  "original_language": "en",
  "account": "Mull is a tool designed to manage a wiki stored in a plain text file. It provides an extension for Visual Studio Code and Cursor that enhances the editing experience with features like syntax highlighting, hover previews, completions, diagnostics, formatting, and refactoring. A wiki file has a .mull extension and contains pages that link to each other within the same file. Each page begins with a # Title followed by the page content. To create a link to another page, enclose the page name in square brackets, such as [Lemons]. When typing [, autocomplete suggestions appear to help locate the desired page. Every wiki must start with a Home page, and every other page must be reachable through links starting from Home. This requirement promotes a simple organization structure without hierarchical organization. Pages function similarly to files and directories. When saving the wiki file, Mull formats it based on the page links, automatically determining their order. You can link to various file types, including photos, spreadsheets, or any other file, as long as they exist in a directory next to the wiki file, named after the wiki but with the .mull extension replaced by _files. For example, if the wiki is my_wiki.mull, its files are stored in my_wiki_files. Files in the wiki_files directory can be linked using [/photos/beach.jpg] if the file is located at my_wiki_files/photos/beach.jpg. Directories can also be linked using [/photos/]. To link a directory, the link implicitly encompasses all files within it. An empty directory must have its own link. A portal is a feature that provides a window into another page, displaying its contents and keeping them synchronized. When the wiki is formatted, such as on save, a portal line will be replaced with a copy of the linked page. If a page includes a list that needs to remain sorted, Mull can assist by executing a sorting script. Create a file named wiki_files/scripts/sort.sh containing the sorting script and make it executable with chmod +x wiki_files/scripts/sort.sh. Mull will automatically sort the list each time the wiki is formatted. Note that the sorting script can accept arguments, allowing for reverse sorting with ::: sort -r. Using a script in a block counts as linking to it, eliminating the need for explicit linking from the wiki. Unused scripts still require a link, such as [/scripts/sort.sh], somewhere within the wiki. To include special symbols like [ or ] literally, prepend a backslash, like \\[. Backticks can be used to represent verbatim text, similar to Markdown. Fenced code blocks are supported with syntax highlighting for common programming languages, and no escaping is required inside page titles or code blocks. Mull supports keyboard shortcuts for navigation and editing, which align with standard Visual Studio Code and Cursor shortcuts and can be remapped if necessary. To run Mull, open a .mull file in the Visual Studio Code or Cursor editor or execute it from the command line in a CI job. The binary is installed first, followed by the respective IDE extension. The installation command installs both the binary and the extension, and it can be re-run to update to the latest version. The installation script accepts optional environment variables, such as specifying the installation path. If you encounter issues with the installation path, you may need to adjust the mull.executablePath setting in Visual Studio Code or Cursor. The installation script supports various environment variables, and you can refer to the documentation for details on their usage. On macOS or Linux (AArch64 or x86-64), install Mull using the provided command, which installs both the binary and the Visual Studio Code and Cursor extensions. Update the binary and extension by running the command again. For Windows (AArch64 or x86-64), download the binary, rename it to mull (or mull.exe if file extensions are visible), and place it in the %PROGRAMFILES% directory. Add the directory path to the PATH environment variable under System variables in the Control Panel. To update an existing installation, simply replace the existing binary. Cargo users can install Mull by running the command with the --force flag. Ensure Visual Studio Code or Cursor is installed before installing the Mull extension, which can be downloaded from the latest release.",
  "summary": "I've been writing notes as plain text files since forever, and it occurred to me that note-taking could benefit from the typical features that a language server provides: clickable links, autocomplete, hover previews, formatting, diagnostics, refactoring, etc. So I built a little language server and a vscode extension which adds syntax highlighting. Note-taking now feels more like writing code,…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}