Marksman is a language server that provides code assistance and intelligence for writing Markdown documents across multiple editors.
Marksman solves the problem of Markdown editing lacking the intelligent features developers expect from modern editors. It implements the Language Server Protocol to deliver completion, goto definition, find references, rename refactoring, and diagnostics directly within your editor. The tool supports standard Markdown links alongside wiki-link-style references, enabling Zettelkasten-like note-taking workflows. For wiki-links specifically, it detects broken references and identifies duplicate or ambiguous headings.
The tool suits developers and note-takers who want editor-agnostic Markdown assistance without leaving their preferred environment. It works across macOS, Linux, and Windows as a self-contained binary. Marksman integrates with VSCode through a dedicated extension, with Neovim supporting it via mason.nvim, nvim-lspconfig, and CoC-marksman. Vim users can use it through Ale or LSP plugins. Emacs integration is available through LSP Mode with automatic server installation or through Eglot. Helix, Kakoune, Sublime Text, BBEdit, and Zed also support Marksman through their LSP implementations.
The project shows consistent maintenance with regular updates addressing user-reported issues and feature requests. Development activity includes responsive engagement with community discussions and pull requests. The codebase remains actively refined, with attention paid to cross-platform compatibility and editor integration stability.