Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Deep Research Formatter

Longxiao ZhangLongxiao Zhang47 downloads

Normalize ChatGPT Deep Research markdown exports by removing unreadable inline markers.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates2

Deep Research Formatter is an Obsidian plugin for cleaning Markdown exported from ChatGPT Deep Research.

Deep Research exports often contain inline marker tokens such as citation, entity, and URL annotations that are readable inside ChatGPT but noisy in plain Markdown. This plugin removes or rewrites those markers so the document is easier to read in Obsidian, including both private-use marker wrappers and exported 【...†...】 citation blocks.

What it does

  • Removes cite markers entirely.
  • Removes exported 【...†...】 citation blocks entirely.
  • Replaces entity markers with their readable label.
  • Replaces url markers with their readable label.
  • Falls back safely for unknown marker types when possible.
  • Preserves YAML frontmatter, fenced code blocks, and inline code.
  • Applies only minimal whitespace cleanup after marker removal.

Requirements

  • Node.js 20 or later
  • npm 10 or later
  • Obsidian 1.5.0 or later

Project layout

  • src/: plugin source code
  • tests/: automated tests
  • manifest.json: Obsidian plugin manifest
  • versions.json: Obsidian version compatibility map
  • main.js: compiled plugin entry file

Install dependencies

npm install

Build

Create a production build:

npm run build

This compiles the plugin to main.js in the repository root and the CLI to dist/cli.js.

Development

Start esbuild in watch mode:

npm run dev

Run the automated tests:

npm test

If you also want a TypeScript-only check:

npx tsc --noEmit

Install into Obsidian

  1. Build the plugin with npm run build.
  2. Open your Obsidian vault folder.
  3. Create this plugin directory if it does not already exist:
<your-vault>/.obsidian/plugins/deep-research-formatter/
  1. Copy these files into that directory:
main.js
manifest.json
versions.json
  1. In Obsidian, open Settings -> Community plugins.
  2. Turn off Restricted mode if needed.
  3. Enable Deep Research Formatter.

Usage

Open a Markdown note exported from Deep Research, then use the Command Palette in Obsidian.

Available commands:

  • 清理当前笔记中的 Deep Research 标记
  • 清理当前选区中的 Deep Research 标记

Command behavior:

  • The first command cleans the entire active Markdown note.
  • The second command cleans only the current editor selection.
  • If no Deep Research markers are found, the plugin shows a notice and does nothing.

CLI usage

You can also format a vault directory, or any subdirectory inside it, from the command line:

npm run format:vault -- /path/to/your/vault

CLI behavior:

  • Recursively processes .md files under the target directory.
  • Skips .obsidian/, .git/, and node_modules/.
  • Rewrites only files whose content actually changes.
  • Prints a summary of scanned files, updated files, failures, and marker counts.
  • Returns exit code 1 for invalid arguments and 2 when one or more files fail to process.

Show the CLI help text:

npm run format:vault -- --help

Current marker handling

The current implementation recognizes the marker wrapper used in Deep Research exports and handles these marker types:

  • cite: removed
  • 【...†...】 citation blocks: removed
  • entity: replaced with readable text
  • url: replaced with readable text
  • unknown tags: best-effort readable fallback, otherwise removed

Notes

  • This plugin is intentionally conservative. It does not try to reformat the whole Markdown document.
  • It focuses on Deep Research marker cleanup only.
99%
HealthExcellent
ReviewPassed
About
Clean Markdown exported from ChatGPT Deep Research in Obsidian by removing inline cite markers and rewriting entity and URL annotations into readable labels. Preserve YAML frontmatter, fenced code blocks, and inline code, fall back safely on unknown marker types, and apply minimal whitespace cleanup.
FormattingMarkdown
Details
Current version
0.3.2
Last updated
2 weeks ago
Created
2 weeks ago
Updates
2 releases
Downloads
47
Compatible with
Obsidian 1.5.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
Longxiao ZhangLongxiao Zhangzhanglongx
GitHubzhanglongx
  1. Community
  2. Plugins
  3. Formatting
  4. Deep Research Formatter

Related plugins

Linter

Format and style your notes. Linter can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular Markdown contents like list, italics, and bold styles; and more with the use of custom rule options.

Blur

Create obfuscated blocks of text.

Columns

Create columns in Markdown.

Image Captions

Add captions to images with inline Markdown and link support. The caption format is compatible with the Commonmark spec and other Markdown applications.

Markdownlint

Use markdownlint to make the contents of your files more consistent.

Paste Reformatter

Reformats pasted text for precise control.

Importer

Import data from Notion, Evernote, Apple Notes, Microsoft OneNote, Google Keep, Bear, Roam, and HTML files.

Outliner

Work with your lists like in Workflowy or Roam Research.

Various Complements

Complete words similar to auto-completion in an IDE.

Easy Typing

Auto format when typing.