← ClaudeAtlas

google-docslisted

Read and edit Google Docs via the Docs v1 REST API. Use when the user mentions a Google Doc, reading a document's text, creating a doc, inserting or replacing text, or exporting a doc's content.
AceDataCloud/Skills · ★ 13 · AI & Automation · score 73
Install: claude install-skill AceDataCloud/Skills
Drive **Google Docs** via `curl + jq`. The user's OAuth bearer token is in `$GOOGLE_DOCS_TOKEN`; every call needs `Authorization: Bearer $GOOGLE_DOCS_TOKEN`. Base URL: `https://docs.googleapis.com/v1/documents`. The token carries `documents.readonly` (+ identity); writes need `documents`. Failures are `{"error":{"code","message","status"}}` — show verbatim. `401` = re-install. `403 PERMISSION_DENIED` on a write = read-only scope. The doc id is the `…/document/d/<ID>/edit` segment of the URL. ```bash D="https://docs.googleapis.com/v1/documents"; AUTH="Authorization: Bearer $GOOGLE_DOCS_TOKEN" # Read the document. The body is a tree of structural elements; pull plain text: curl -sS -H "$AUTH" "$D/DOC_ID" \ | jq -r '.title, ([.body.content[]?.paragraph?.elements[]?.textRun?.content] | join(""))' ``` ## Create & edit ```bash # Create an empty doc curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \ -d '{"title":"Meeting notes 2026-06-21"}' "$D" | jq '{documentId, title}' # Insert text at the start (index 1) via batchUpdate (confirm first) curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \ -d '{"requests":[{"insertText":{"location":{"index":1},"text":"Hello\n"}}]}' \ "$D/DOC_ID:batchUpdate" | jq '.documentId' # Replace all occurrences of a placeholder curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \ -d '{"requests":[{"replaceAllText":{"containsText":{"text":"{{name}}","matchCase":true},"replaceText":"Alex"}}]}' \ "$D/