Google Docs Markdown Export

SkillDocs & knowledge

Export Google Docs as clean markdown via native URL parameter. No auth needed for public docs. Use when fetching Google Doc content for vault ingestion, runbook building, or any doc-to-markdown pipeline.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Google Docs Markdown Export skill

What this skill tells your AI

The instructions your AI receives, as published by joelhooks/joelclaw in skills/google-docs-md/SKILL.md and read by ahel’s review.

Google Docs natively supports markdown export via a URL parameter. This is the most reliable way to get markdown from a Google Doc — better than defuddle, jina, or any scraping tool.

URL Pattern

For any Google Doc URL like:

https://docs.google.com/document/d/{DOC_ID}/edit?tab=t.0

Replace everything after the document ID with export?format=md:

https://docs.google.com/document/d/{DOC_ID}/export?format=md

Extracting the Document ID

The DOC_ID is the long alphanumeric string between /d/ and the next /:

# From any Google Docs URL, extract the ID:
echo "https://docs.google.com/document/d/1mt8aYM88Jj5qkep1xYC5vj0wBlbX2u6gdxhf_puaiQI/edit?tab=t.0" \
  | grep -oP '(?<=/d/)[^/]+'
# → 1mt8aYM88Jj5qkep1xYC5vj0wBlbX2u6gdxhf_puaiQI

Fetching

# Public docs — no auth needed, follow the 307 redirect:
curl -L "https://docs.google.com/document/d/${DOC_ID}/export?format=md" -o output.md

# Private docs — needs OAuth bearer token:
curl -L "https://docs.google.com/document/d/${DOC_ID}/export?format=md" \
  -H "Authorization: Bearer ${TOKEN}" -o output.md

Important: The endpoint returns a 307 redirect. Always use curl -L (follow redirects) or equivalent.

Other Export Formats

The same pattern works for other formats:

  • export?format=pdf — PDF
  • export?format=docx — Word
  • export?format=txt — Plain text
  • export?format=html — HTML
  • export?format=epub — ePub

Batch Pattern

When you have a list of Google Doc URLs (e.g. extracted from Front emails):

# Extract doc IDs from a file of URLs
grep -oP '(?<=/d/)[^/]+' urls.txt | sort -u | while read id; do
  echo "Fetching $id..."
  curl -sL "https://docs.google.com/document/d/${id}/export?format=md" \
    -o "docs/${id}.md"
  sleep 1  # Be polite
done

When to Use

  • Always prefer this over defuddle/scraping for Google Docs
  • Works for public docs without any authentication
  • Native markdown quality is superior to any HTML→markdown conversion
  • Handles tables, formatting, links, images (as URLs) correctly

Limitations

  • Private docs require a valid OAuth token (use gog when available)
  • Very large docs may take a few seconds
  • Images are referenced as URLs, not embedded
  • Comments and suggestions are not included in the export

Signals

GitHub stars
64
Forks
2
Last commit
Sep 2026

ahel review

  • S4info
    community integration, published by joelhooks, not google

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Item type
skill
Key
google-docs-md
Source
github.com/joelhooks/joelclaw