Gmail Draft
Compose a Gmail draft from text content provided in the conversation.
Prerequisites
gwsbinary must be on$PATH- Authenticated with Gmail compose scope: run
gws auth login(not--readonly)
If gws is not installed or authentication fails, tell the user to follow the
setup instructions in the google-workspace skill.
Helper scripts are located in ${CLAUDE_SKILL_DIR} and require Python 3.10+.
Step 1: Gather Recipients, Subject, and Body
Collect the three required inputs. Sources depend on how the skill was invoked:
- From another skill (e.g.
email-meeting-summary): recipients, subject, and body are passed in context — use them directly. - Standalone invocation: use
AskUserQuestionto collect any that are missing:- Recipients: "Who should receive this email? (comma-separated addresses)"
- Subject: "What should the subject line be?"
- Body: "Paste or describe the content you want in the email body."
Step 2: Present for Review
Show the user the draft details before creating:
To: <recipients>
Subject: <subject>
<body>
Ask:
"Does this look right? Reply with any edits, or say 'send' to create the draft."
Incorporate edits and re-present until the user approves.
Step 3: Create the Draft
Write the body to a temp file, then call create_draft.py:
BODY_FILE=$(mktemp /tmp/gmail_draft_body.XXXXXX)
cat > "$BODY_FILE" << 'BODY_EOF'
<approved body text>
BODY_EOF
python3 "${CLAUDE_SKILL_DIR}/scripts/create_draft.py" \
--to "<recipients>" \
--subject "<subject>" \
--body-file "$BODY_FILE"
Step 4: Confirm
On success, tell the user:
"Draft created. You can find it in the Drafts folder in Gmail at https://mail.google.com/mail/#drafts. Review it before sending."
If the script exits with an error, show the error message and suggest the user
check gws auth login permissions (the Gmail scope must include draft
creation).
Error Reference
| Situation | Action |
|---|---|
| gws not found | Tell user to install gws and add it to PATH |
| Auth error (401/403) | Tell user to run gws auth login (without --readonly) |
| create_draft.py fails | Show error; check Gmail scope in gws auth login |