# Save — Convert Any Webpage to Clean Markdown (Full Reference) > Save is a Chrome extension that converts any webpage to clean, structured Markdown with one click. It uses AI-powered content extraction (Google Gemini) with 300+ site-specific prompts to produce well-formatted Markdown optimized for note-taking apps (Obsidian, Notion) and AI workflows (ChatGPT, Claude, Gemini). Built for developers, writers, researchers, and AI practitioners. This is the full reference document for LLMs and AI agents. A shorter overview is available at /llms.txt. -------------------------------------------------------------------------------- ## 1. What Save is Save is a three-part product: 1. **Save (Chrome extension)** — captures the current tab and converts it to Markdown via an AI backend. Works on Chrome, Edge, Brave, and Arc (Manifest V3). 2. **Save Vault (macOS menu bar app)** — receives Markdown from the extension via localhost:7421, writes it into `~/Documents/Save Vault//`, and exposes those files to AI clients via MCP. 3. **Save MCP** — an MCP server built into Save Vault. Launched with `--mcp`, it exposes the user's saved pages to Claude Desktop, Claude Code, and any MCP-compatible client. Together they form a "save the web, read it with AI" loop: - Save pages in Chrome with one click. - They land as Markdown files in a local folder that doubles as an Obsidian vault. - Claude reads them via MCP and grounds answers in the user's own knowledge. ## 2. Website structure - `/` — homepage (this project's marketing site), available as HTML and as Markdown via Accept: text/markdown or /index.md - `/pricing` — pricing page - `/mac` — Save Vault download page for macOS - `/blog/*` — blog posts (English) with localized variants under `//blog/*` - `/privacy`, `/terms` — legal - `/welcome` — post-install welcome page (5 locales) - `/sitemap-index.xml` — sitemap (legacy `/sitemap.xml` redirects here) - `/robots.txt` — crawler rules (permissive for AI bots) - `/llms.txt` — short agent-readable overview - `/llms-full.txt` — this document - `/.well-known/mcp/server-card.json` — MCP Server Card for Save MCP - `/.well-known/agent-card.json` — A2A Agent Card (minimal) - `/.well-known/agent-skills/index.json` — index of skills Save exposes - `/.well-known/api-catalog` — RFC 9727 link set for Save's HTTP APIs Locales supported on marketing pages: en (default), fr, es, de, ja, it, ko, pt-br, zh-tw, ru, pl, vi. ## 3. What Save does (extension behaviour) ### 3.1 Removed from output - Advertisements and tracking scripts - Navigation menus, sidebars, site chrome - Cookie and consent banners, pop-ups, modal overlays - Boilerplate footer links and duplicated navigation - Inline JavaScript and style noise ### 3.2 Preserved in output - Headings (H1–H6), preserving document hierarchy - Ordered and unordered lists, including nested lists - Inline and block code, with language hints when detectable - Tables (converted to GitHub-flavored Markdown) - Links and anchor references - Image references with alt text and captions - Blockquotes and emphasis ### 3.3 Capture pipeline 1. **Live DOM preprocessing** (non-destructive): `promoteNoscriptImages()` and `flattenShadowDOM()` enrich the DOM without removing elements. 2. **DOM extraction**: scoring-based article finder (Readability-style) plus clone preprocessing — `normalizeCodeBlocks`, `deduplicateImages`, code-highlighter-aware selectors (Prism, Highlight.js, Shiki). 3. **Screenshot fallback**: when extracted text is empty, dominated by consent banners, or has no real prose, Save captures a full-page screenshot (port of GoFullPage's `page.js`) and sends it to Gemini for visual extraction. 4. **Site-specific prompt**: a router maps the URL to one of 20 site categories (news, e-commerce, social, video, code, docs, recipe, jobs, travel, reference, …). The matching prompt is concatenated with the base template before the AI call. 5. **Post-processing**: the AI response is validated, trimmed, and formatted. Headings are re-anchored and relative URLs are absolutized. ### 3.4 Specialized handlers - **YouTube videos**: transcript is extracted from the DOM (four fallback methods), summarized by the AI, and returned as a Markdown document with overview, key points, and timestamped sections. - **Twitter/X threads**: full thread is captured in order with attribution and timestamps. - **Instagram Reels**: audio is transcribed by the AI and returned as Markdown with caption and oEmbed context. - **TikTok**: caption, hashtags, and metadata are extracted from the post DOM. ## 4. Supported websites (300+ site rules) Save ships with AI prompts tuned for categories including: - **Social media**: Twitter/X threads, Reddit posts and comment trees, LinkedIn articles and posts, Hacker News stories and threads, Mastodon posts. - **Video**: YouTube videos (AI-summarized transcripts), Vimeo, TED talks, conference recordings. - **E-commerce**: Amazon product pages (structured specs), eBay listings, Etsy items, Shopify stores, product reviews. - **Code and docs**: GitHub READMEs and issues, GitLab, Bitbucket, Stack Overflow Q&A, MDN, Python docs, Rust docs, TypeScript handbook, Go doc, Kubernetes docs. - **Publishing**: Medium, Substack, Ghost, WordPress, personal blogs. - **News**: NYT, Washington Post, The Guardian, BBC, Reuters, AP, The Atlantic, New Yorker, Wired, FT, Bloomberg, Le Monde, Le Figaro, Les Echos, Süddeutsche Zeitung, Der Spiegel. - **Reference**: Wikipedia (article, talk, history), Wiktionary, arXiv, Google Scholar results. - **Recipes**: AllRecipes, Serious Eats, Food Network, NYT Cooking, personal recipe blogs (ingredients/steps normalized). - **Travel**: Booking.com, Airbnb, TripAdvisor, Hotels.com, expedia, kayak, google travel. - **Jobs**: LinkedIn jobs, Indeed, Glassdoor, Lever, Greenhouse, Workable. - **Any other webpage**: a generic extraction prompt handles sites without a specific rule. ## 5. Output quality - Markdown is valid CommonMark + GFM extensions (tables, strikethrough, task lists). - Token efficiency: clean Markdown typically uses ~3–5× fewer tokens than the original HTML when consumed by an LLM. - Deterministic structure across repeated saves of the same page, up to DOM mutations. - Image references are kept as URLs (no binary embedding) to keep files small. - Code blocks carry a language hint whenever the source page exposes one. ## 6. Save Vault (macOS app) Save Vault is a SwiftUI menu bar application: - **Bundle ID:** md.save.Save - **Storage root:** `~/Documents/Save Vault/` - **Default knowledge base:** `General` (created on first launch) - **HTTP listener:** `localhost:7421` (for the Chrome extension) - **MCP mode:** launched with `--mcp`, speaks JSON-RPC over stdio ### 6.1 HTTP API (localhost:7421) | Method | Path | Purpose | |--------|------|---------| | GET | /ping | Health check | | GET | /kbs | List knowledge bases | | POST | /kbs | Create a knowledge base | | POST | /kbs/:name/files | Save a markdown file into a KB | | GET | /search?q=query | Full-text search across all KBs | ### 6.2 MCP tools exposed to Claude | Tool | Purpose | |------|---------| | list_knowledge_bases | List KBs with file counts and last-modified timestamps | | list_files | List files in a given KB | | read_file | Read a file by KB + filename | | search | Full-text search across the whole vault | Enable the MCP by toggling "Connect to Claude" inside Save Vault. Disable it to return Claude to a stock generalist. ## 7. Pricing and limits - **Free:** 3 saves per month. Tracked in chrome.storage; resets monthly. - **Plus:** Unlimited saves. $5.99/month or $34.99/year. A 500 saves/month fair-use policy applies for abuse protection. Billed via Stripe. - **Chrome Web Store:** https://chromewebstore.google.com/detail/save-%E2%80%94-web-to-markdown/mamnlljnkigkhppbjhmpdeocobcbobdp ## 8. Privacy - Captured page content is sent to Save's Cloudflare Workers API, then to the AI provider (Google Gemini primary, Anthropic Claude fallback) for extraction. - Page content is not stored server-side beyond the duration of a request. - PostHog is used for product analytics on the extension and the marketing site. Stripe handles payments. - Local saves via Save Vault never leave the user's machine. See: https://www.minibase.md/privacy ## 9. Terms See: https://www.minibase.md/terms ## 10. Brand - **Name:** Save - **Visual mark:** a bookmark (retired the acorn mark in March 2026; the bookmark is the canonical mark across extension, website, favicon, and macOS app). - **Primary color:** #F4511E (Save Orange) - **Wordmark:** "Save" - **Button style:** pill-shaped, 9999px border radius - **Spacing base:** 4px ## 11. Contact - **Email:** hello@minibase.md - **Web:** https://www.minibase.md ## 12. Machine-readable discovery - robots.txt: https://www.minibase.md/robots.txt - Sitemap: https://www.minibase.md/sitemap-index.xml - LLMs.txt (short): https://www.minibase.md/llms.txt - LLMs.txt (full): https://www.minibase.md/llms-full.txt - MCP Server Card: https://www.minibase.md/.well-known/mcp/server-card.json - A2A Agent Card: https://www.minibase.md/.well-known/agent-card.json - Agent Skills Index: https://www.minibase.md/.well-known/agent-skills/index.json - API Catalog: https://www.minibase.md/.well-known/api-catalog - Markdown alternate: https://www.minibase.md/index.md (also served on `/` with Accept: text/markdown) --- # Save API (for developers and AI agents) Hosted HTTP API that turns any URL into clean Markdown — the same engine as the extension, callable from code. Built for AI agents, RAG pipelines, and scrapers. - Endpoint: POST https://api.savemarkdown.co/v1/convert - Get a free key (no human in the loop): POST https://api.savemarkdown.co/v1/signup with {"email":"you@example.com"} → returns a sk_test_ key, 100 conversions/month free, no card. Then use it as the Bearer token. - Auth: Authorization: Bearer sk_live_… (server-side only; never ship a key in a browser) - Body: {"url": "https://…", "template?": "clean|summary|outline|…", "render?": "auto|never|always", "fresh?": false} - Response: {"markdown": "…", "meta": {"tier": 1, "cached": false, "domain": "…", "template": "markdown"}, "usage": {"credits": 1}} - Tiered engine: cheap server-side fetch → headless render only when a page is a JS shell → boilerplate stripped. meta.tier tells you which rate applied (1 = fetch/extract, 2 = render, "adapter" = platform channel). - Pricing: Markdown $2 / 1,000 pages · Rendered (JS) $8 / 1,000 pages · AI-formatted templates $3/$25 per 1M input/output tokens. Free trial 100 pages. Pay as you go. - Walled gardens: YouTube via official transcript channel; X/Instagram/TikTok best-effort; no ghost accounts or login-scraping. - Agent spec (markdown): https://www.minibase.md/api.md - Human docs: https://www.minibase.md/api - Request a key: hello@minibase.md - Discovery: agent-skills id save.api.url-to-markdown; /.well-known/api-catalog.json