Joelclaw google-docs-md
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.
install
source · Clone the upstream repo
git clone https://github.com/joelhooks/joelclaw
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/joelhooks/joelclaw "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/google-docs-md" ~/.claude/skills/joelhooks-joelclaw-google-docs-md && rm -rf "$T"
manifest:
skills/google-docs-md/SKILL.mdsource content
Google Docs Markdown Export
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
— Wordexport?format=docx
— Plain textexport?format=txt
— HTMLexport?format=html
— ePubexport?format=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
when available)gog - Very large docs may take a few seconds
- Images are referenced as URLs, not embedded
- Comments and suggestions are not included in the export