Open commons infrastructure · AGPL-3.0

Stop rewriting ChatGPT parsers
every product cycle.

decant-core is a shared extraction layer for the modern web — including AI conversations. Reusable parsers for 17 AI platforms, platform detection, and web article extraction, so the fix for a platform change lands once, in one place, instead of in every exporter.

import { detectPlatform, isAiChatUrl } from "decant-core";

if (isAiChatUrl(location.href)) {
  const { platform, parser } = detectPlatform(location.href);
  const result = await parser.parse();
  // result.messages -> structured, normalized, reusable
}

Boring infrastructure. Serious leverage.

AI platforms change constantly. Their DOM structures, rendering approaches, and features evolve, and parsers that worked yesterday break today. decant-core centralizes that work so the entire ecosystem shares the benefit.

17 AI chat parsers

ChatGPT, Claude, Gemini, Copilot, Perplexity, DeepSeek, Qwen and more — normalized messages, models, and metadata.

Web article extraction

Mozilla Readability, Defuddle, and Article-Extractor run concurrently and arbitrate by content-quality scoring.

Detection utilities

Tell an AI chat page from a regular page before you decide which parser to run —isAiChatUrl, detectPlatform, AI_CHAT_DOMAINS.

Math & Markdown handling

LaTeX normalization plus GFM tables and code fencing that survive round-trips into Obsidian, Logseq and Noteplan.

One package, tree-shakeable

Subpath imports (decant-core/ai/chatgpt, decant-core/article) let consumers pull only what they need.

Used by

AI Chat Exporter

Export, archive, and transfer AI conversations between platforms. The product is the demonstration; decant-core is the engine.

Decant

The distraction-free web clipper and research batcher. Batch-clips tabs to Markdown and PKM apps on top of the same extraction layer.

Your project can be next — see Contributing to add or fix a parser.