---
title: "Installation"
description: "Install Comark and choose a parser or renderer for HTML, ANSI, Vue, React, Svelte, or Angular to start working with Markdown in minutes."
canonical_url: "https://comark.dev/getting-started/installation"
---
# Installation

> Install Comark and choose a parser or renderer for HTML, ANSI, Vue, React, Svelte, or Angular to start working with Markdown in minutes.

## Quick start

Choose the output you need and render your first Markdown document in minutes.

<card-group cols="2">
<card icon="i-vscode-icons-file-type-html" title="HTML" to="https://comark.dev/rendering/html">
Server-side rendering and static generation without a framework.
</card>
<card icon="i-logos-vue" title="Vue" to="https://comark.dev/rendering/vue">
Use Comark in Vue 3 applications with full async component support and streaming.
</card>
<card icon="i-logos-nuxt-icon" title="Nuxt" to="https://comark.dev/rendering/nuxt">
Zero-config Nuxt module with auto-imported components and Nuxt UI integration.
</card>
<card icon="i-logos-react" title="React" to="https://comark.dev/rendering/react">
Use Comark in React and Next.js applications.
</card>
<card icon="i-logos-svelte-icon" title="Svelte" to="https://comark.dev/rendering/svelte">
Use Comark in Svelte 5 applications with snippets and streaming.
</card>
<card icon="i-logos-angular-icon" title="Angular" to="https://comark.dev/rendering/angular">
Use Comark in Angular 17+ applications with standalone components and streaming.
</card>
<card icon="i-lucide-terminal" title="ANSI" to="https://comark.dev/rendering/ansi">
Render Comark as styled terminal output for CLIs and developer tooling.
</card>
</card-group>

## Agent skill

To give coding agents the Comark skill (syntax, AST, renderers, streaming), install it from production:

```bash [Terminal]
npx skills add https://comark.dev
```

## IDE extension

Install the [Comark extension](https://marketplace.visualstudio.com/items?itemName=Nuxt.mdc) in **VS Code** or **Cursor** for syntax highlighting, bracket matching, document folding, and auto-completion in `.md` files using Comark syntax.

<card-group>
<card title="Comark Extension" icon="i-logos-visual-studio-code" color="neutral" variant="subtle" to="https://marketplace.visualstudio.com/items?itemName=Nuxt.mdc" target="_blank"></card>
</card-group>

Or within your editor, open Quick Open (`Ctrl+P` / `Cmd+P`) and run:

```bash
ext install Nuxt.mdc
```

## Browser extension

Install **Comark for GitHub** to better visualize Markdown files that use Comark components and attributes syntax on GitHub.

<card-group>
<card title="Chrome Web Store" icon="i-logos-chrome" color="neutral" variant="subtle" to="https://chromewebstore.google.com/detail/comark-for-github/mbbnjnblfplfjkakjfjkhhefhcdnhcin" target="_blank"></card>
<card title="Firefox Add-ons" icon="i-logos-firefox" color="neutral" variant="subtle" to="https://addons.mozilla.org/en-US/firefox/addon/comark-for-github-gitlab/" target="_blank"></card>
<card title="View Source / Manual Install" icon="i-simple-icons-github" color="neutral" variant="subtle" to="https://github.com/comarkdown/comark-webext" target="_blank"></card>
</card-group>

## Packages

Comark packages share one pipeline. The core parser produces a serializable `MarkdownDocument`, while string and UI renderers consume that document. Install the package that matches your output:

### UI frameworks

Use these when you need to render Markdown as an interactive document in Vue, React, Nuxt, Svelte, or Angular.

<tabs class="gap-0">
<tab-item label="Vue" icon="i-logos-vue">
<code-group>
```bash [pnpm]
pnpm add @comark/vue
```


```bash [npm]
npm install @comark/vue
```


```bash [yarn]
yarn add @comark/vue
```


```bash [bun]
bun add @comark/vue
```
</code-group>
</tab-item>
<tab-item label="React" icon="i-logos-react">
<code-group>
```bash [pnpm]
pnpm add @comark/react
```


```bash [npm]
npm install @comark/react
```


```bash [yarn]
yarn add @comark/react
```


```bash [bun]
bun add @comark/react
```
</code-group>
</tab-item>
<tab-item label="Nuxt" icon="i-logos-nuxt-icon">
```bash [Terminal]
npx nuxt add comark
```
</tab-item>
<tab-item label="Svelte" icon="i-logos-svelte-icon">
<code-group>
```bash [pnpm]
pnpm add @comark/svelte
```


```bash [npm]
npm install @comark/svelte
```


```bash [yarn]
yarn add @comark/svelte
```


```bash [bun]
bun add @comark/svelte
```
</code-group>
</tab-item>
<tab-item label="Angular" icon="i-logos-angular-icon">
<code-group>
```bash [pnpm]
pnpm add @comark/angular
```


```bash [npm]
npm install @comark/angular
```


```bash [yarn]
yarn add @comark/angular
```


```bash [bun]
bun add @comark/angular
```
</code-group>
</tab-item>
</tabs>

### String renderers

Use these when you need a string output with no UI framework involved like server-side HTML generation, static site builds, or CLI tooling.

<tabs class="gap-0">
<tab-item label="HTML" icon="i-vscode-icons-file-type-html">
<code-group>
```bash [pnpm]
pnpm add @comark/html
```


```bash [npm]
npm install @comark/html
```


```bash [yarn]
yarn add @comark/html
```


```bash [bun]
bun add @comark/html
```
</code-group>
</tab-item>
<tab-item label="ANSI" icon="i-lucide-terminal">
<code-group>
```bash [pnpm]
pnpm add @comark/ansi
```


```bash [npm]
npm install @comark/ansi
```


```bash [yarn]
yarn add @comark/ansi
```


```bash [bun]
bun add @comark/ansi
```
</code-group>
</tab-item>
</tabs>

### Core

`comark` is the parser and document foundation used by every renderer. Use it directly to parse Markdown, inspect or transform the AST, cache or serialize documents, and render them back to Markdown.

<note>
All framework packages re-export its types, so you only need to install `comark` separately if you're not using a framework renderer.
</note>

<code-group>
```bash [pnpm]
pnpm add comark
```


```bash [npm]
npm install comark
```


```bash [yarn]
yarn add comark
```


```bash [bun]
bun add comark
```
</code-group>

```typescript
import { parseMarkdown, createMarkdownParser } from 'comark'
import { renderMarkdown } from 'comark/render'

// Parse to AST
const document = await parseMarkdown(source)

// Transform nodes, then serialize back to Markdown
const output = await renderMarkdown(document)

// Reusable parser: initializes plugins once, faster for batch processing
const parseDoc = createMarkdownParser({ plugins: [shiki(), toc()] })
```

See the [Parse API](https://comark.dev/reference/parse) and [Render API](https://comark.dev/reference/render) for full options.

## Learn more

Learn more about Comark features and syntax:

<card-group cols="2">
<card icon="i-lucide-code" title="Markdown Syntax" to="https://comark.dev/syntax/markdown">
Learn the standard Markdown syntax and how to use it with Comark.
</card>
<card icon="i-lucide-component" title="Components" to="https://comark.dev/syntax/components">
Learn the component syntax for blocks, inline elements, props, and slots
</card>
<card icon="i-lucide-tag" title="Attributes" to="https://comark.dev/syntax/attributes">
Add classes, IDs, and custom attributes to Markdown elements
</card>
<card icon="i-lucide-plug" title="Plugins" to="https://comark.dev/plugins">
Add syntax highlighting, math, mermaid diagrams, and more
</card>
</card-group>

---

- [Comark Syntax](https://comark.dev/syntax/components)
- [Plugins](https://comark.dev/plugins)


## Sitemap

See the full [sitemap](https://comark.dev/sitemap.md) for all pages.
