Skip to content

Install

Pick the surface that matches the job:

  • Pasting the page you are reading into a chat → the browser extension (Chrome, Firefox).
  • An agent reading public pages (Claude Code, Cursor, Codex, any MCP client) → the MCP server.
  • ChatGPT reading a public page → the ChatGPT plugin.
  • HTML that you or your agent already loaded (your own app, a page behind a sign-in, an intranet or tailnet host) → the MCP tool’s html argument, or the library.

What each one cannot do: Which Page2AI do I need?

The recommended way for humans clipping one page at a time.

Chrome Web Store: live since 2026-07-30. Install it from the store listing. To see the published version yourself, no account needed, ask the endpoint a real browser uses for extension updates:

Terminal window
curl -s 'https://clients2.google.com/service/update2/crx?prodversion=140.0&acceptformat=crx2,crx3&x=id%3Ddlpaaijcnbbmlfeohlphjpnbbcnomnno%26uc'

status="ok" plus a version means it is live. error-unknownApplication means it is not.

Install from a release. Every tagged version ships a zip built by CI on the releases page. Unzip it and load it unpacked via chrome://extensions → Developer mode → Load unpacked.

Build from source (for reviewers / local dev).

Terminal window
git clone https://github.com/igorsaevets/page2ai-extension
cd page2ai-extension
npm install
npx wxt zip -b chrome

Output lands in .output/page2ai-extension-<version>-chrome.zip. Load unpacked from .output/chrome-mv3/ via chrome://extensions → Developer mode → Load unpacked.

Trigger extraction. Press Alt+Shift+M on any page, or click the toolbar icon. Extracted Markdown is copied to your clipboard.

Firefox Add-ons (AMO): listed since 2026-07-31. Install it from the AMO listing. To see the published version yourself, no account needed: curl -s "https://addons.mozilla.org/api/v5/addons/addon/page2ai@igorsaevets.com/" and read current_version.version.

Build from source:

Terminal window
npx wxt zip -b firefox

Load in about:debugging → This Firefox → Load Temporary Add-on → pick manifest.json from .output/firefox-mv3/.

For Claude Desktop, Cursor, Windsurf, Zed, and any other MCP client.

One-liner install. Add this to your MCP client config:

{
"mcpServers": {
"page2ai": {
"command": "npx",
"args": ["-y", "page2ai-mcp"]
}
}
}

The unscoped page2ai-mcp package is a thin wrapper that reexports @page2ai/mcp; both are on npm.

Verify. From a shell:

Terminal window
npx -y page2ai-mcp

The server starts on stdio and responds to initialize and tools/list. Ctrl+C to exit. It needs Node.js 20 or later.

Full details: MCP server page.

Page2AI is in ChatGPT’s plugin directory: Page2AI · Public web page to Markdown. Page2AI itself needs no account or key.

  1. In ChatGPT on the web, desktop or mobile, open Plugins in the sidebar and find Page2AI, or open the link above.
  2. Select Install plugin.
  3. In a chat, give ChatGPT a page address and ask for the page as Markdown. ChatGPT uses an installed plugin when it fits the request; to pick it yourself, type @ and choose Page2AI, or select + and enter its name.

Whether you can install a plugin depends on your plan and, in a workspace, on what its administrators allow (OpenAI Help: Plugins in ChatGPT).

The plugin reads public pages only. It calls the hosted endpoint, which fetches the URL from its own server, without your cookies, and runs no page scripts: a page behind a sign-in comes back as its login page, and a page that JavaScript builds in the browser comes back nearly empty. For those, copy the page with the extension and paste it into the chat. The plugin takes a URL only and waits at most 20 seconds for a page.

For programmatic HTML → Markdown conversion in your own code.

Terminal window
npm install @page2ai/core
import { htmlToMarkdown, fetchAndConvert } from '@page2ai/core';
const html = '<article><h1>Hello</h1><p>World</p></article>';
const { markdown, title } = htmlToMarkdown(html, {
baseUrl: 'https://example.com/hello',
includeFrontmatter: true,
});
const result = await fetchAndConvert('https://docs.anthropic.com/en/api/messages');
console.log(result.markdown);

Both htmlToMarkdown (sync) and fetchAndConvert (async, with SSRF guard + timeout) are exported.

Node 18.17 or later. Zero external API calls; uses linkedom for parsing.


Written by Igor Saevets — LinkedIn · GitHub.