Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>ZeoliteNew to Visual Studio Code? Get it now.
Zeolite

Zeolite

ScientificAI

|
18 installs
| (0) | Free
WYSIWYG Markdown editor for Zettelkasten-style linked notes — wikilinks, DataviewJS, tasks, and a PDF deep-link viewer.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Zeolite

A WYSIWYG Markdown editor for Zettelkasten-style linked notes, inside VS Code.
Build a network of [[wikilinked]] notes in plain-text Markdown — live formatting, DataviewJS, tasks, and more.


Why Zeolite?

Zeolite turns VS Code (and Cursor / VSCodium / Windsurf via Open VSX) into a what-you-see-is-what-you-get Markdown editor for a Zettelkasten — a vault of atomic notes wired together with [[wikilinks]]. You keep your plain-text, local-first .md files and Git workflow — but you get live rendering, clickable note links, and a Dataview-powered overview, without leaving your editor.

It opens .md / .markdown files in a rich editor by default; the raw text is always one click away (the View Source button).

Features

  • WYSIWYG editing — Real-time formatting as you type (powered by Tiptap / ProseMirror). Changes sync both ways with the underlying .md file.
  • [[Wikilinks]] — Rendered as clickable links that navigate to the target note. Type [[ to get an autocomplete dropdown of notes in your vault. Rename a note inside VS Code and Zeolite auto-updates every [[link]] to it across the whole vault (with an Undo toast).
  • DataviewJS — Run ```dataviewjs code blocks against your vault: dv.pages(), tags, tasks, headings, dv.table() / dv.list() / dv.taskList(), and more. Backed by an in-memory vault scan, so queries are instant.
  • Frontmatter as a property table — YAML frontmatter renders as a clean, foldable property table, with clickable [[wikilinks]] in values. Toggle to raw YAML anytime.
  • Tasks — - [ ] checkboxes, an @-triggered due-date picker inside task items, and a right-click menu for priority / blocker emojis. Toggling a task in a Dataview result writes back to the source note.
  • Agents overview — Compact sidebar cards for Claude Code and Codex terminals and editor tabs. See observed CLI activity, assign your own names, and click to return to the original terminal or tab. Extension-tab activity tracking is not yet supported; see Agents below.
  • Bold delimiter preservation — Existing __bold__ and **bold** keep their original delimiters when edited and saved, including when both styles appear in one document. Newly applied bold defaults to **.
  • Mermaid diagrams — Live preview with view/edit toggle, ELK layout, copy-as-PNG, and lightbox zoom.
  • Rich content — Syntax-highlighted code blocks (19+ languages), tables, GitHub-style alerts (> [!NOTE], [!WARNING], …), images (paste / drag-drop / lightbox / inline path editing), a Table-of-Contents sidebar, heading folding, and in-editor search (Cmd/Ctrl+F).
  • Export — Export to PDF or DOCX (Mermaid diagrams included).
  • Audio notes — Record audio straight into a note and embed it (see platform note below).
  • Themes & typography — 12 built-in themes, adjustable font and per-heading sizes, zoom.

Roadmap (work in progress)

Zeolite is under active development — more features are planned. The current focus is extending the in-app PDF deep-link ([[paper.pdf#page=7]] jumps straight to page 7) to other document formats, so a note can link directly to a specific location in a source — without converting to PDF:

  • Code / text / data files — [[script.py#L42]], [[run.log#L1200]] jump to a line.
  • Audio / video — [[talk.mp4#t=3m20s]] jumps to a timestamp.
  • Slides — [[deck.pptx#slide=12]] jumps to a slide.
  • Spreadsheets — [[data.xlsx#sheet=Tensile&cell=B47]] jumps to a cell.
  • eBooks / Word — [[book.epub#…]], [[report.docx#heading=Methods]].

The goal: open and navigate any referenced document inside the note, turning a markdown vault into a deep-linkable knowledge base. Some formats are intentionally out of scope (documented when released). Feedback and feature requests are welcome.

Install

Search “Zeolite” in the VS Code Extensions view (or the Cursor / VSCodium extensions panel) and click Install.

Usage

Just open any .md / .markdown file — Zeolite is the default editor for Markdown. Use the toolbar for formatting, recording, refresh, and View Source (to drop into the raw text editor). To re-run DataviewJS and reload the file from disk, click the Refresh button in the toolbar.

For the best experience, open your vault folder as your VS Code workspace so wikilink autocomplete, rename-relinking, and DataviewJS can see all your notes.

How wikilinks resolve (and when they can break)

Filename-style links like [[note]] are resolved by searching the whole workspace by filename at click time — so you can freely move files between folders and the links keep working. Renaming or moving a note inside VS Code (Explorer F2 / drag) additionally rewrites every [[link]] to it across the vault, with an Undo toast.

Three cases still deserve care, because links can silently break or point to the wrong note:

  1. Duplicate filenames — if two notes share a name (say note.md in two folders), [[note]] picks one deterministically (same folder as the current note first, then alphabetical). Reorganizing folders can change which one wins.
  2. Path-style links — [[folder/note]] is pinned to that path and breaks when the target moves. Prefer filename-style links if you reorganize often.
  3. Renaming outside VS Code — changing a file's name in Finder/Explorer or another app breaks [[old-name]] links, since Zeolite never sees the rename. Rename inside VS Code to get automatic relinking. (Merely moving a file to another folder outside VS Code is fine — filename-style links still resolve.)

Rule of thumb: open the vault's top-level folder, prefer filename-style links, rename inside VS Code — then reorganizing your folder tree is safe.

Agents — one place for your coding sessions

Open Zeolite → Agents to collect your Claude Code and Codex sessions in one sidebar. Zeolite discovers CLI processes in VS Code's editor-area and panel terminals, even when their titles do not contain claude or codex. This works locally or on a macOS/Linux Remote-SSH server where Zeolite is installed. Recognized agent editor tabs also appear in the list.

  1. If a terminal is missing, use Register Agent Terminal from the Command Palette or the registration button in Agents.
  2. For CLI activity, run Zeolite: Connect Agent Hooks, choose the provider, and review the configuration change. Installation alone does not enable hooks. Codex may require a separate /hooks trust review.
  3. Click a card's large status area to return to its terminal or editor tab. Use ✎ to set a Zeolite-only alias without renaming the actual terminal. × hides the card for the current extension run; it does not stop the agent or close the terminal.

Cards distinguish the latest observed events:

Indicator Meaning
Blue ● Response processing or a tool call was observed.
Yellow ✓ A response-end event was observed, not necessarily completion of the overall task.
Green ○ An input-waiting notification was observed.
Ⅱ Approval requested, or the process is suspended; read the label to distinguish them.
! A response error was observed.
— Extension tab: activity integration is not supported yet.

Response end and input waiting are separate signals, not a guaranteed sequence. Process exit and suspension take precedence over old activity events. Colors follow the active VS Code theme.

Remote-SSH setup (0.6.1+): install Zeolite in SSH: your-server from the Extensions view, then reload the remote window. Run Zeolite: Connect Agent Hooks in that window for each provider you use; local hook configuration is not copied to the server. The confirmation shows the server's configuration path. The process scan, hook relay, and authenticated loopback listener all run on the server—no forwarded port or externally exposed listener is needed. If a VS Code Server update moves its Node executable, reconnect the hooks to refresh the saved command. An SSH command typed inside an ordinary local terminal is not a Remote-SSH workspace and is not covered by this integration.

Current limits: automatic process-based discovery requires macOS/Linux and the CLI must run on the same host and in the same process namespace as Zeolite. Windows process discovery and cross-host/container matching are not supported. Ambiguous process trees are left unlinked. Claude Code and Codex extension tabs support navigation, aliases, and hiding, but their work status is not yet connected—reinstalling hooks does not fix that limitation. CLI aliases survive Reload only when the terminal's shell PID and start time still match; extension-tab aliases last for the current extension run. In a remote workspace, host-side features such as PDF export also use the server's installed tools (including Chrome/Chromium).

Privacy: hook setup preserves existing configuration and creates a backup. The bridge uses an authenticated loopback connection and process-identity matching. Conversation previews are off by default, and the compact cards show no conversation or command text. This integration does not scan saved conversation transcripts. Use Zeolite: Remove Agent Hooks to remove Zeolite's hook entries.

AI agent editing & the WYSIWYG round-trip

When you open a .md file in Zeolite, the Markdown is parsed into a rich-text document tree and serialized back on every save. Existing bold delimiters (__ and **) are preserved, but this round-trip can still normalize other formatting that is semantically identical but differs in bytes — for example, ordered list markers 1. 2. 3. → 1. 1. 1., or table column alignment whitespace. If an AI coding agent (Claude Code, Cursor, Copilot, etc.) edits the same file while Zeolite has it open, the agent's next edit may fail because the bytes it expects no longer match. This is a known limitation of WYSIWYG Markdown editors, not a bug in the agent. If the agent reports a string-matching or "linter" failure on a file you have open in Zeolite, have it re-read the file before retrying.

Tip — math in the terminal: If your notes contain LaTeX math and you use Claude Code to manage them, install claude-math to render equations directly in the terminal output.

Settings

All settings live under the zeolite.* namespace (e.g. zeolite.imageSaveFolder, zeolite.excludeFolders, zeolite.chromiumPath, zeolite.exportPageSize, zeolite.fontSize, zeolite.headingSizes.*). Search “Zeolite” in VS Code Settings.

Platform & requirements notes

  • PDF export uses a Chromium-based browser already installed on your machine (Chrome / Edge / Chromium / Brave). Zeolite does not bundle one. If auto-detection fails, set zeolite.chromiumPath.
  • Audio recording currently ships an arm64 macOS recorder only. Recording is unavailable on Intel macOS, Windows, and Linux; playing and embedding existing audio works on all platforms.

Security note

Opening a .md file that contains a ```dataviewjs block will execute that JavaScript (it's how DataviewJS works). The code runs inside the sandboxed webview — it cannot touch your filesystem or shell — but you should still only open notes you trust, the same as you would with any script.

The name

A zeolite is a porous crystal lattice — the same shape as a graph of linked notes. It also reads as a Zettelkasten Editor that's Open, Local, Interactive, Threaded, and Extensible.

Acknowledgement

Originally forked from zaaack/markdown-editor (MIT), then rebuilt on Tiptap with wikilinks, DataviewJS, tasks, and more. Built with VS Code, Tiptap, and marked.

License

MIT — © 2017 zaaack (original), © 2026 Yang Jeong Park (Zeolite).

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft