Back to skills

Agent Skill

Gws Gmail Send

gws-gmail-send

Gmail: Send an email.

GoogleworkspaceToolsRustAgent-skillsAi-agentAutomationCliDiscovery-apiGemini-cli-extensionGoogle-adminGoogle-apiGoogle-calendarGoogle-chatGoogle-docsGoogle-driveGoogle-sheetsGoogle-workspaceOauth2Rust

64K installs

googleworkspace/cli

by Googleworkspace

Score

8.5

/ 10

Installs

64K

Repo Stars

29.9K

Last Updated

0d ago

Fresh

Quality Ratio

93%

Description

Verified

Language

Rust

First Published

Mar 2026

Summary

The Gws Gmail Send agent skill empowers AI agents to compose and dispatch plain-text emails via a connected Gmail account, automatically handling message formatting and encoding. This skill is ideal for developers building agents that require direct email communication capabilities, such as automated notifications, confirmations, or initiating contact within a workflow. It is currently an emerging or highly specialized skill with limited adoption so far within the o-mega.ai registry. Agents use the `gws gmail +send` command, specifying the recipient, subject, and plain-text body with `--to`, `--subject`, and `--body` flags. This skill transparently handles RFC 2822 formatting and base64 encoding. For HTML bodies or attachments, it guides agents to use the underlying raw Gmail API. Developers should note that this skill is specifically for plain-text emails and advises user confirmation before execution due to its write nature.

Skill Definition

PREREQUISITE: Read ../gws-shared/SKILL.md for auth, global flags, and security rules. If missing, run gws generate-skills to create it.

Send an email

Usage

gws gmail +send --to <EMAILS> --subject <SUBJECT> --body <TEXT>

Flags

FlagRequiredDefaultDescription
--toRecipient email address(es), comma-separated
--subjectEmail subject
--bodyEmail body (plain text, or HTML with --html)
--fromSender address (for send-as/alias; omit to use account default)
--attachAttach a file (can be specified multiple times)
--ccCC email address(es), comma-separated
--bccBCC email address(es), comma-separated
--htmlTreat --body as HTML content (default is plain text)
--dry-runShow the request that would be sent without executing it
--draftSave as draft instead of sending

Examples

gws gmail +send --to alice@example.com --subject 'Hello' --body 'Hi Alice!'
gws gmail +send --to alice@example.com --subject 'Hello' --body 'Hi!' --cc bob@example.com
gws gmail +send --to alice@example.com --subject 'Hello' --body '<b>Bold</b> text' --html
gws gmail +send --to alice@example.com --subject 'Hello' --body 'Hi!' --from alias@example.com
gws gmail +send --to alice@example.com --subject 'Report' --body 'See attached' -a report.pdf
gws gmail +send --to alice@example.com --subject 'Files' --body 'Two files' -a a.pdf -a b.csv
gws gmail +send --to alice@example.com --subject 'Hello' --body 'Hi!' --draft

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 (

    , , ,
    , etc.) — no / wrapper needed.

  • 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

How to Use

Use in O-mega

Claude Code

npx skills add googleworkspace/cli gws-gmail-send