About gws-gmail-send
A focused `gws gmail +send` skill for composing and sending email. It supports recipients, copy fields, attachments, HTML bodies, drafts, and a dry-run mode.
Key features
- 01Set recipients, subject, and body
- 02Add CC, BCC, and sender alias
- 03Attach one or more files
- 04Send HTML or plain-text email
- 05Save drafts or preview with dry run
Use cases
- 01Send email with file attachments
- 02Prepare a message as a draft
- 03Send formatted HTML email
- 04Preview a request before sending
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ streakyc/ googleworkspacecli --skill gws-gmail-sendAfter installing, type/gws-gmail-sendin Claude Code to confirm it loaded.
Details
From the project READMEgmail +send
PREREQUISITE: Read
../gws-shared/SKILL.mdfor auth, global flags, and security rules. If missing, rungws generate-skillsto create it.
Send an email
Usage
gws gmail +send --to <EMAILS> --subject <SUBJECT> --body <TEXT>
Flags
| Flag | Required | Default | Description |
|---|---|---|---|
--to | ✓ | — | Recipient email address(es), comma-separated |
--subject | ✓ | — | Email subject |
--body | ✓ | — | Email body, used verbatim (plain text, or HTML with --html). \n is NOT a newline — use $'...' or a real line break |
--from | — | — | Sender address (for send-as/alias; omit to use account default) |
--attach | — | — | Attach a file (can be specified multiple times) |
--cc | — | — | CC email address(es), comma-separated |
--bcc | — | — | BCC email address(es), comma-separated |
--html | — | — | Treat --body as HTML content (default is plain text) |
--dry-run | — | — | Show the request that would be sent without executing it |
--draft | — | — | Save as draft instead of sending |
Examples
gws gmail +send --to [email protected] --subject 'Hello' --body 'Hi Alice!'
gws gmail +send --to [email protected] --subject 'Hello' --body 'Hi!' --cc [email protected]
gws gmail +send --to [email protected] --subject 'Hello' --body '<b>Bold</b> text' --html
gws gmail +send --to [email protected] --subject 'Hello' --body 'Hi!' --from [email protected]
gws gmail +send --to [email protected] --subject 'Report' --body 'See attached' -a report.pdf
gws gmail +send --to [email protected] --subject 'Files' --body 'Two files' -a a.pdf -a b.csv
gws gmail +send --to [email protected] --subject 'Hello' --body 'Hi!' --draft
# Multi-line body — $'...' quoting turns \n into a real newline:
gws gmail +send --to [email protected] --subject 'Update' --body $'Hi Alice,\n\nShipped today.\n\nBlake'
# Long body — read it from a file instead of quoting inline:
gws gmail +send --to [email protected] --subject 'Update' --body "$(cat body.txt)"
Tips
- IMPORTANT: --body is verbatim. Writing --body "Hi,\n\nThanks" sends a literal backslash-n to the recipient; it does NOT create a line break. Use $'Hi,\n\nThanks' or "$(cat file.txt)". See gws-shared Shell Tips.
- Handles RFC 5322 formatting, MIME encoding, and base64 automatically.
- Use --from to send from a configured send-as alias instead of your primary address.
- Use -a/--attach to add file attachments. Can be specified multiple times. Total size limit: 25MB.
- With --html, use fragment tags (
- Use --draft to save the message as a draft instead of sending it immediately.
Caution
This is a write command — confirm with the user before executing.
See Also
- gws-shared — Global flags and auth
- gws-gmail — All send, read, and manage email commands
Comments
Markdown supported