Skip to content
Switch branches/tags
Go to file
Closes GH-1000.

Reviewed-by: Titus Wormer <>
46 contributors

Users who have contributed to this file

@wooorm @ben-eb @s0 @remcohaszing @benabel @CanRau @brendo @inokawa @wataru-chocola @vhf @vcarl @Swizec



remark is a tool that transforms markdown with plugins. See the monorepo readme for info on what the remark ecosystem is. This page lists existing plugins.


List of plugins

See awesome-remark for the most awesome projects in the ecosystem. More plugins can be found on GitHub tagged with the remark-plugin topic.

👉 Note: some plugins don’t work with recent versions of remark due to changes in its underlying parser (micromark). Plugins that are up to date or unaffected are marked with 🟢 while plugins that are currently broken are marked with ⚠️.

💡 Tip: remark plugins work with markdown and rehype plugins work with HTML. See rehype’s List of plugins for more plugins.

The list of plugins:

List of presets

Use GitHub search to find available and often inspirational presets.

List of utilities

See mdast for a list of utilities that work with the syntax tree. See unist for other utilities which work with mdast and other syntax trees too. Finally, see vfile for a list of utilities working with virtual files.

Use plugins

To use a plugin programmatically, call the use() function. To use plugin with remark-cli, pass a --use flag or specify it in a configuration file.

Create plugins

To create a plugin, first read up on the concept of plugins. Then, read the guide on “Creating a plugin with unified”. Finally, take one of existing plugins, which looks similar to what you’re about to make, and work from there. If you get stuck, discussions is a good place to get help.

You should pick a name prefixed by 'remark-' (such as remark-lint). Do not use the remark- prefix if the thing you create doesn’t work with remark().use(): it isn’t a “plugin” and will confuse users. If it works with mdast, use 'mdast-util-', if it works with any unist tree, use unist-util-, and if it works with virtual files, use vfile-.

Use default exports to expose plugins from your packages, add remark-plugin keywords in package.json, add a remark-plugin topic to your repo on GitHub, and create a pull request to add the plugin here on this page!