# Google Docs Manager

> Expert in Google Docs management. Use when creating, reading, updating, formatting, or managing Google Docs with markdown support, advanced formatting, tables with full manipulation, images with styling, lists, headers/footers, and table of contents.

- Skill: `diegosouzapw/google-docs-manager` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add diegosouzapw/google-docs-manager`
- Raw SKILL.md: https://api.skillmd.com/api/skills/diegosouzapw/google-docs-manager/raw
- Safety review: pending (external: skill-scanner PASS, skillspector WARNING)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: diegosouzapw (https://skillmd.com/u/diegosouzapw)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/diegosouzapw/google-docs-manager

---


# Google Docs Manager Skill

Expert in managing and editing Google Docs with comprehensive read/write/update operations, advanced formatting, styling, table of contents, images, and tables.

## Core Capabilities

### Document Management
- **Create & Copy:** Create blank documents or copy from templates (Template v2)
- **Content Editing:** Insert, update, delete text with advanced formatting
- **Structure Navigation:** Get document structure, navigate by headings

### Advanced Text Formatting
- **Text Styles:** Bold, italic, underline, strikethrough
- **Colors:** Apply RGB colors to text
- **Font Size:** Change font size in points
- **Alignment:** Left (START), center, right (END), justified

### Lists
- **Bulleted Lists:** Multiple styles (disc, checkbox, arrow, diamond)
- **Numbered Lists:** Hierarchical numbering (1. a. i.)
- **Remove Lists:** Convert lists back to normal text

### Advanced Table Operations
- **Create Tables:** Insert formatted tables from CSV with legends
- **Modify Structure:** Add/delete rows and columns dynamically
- **Update Content:** Edit individual cell content
- **Style Cells:** Apply background colors and padding
- **Merge/Unmerge:** Create complex table layouts

### Advanced Image Features
- **Insert Images:** Add images with legends from URLs
- **Resize:** Control image width and height
- **Borders:** Add colored borders to images
- **Text Wrapping:** Control how text flows around images

### Document Structure
- **Headers & Footers:** Add custom headers/footers with page numbers
- **Table of Contents:** Auto-generate and update TOC
- **Markdown Support:** Convert markdown to Google Docs (utility)

## When to Use This Skill

Use this skill when users request:

### Basic Operations
- "Create a new Google Doc from the template"
- "Read the content of this document"
- "Update chapter 3 in the document"
- "Convert this markdown to a Google Doc"
- "Get the content of the 'Introduction' section"

### Advanced Formatting
- "Make this text bold and red"
- "Apply amber color (#bf9000) to this status text"
- "Make this text green (#38761d) and bold"
- "Add strikethrough to this paragraph"
- "Center align this section"
- "Change the font size to 14 points"
- "Apply underline formatting"

### Lists
- "Create a bulleted list with checkboxes"
- "Add numbered bullets to these items"
- "Convert this list back to normal text"

### Table Operations
- "Add a table with this data"
- "Add 3 more rows to the table"
- "Delete the second column"
- "Update cell B3 with new data"
- "Merge the header cells"
- "Make the header row gray"

### Image Operations
- "Insert this image with a caption"
- "Resize the image to 600x400"
- "Add a black border to the image"

### Document Structure
- "Add a header with the company name"
- "Add a footer with page numbers"
- "Update the table of contents"

## Document Creation Workflow

### Template v2 - Standard Document Template

**IMPORTANT:** When creating new documents, always use the `copy` command to duplicate from "Template v2" rather than creating blank documents.

**Template v2 Document ID:** `1lcUWzmqtj-h0OMdM_NcvDN_qa4EyAfwCgE-IZUAlLPc`

**Workflow:**
1. **Copy Template v2:** Use `copy` command with Template v2 ID, new title, and target folder
2. **Populate Content:** Use `set-markdown` or `update-section` to add content

**Example:**
```bash
# Step 1: Copy Template v2 to create new document
google-docs-manager copy 1lcUWzmqtj-h0OMdM_NcvDN_qa4EyAfwCgE-IZUAlLPc "My New Article" --folder <FOLDER_ID>

# Step 2: Add content
google-docs-manager set-markdown <NEW_DOC_ID> content.md
```

**Why use Template v2?**
- Pre-configured styles (Title, Headings 1-5, Normal Text)
- Consistent formatting across all documents
- Saves time compared to styling from scratch
- **Medical articles must be written as text content, not markdown formatting**

## Available Tools

### Google Docs Manager Binary

**Location:** `~/.claude/skills/google-docs-manager/scripts/google-docs-manager`

**Type:** Standalone Go binary (no Python dependencies required)

**Source Code:** `~/projects/new/google-docs-manager/`

**Usage:**

**Basic Document Operations:**
```bash
# Create new document (blank)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager create <title> --folder <folder_id>

# Copy existing document (RECOMMENDED for creating from templates)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager copy <source_document_id> <new_title> --folder <folder_id>

# Read document (full content as markdown)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager read <document_id>

# Get document structure (headings with indices)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager get-structure <document_id>

# Set content from markdown
~/.claude/skills/google-docs-manager/scripts/google-docs-manager set-markdown <document_id> <markdown_file>

# Update section from markdown
~/.claude/skills/google-docs-manager/scripts/google-docs-manager update-section <document_id> <heading_text> <markdown_file>

# Insert after section
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-after <document_id> <heading_text> <markdown_file>

# Get document info
~/.claude/skills/google-docs-manager/scripts/google-docs-manager info <document_id>
```

**Text Operations:**
```bash
# Delete text range
~/.claude/skills/google-docs-manager/scripts/google-docs-manager delete-text <document_id> <start_index> <end_index>

# Format text (bold, italic, underline, strikethrough, color, font-size)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager format-text <document_id> <start_index> <end_index> \
    [--bold] [--italic] [--underline] [--strikethrough] \
    [--color "R,G,B"] [--font-size N]

# Color Format Details:
# --color accepts RGB values as comma-separated integers (0-255)
# Format: "R,G,B" where R=Red, G=Green, B=Blue
#
# Hex to RGB Conversion:
# To convert hex colors (e.g., #bf9000) to RGB:
# 1. Split hex into pairs: #bf9000 → bf, 90, 00
# 2. Convert each pair from hex to decimal:
#    - bf (hex) = 191 (decimal)
#    - 90 (hex) = 144 (decimal)
#    - 00 (hex) = 0 (decimal)
# 3. Result: "191,144,0"
#
# Common Colors:
# - Black: "0,0,0" (#000000)
# - White: "255,255,255" (#ffffff)
# - Red: "255,0,0" (#ff0000)
# - Green: "0,255,0" (#00ff00)
# - Blue: "0,0,255" (#0000ff)
# - Dark Red: "153,0,0" (#990000)
# - Dark Green: "56,118,29" (#38761d)
# - Amber/Orange: "191,144,0" (#bf9000)
#
# Examples:
# Apply amber color to text at indices 100-115:
~/.claude/skills/google-docs-manager/scripts/google-docs-manager format-text DOC_ID 100 115 --color "191,144,0"
#
# Apply dark green with bold:
~/.claude/skills/google-docs-manager/scripts/google-docs-manager format-text DOC_ID 200 210 --bold --color "56,118,29"
#
# Apply black color (default):
~/.claude/skills/google-docs-manager/scripts/google-docs-manager format-text DOC_ID 300 315 --color "0,0,0"

# Align paragraph
~/.claude/skills/google-docs-manager/scripts/google-docs-manager align-paragraph <document_id> <start_index> <end_index> <ALIGNMENT>
# ALIGNMENT: START (left), CENTER, END (right), JUSTIFIED
```

**List Operations:**
```bash
# Create bulleted list
~/.claude/skills/google-docs-manager/scripts/google-docs-manager create-bullets <document_id> <start_index> <end_index> [--style STYLE]
# STYLES: BULLET_DISC_CIRCLE_SQUARE (default), BULLET_CHECKBOX, BULLET_ARROW_DIAMOND_DISC, BULLET_DIAMONDX_ARROW3D_SQUARE

# Create numbered list
~/.claude/skills/google-docs-manager/scripts/google-docs-manager create-numbered <document_id> <start_index> <end_index>

# Remove bullets/numbering
~/.claude/skills/google-docs-manager/scripts/google-docs-manager remove-bullets <document_id> <start_index> <end_index>
```

**Table Operations:**
```bash
# Insert table from CSV
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-table <document_id> <csv_file> [--legend LEGEND] [--index INDEX]

# Update cell content
~/.claude/skills/google-docs-manager/scripts/google-docs-manager update-table-cell <document_id> <table_index> <row_index> <column_index> "text"

# Style cell (background color)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager style-table-cell <document_id> <table_index> <row_index> <column_index> \
    [--bg-color "R,G,B"]
# Note: --bg-color uses same RGB format as --color (see format-text color documentation above)
# Example: --bg-color "191,144,0" for amber (#bf9000)
```

**Image Operations:**
```bash
# Insert image
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-image <document_id> <image_url> [--legend LEGEND] [--index INDEX]
```

**Headers & Footers:**
```bash
# Add/update header
~/.claude/skills/google-docs-manager/scripts/google-docs-manager add-header <document_id> <text> [--page-number]

# Add/update footer
~/.claude/skills/google-docs-manager/scripts/google-docs-manager add-footer <document_id> <text> [--page-number]
```

**Examples:**
```bash
# Create a new document
~/.claude/skills/google-docs-manager/scripts/google-docs-manager create "Q4 Report" 1folderabc123

# Read full document
~/.claude/skills/google-docs-manager/scripts/google-docs-manager read 1docabc123xyz

# Get document structure
~/.claude/skills/google-docs-manager/scripts/google-docs-manager get-structure 1docabc123xyz

# Set content from markdown file
~/.claude/skills/google-docs-manager/scripts/google-docs-manager set-markdown 1docabc123xyz content.md

# Update specific section
~/.claude/skills/google-docs-manager/scripts/google-docs-manager update-section 1docabc123xyz "Methodology" methodology.md

# Insert table with legend
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-table 1docabc123xyz data.csv --legend "Table 1: Sales Data Q4 2024"

# Insert image with legend
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-image 1docabc123xyz "https://example.com/chart.png" --legend "Figure 1: Revenue Trends"

# Apply color formatting (convert hex #bf9000 to RGB 191,144,0)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager format-text 1docabc123xyz 100 115 --color "191,144,0"

# Apply multiple formatting options (green + bold)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager format-text 1docabc123xyz 200 215 --bold --color "56,118,29"
```

**How It Works:**
The binary is a standalone Go executable that:
- Requires no Python installation or virtual environment
- Uses OAuth2 credentials stored in `~/.credentials/`
- Provides fast, direct access to Google Docs API
- Can be rebuilt from source at `~/projects/new/google-docs-manager/`

## Default Styles

Documents created with the `create` command use standard Google Docs styles:
- **Title** style (for `# title`)
- **Heading 1** style (for `## chapter`)
- **Heading 2** style (for `### sub-chapter`)
- **Heading 3** style (for `#### sub-sub-chapter`)
- **Heading 4** style (for `##### sub-sub-sub-chapter`)
- **Heading 5** style (for `###### sub-sub-sub-sub-chapter`)

## Markdown to Google Docs Mapping

| Markdown | Google Docs Style |
|----------|------------------|
| `# title` | Title |
| `## Chapter` | Heading 1 |
| `### Sub Chapter` | Heading 2 |
| `#### Sub Sub Chapter` | Heading 3 |
| `##### Sub Sub Sub Chapter` | Heading 4 |
| `###### Sub Sub Sub Sub Chapter` | Heading 5 |
| Regular text | Normal Text |
| `**bold**` | Bold text |
| `*italic*` or `_italic_` | Italic text |
| Tables | Google Docs tables with italic legend above |
| Images | Inline images with italic legend below (left-aligned) |

**Note:** Italic formatting supports both asterisk (`*text*`) and underscore (`_text_`) syntax. This is particularly useful for scientific names and technical terms that conventionally use underscores in markdown (e.g., `_Chlamydophila pneumoniae_`).

## Operations

### 1. Create Document
Creates a new blank Google Doc with standard styles.

**Process:**
1. Create new document in specified folder
2. Apply standard Google Docs styles
3. Return new document ID

### 2. Read Document
Extract document content as markdown or plain text.

**Full Read:**
- Returns entire document content
- Preserves structure (headings, paragraphs, tables)
- Converts to markdown format

**Section Read:**
- Extracts content under specific heading
- Returns only the section content
- Preserves formatting

### 3. Get Document Structure
Returns hierarchical structure of document headings.

**Output:**
```json
{
  "headings": [
    {
      "level": 1,
      "text": "Introduction",
      "index": 15,
      "style": "HEADING_1"
    },
    {
      "level": 2,
      "text": "Background",
      "index": 45,
      "style": "HEADING_2"
    }
  ]
}
```

### 4. Set Content from Markdown (Utility)
**This is a utility function for markdown conversion. The primary focus of this skill is document editing.**

Replaces entire document content with markdown-formatted content.

**Markdown Conversion Process:**
1. Clear existing content
2. Parse markdown and convert to Google Docs API requests
3. Apply proper styles based on heading levels:
   - `# text` → Title style
   - `## text` → Heading 1 style
   - `### text` → Heading 2 style
   - `#### text` → Heading 3 style
   - `##### text` → Heading 4 style
   - `###### text` → Heading 5 style
   - Regular text → Normal Text style
   - `**bold**` → Bold formatting
   - `*italic*` or `_italic_` → Italic formatting (both syntaxes supported)
   - `- item` → Bullet point (Normal Text with dash)
4. Split requests into batches of 400 (Google Docs API limit)
5. Execute batch updates sequentially

**Important Notes:**
- Google Docs API has a limit of ~400 requests per batchUpdate call
- Large documents are automatically split into multiple batches
- Empty lines in markdown are skipped to avoid unwanted spacing
- Paragraphs flow continuously without extra blank lines
- After content insertion, always use `update-toc` to add automatic TOC
- Markdown conversion is a convenience feature; main purpose is document editing

### 5. Update Section
Updates content under a specific heading.

**Process:**
1. Find heading in document structure
2. Determine section boundaries
3. Replace section content with new markdown
4. Preserve surrounding content
5. Update table of contents

### 6. Insert Table
Inserts a formatted table with optional legend.

**Format:**
```
Table 1: Sales Data Q4 2024  (italic, above table)

┌────────────┬──────────┬──────────┐
│   Month    │  Sales   │  Growth  │
├────────────┼──────────┼──────────┤
│  October   │  $125k   │   +5%    │
│  November  │  $142k   │  +13%    │
│  December  │  $198k   │  +39%    │
└────────────┴──────────┴──────────┘
```

**Input:** CSV file or JSON data
**Output:** Google Docs table with legend

### 7. Insert Image
Inserts an image into the document with optional legend.

**CRITICAL LIMITATION - Google Docs API Requirements:**
Google Docs API ONLY accepts images via publicly accessible HTTP/HTTPS URLs. Local files CANNOT be inserted directly.

**Required Workflow for Local Images:**
1. **Upload to Google Drive:** Local image files must first be uploaded to Google Drive
2. **Make Publicly Accessible:** Set Drive file permissions to `type: anyone, role: reader`
3. **Get Drive URL:** Use format `https://drive.google.com/uc?export=view&id=FILE_ID`
4. **Insert into Document:** Use the Drive URL with insert-image command

**Alternative Approaches (NOT supported by API):**
- ❌ Base64 data URIs (API rejects with "URL should start with http:// or https://")
- ❌ Direct local file paths
- ❌ File system URLs (file://)

**Recommended Practice:**
- Upload images to the same Google Drive folder as the document
- This keeps all related content together in Google Workspace
- Images are accessible through proper Drive permissions
- No dependency on external hosting services

**Format:**
```
[Image]

Figure 1: Revenue Trends  (italic, below image, left-aligned)

[blank line automatically added after legend for spacing]
```

**Input:** Publicly accessible HTTP/HTTPS URL (typically from Google Drive)
**Output:** Inline image with legend and blank line after for proper spacing

**Example Workflow:**
```bash
# 1. Upload image to Drive (using google-drive-manager skill)
# Use the google-drive-manager skill to upload the image and get FILE_ID

# 2. Make image publicly accessible
# Use the google-drive-manager skill to set permissions (type: anyone, role: reader)

# 3. Insert into document
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-image DOC_ID \
    "https://drive.google.com/uc?export=view&id=FILE_ID" \
    --legend "Figure 1: Description"
```

### 8. Update Table of Contents
Inserts "Table of content" heading placeholder at document start.

**IMPORTANT LIMITATION:**
Google Docs API v1 does NOT support programmatic TOC insertion. This command only inserts the heading.

**Process:**
1. Check if "Table of content" heading already exists at document start
2. If not, insert "Table of content" heading (Heading 1 style) at position 1
3. Provide instructions for manual TOC insertion

**Manual Steps Required:**
After running this command, you must manually complete the TOC insertion:
1. Open the document in Google Docs UI
2. Place cursor after the "Table of content" heading
3. Click Insert > Table of contents > Choose style (with page numbers or links)

**Notes:**
- The automatic TOC will be clickable and navigable
- TOC automatically updates when headings change
- Shows all heading levels that are formatted as headings

## Prerequisites

### System Requirements
- **Binary:** Pre-compiled Go binary (no runtime dependencies)
- **GCP Project** with Docs API enabled
- **Google OAuth Credentials** stored in `~/.credentials/`

### Google Cloud Setup

1. **Enable Required APIs:**
   ```bash
   gcloud services enable docs.googleapis.com
   gcloud services enable drive.googleapis.com
   ```

2. **Create OAuth Credentials:**
   - Go to Google Cloud Console (https://console.cloud.google.com/)
   - Navigate to APIs & Services > Credentials
   - Create OAuth 2.0 Client ID (Desktop application type)
   - Download credentials as JSON file
   - Save to `~/.credentials/google_credentials.json`

3. **First-time Authentication:**
   ```bash
   # Create credentials directory
   mkdir -p ~/.credentials

   # Copy downloaded credentials
   cp ~/Downloads/client_secret_*.json ~/.credentials/google_credentials.json

   # Run any command - will open browser for OAuth consent
   ~/.claude/skills/google-docs-manager/scripts/google-docs-manager info <document_id>

   # Token saved to ~/.credentials/google_token.json for future use
   ```

4. **Subsequent Runs:**
   - Token automatically refreshed when expired
   - No browser interaction needed
   - Seamless authentication

### Installation
**No installation required!** The binary is pre-compiled and ready to use:
- Just run the binary directly
- No dependencies to install
- No virtual environment needed

## Common Workflows

### 1. Create New Report

```bash
# Create new document
DOC_ID=$(~/.claude/skills/google-docs-manager/scripts/google-docs-manager create "Q4 Sales Report" 1folderabc123 | grep "Document ID:" | cut -d' ' -f3)

# Set content from markdown
~/.claude/skills/google-docs-manager/scripts/google-docs-manager set-markdown $DOC_ID report.md

# Add table
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-table $DOC_ID sales_data.csv --legend "Table 1: Quarterly Sales"

# Add chart image
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-image $DOC_ID "https://charts.example.com/q4.png" --legend "Figure 1: Sales Trends"
```

### 2. Update Existing Document Section

```bash
# Read current section (requires custom implementation - use get-structure to find section boundaries)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager get-structure 1docabc123

# Edit methodology.md locally...

# Update section
~/.claude/skills/google-docs-manager/scripts/google-docs-manager update-section 1docabc123 "Methodology" methodology.md
```

### 3. Generate Report from Data

```bash
# Create document
DOC_ID=$(~/.claude/skills/google-docs-manager/scripts/google-docs-manager create "Analysis Report" 1folder123 | grep "Document ID:" | cut -d' ' -f3)

# Generate markdown report from data
python generate_report.py --output report.md

# Set content
~/.claude/skills/google-docs-manager/scripts/google-docs-manager set-markdown $DOC_ID report.md

# Add multiple tables
for table in results/*.csv; do
    legend=$(basename "$table" .csv | sed 's/_/ /g')
    ~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-table $DOC_ID "$table" --legend "Table: $legend"
done
```

## Best Practices

### Document Creation
- **Use create command:** Creates new documents with standard Google Docs styles
- **Set content from markdown:** Use `set-markdown` to populate document with structured content
- **Add elements incrementally:** Use insert-table and insert-image to add data visualizations

### Content Management
- **Section updates:** Use section updates for partial modifications to preserve other content
- **Structure first:** Use `get-structure` to understand document organization

### Markdown Conversion
- **Heading levels:** Follow markdown to heading style mapping
- **Tables:** Use CSV format for clean table conversion
- **Images:** Upload images to Drive first if using local files

### Formatting
- **Table legends:** Always in italic above the table
- **Image legends:** Always in italic below the image, left-aligned
- **Consistent styles:** Use standard Google Docs styles for uniform formatting

### Performance
- **Batch operations:** Group multiple updates when possible
- **Large documents:** Consider section updates for large documents
- **API limits:** Be mindful of Google Docs API quotas

## How to Respond to Docs Requests

When users request Docs operations:

1. **Identify the operation:**
   - Create, read, update, insert table/image, update TOC

2. **Gather required parameters:**
   - Document ID (from user or search)
   - Content/markdown file
   - Section headings
   - Table/image data

3. **Run the appropriate command:**
   - Execute script with proper arguments
   - Monitor output for progress and errors
   - Report results to user

4. **Handle document structure:**
   - Use `get-structure` to understand organization
   - Find section boundaries for updates
   - Verify heading names exist

5. **Handle errors:**
   - Check authentication if OAuth errors occur
   - Verify document IDs if not found
   - Confirm API access if permission errors occur

## Example Interactions

### Example 1: Create Document and Add Content

**User:** "Create a new Google Doc for the Q4 report and add this markdown content"

**Response:**
```
I'll create a new Google Doc and add your content.

Creating document...
```

**Execute:**
```bash
~/.claude/skills/google-docs-manager/scripts/google-docs-manager create "Q4 Report" 1folderabc123
```

**Then:**
```bash
~/.claude/skills/google-docs-manager/scripts/google-docs-manager set-markdown 1newdoc123 content.md
```

**Final response:**
```
Created document "Q4 Report"
Added content from markdown

Document link: https://docs.google.com/document/d/1newdoc123/edit
```

### Example 2: Update Specific Section

**User:** "Update the 'Conclusion' section in this document with new content"

**Response:**
```
I'll update the Conclusion section with your new content.

First, let me check the document structure...
```

**Execute:**
```bash
~/.claude/skills/google-docs-manager/scripts/google-docs-manager get-structure 1docabc123
~/.claude/skills/google-docs-manager/scripts/google-docs-manager update-section 1docabc123 "Conclusion" new_conclusion.md
```

**Final response:**
```
Updated 'Conclusion' section

The Conclusion section has been updated while preserving all other content.
```

## Troubleshooting

### "Google OAuth credentials not found"
```bash
# Create credentials directory
mkdir -p ~/.credentials

# Download OAuth credentials from Google Cloud Console
# Save to ~/.credentials/google_credentials.json
```

### "Permission denied" errors
```bash
# Ensure Docs and Drive APIs are enabled
gcloud services enable docs.googleapis.com drive.googleapis.com

# Verify OAuth scopes include:
# - https://www.googleapis.com/auth/documents
# - https://www.googleapis.com/auth/drive
```

### "Section not found"
- Verify exact heading text (case-sensitive)
- Use `get-structure` to see all available headings
- Check heading style (must be Heading 1-5, not just bold text)

### Re-authenticate
```bash
# Delete token to trigger new OAuth flow
rm ~/.credentials/google_token.json
# Run any command to re-authenticate
```

## Security & Privacy

- **OAuth authentication:** Uses secure OAuth 2.0 flow
- **Local credentials:** Stores credentials in `~/.credentials/`
- **API access:** Only requests minimum required scopes
- **No logging:** Binary does not log or store document content
- **Secure transfer:** All transfers use HTTPS

## Dependencies

**None!** The binary is self-contained with all dependencies compiled in:
- Google Docs/Drive API client libraries (compiled into binary)
- OAuth 2.0 authentication (compiled into binary)
- No external runtime dependencies required

## Response Approach

To accomplish Docs management tasks:

1. Identify the specific operation requested
2. Gather required parameters (document ID, content, sections)
3. Check document structure if needed (get-structure)
4. Execute the appropriate binary command
5. Monitor output for progress and errors
6. Report results with document link
7. Handle errors with appropriate troubleshooting steps

## Building from Source

To rebuild the binary after making changes:

```bash
# Navigate to source directory
cd ~/projects/new/google-docs-manager/

# Build the binary
make

# Copy to skill directory
cp google-docs-manager ~/.claude/skills/google-docs-manager/scripts/
```

The binary will be compiled with all dependencies included.

