remark is a markdown processor powered by plugins that is part of the unified collective.
remark solves the problem of transforming and inspecting markdown by representing it as abstract syntax trees (ASTs). This approach allows plugins to examine and modify markdown content at a structural level rather than treating it as plain text. The tool works by parsing markdown into an AST representation called mdast, allowing plugins to operate on this structured data, then optionally converting the modified tree back to markdown or other formats. The ecosystem includes over 150 plugins that can be combined to achieve different outcomes, from adding support for GitHub Flavored Markdown and MDX to linting and formatting markdown files.
Developers should choose remark when they need to programmatically inspect or transform markdown content. It suits projects that require markdown processing on the server, client, CLIs, or Deno environments. The tool is compliant with CommonMark and can support GFM or MDX through plugins. If your goal is simply converting markdown to HTML with a few extensions, the README recommends micromark as a lighter alternative. remark is particularly valuable when you need to build custom markdown workflows or apply multiple transformations through its plugin system.
The project maintains a monorepo structure containing remark-parse for converting markdown to ASTs, remark-stringify for converting ASTs back to markdown, the core remark package combining both, and remark-cli for command-line usage. Development activity shows consistent engagement with the ecosystem, with the project serving as a foundational component within the unified collective alongside mdast and other related tools.