
Gws Gmail Reply
Reply to Gmail threads from your agent using the gws CLI without hand-rolling MIME threading or the Gmail API.
Overview
gws-gmail-reply is an agent skill for the Grow phase that sends threaded Gmail replies through the gws CLI with optional CC, attachments, HTML, drafts, and dry-run.
Install
npx skills add https://github.com/googleworkspace/cli --skill gws-gmail-replyWhat is this skill?
- Replies with automatic Gmail threading via message ID
- Supports plain text or HTML body, send-as aliases, and multi-recipient To/CC/BCC
- Optional file attachments and --draft to save without sending
- --dry-run previews the request before send
- Depends on gws-shared for auth, flags, and security rules
- 11 documented CLI flags for reply composition
- Requires gws binary per skill metadata v0.22.5
Adoption & trust: 17.5k installs on skills.sh; 26.9k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need to answer Gmail from an agent without breaking thread headers or re-implementing OAuth and MIME details.
Who is it for?
Solo builders using gws for Google Workspace who want agent-driven support replies with threading handled for them.
Skip if: Teams without gws installed, bulk campaigns, or inboxes where you have not read gws-shared auth and security rules.
When should I use this skill?
You need to reply to a Gmail message by ID with body text or HTML, optional recipients, attachments, draft save, or dry-run preview via gws.
What do I get? / Deliverables
A correctly threaded reply or draft is created via `gws gmail +reply`, with flags matching your recipients and content format.
- Sent Gmail reply in the correct thread
- Optional saved draft or dry-run request preview
Recommended Skills
Journey fit
How it compares
Use instead of raw Gmail API scripts when you already standardize on the gws CLI skill family.
Common Questions / FAQ
Who is gws-gmail-reply for?
Indie builders and small teams whose agents run Google Workspace through gws and need reliable reply threading from the terminal.
When should I use gws-gmail-reply?
Use it in Grow support when replying to a specific message ID, looping in collaborators with CC, attaching files, saving a draft, or validating payload with dry-run before send.
Is gws-gmail-reply safe to install?
It can send real email when not using --draft or --dry-run; review the Security Audits panel on this page and follow gws-shared rules before granting network and credential access.
SKILL.md
READMESKILL.md - Gws Gmail Reply
# gmail +reply > **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it. Reply to a message (handles threading automatically) ## Usage ```bash gws gmail +reply --message-id <ID> --body <TEXT> ``` ## Flags | Flag | Required | Default | Description | |------|----------|---------|-------------| | `--message-id` | ✓ | — | Gmail message ID to reply to | | `--body` | ✓ | — | Reply body (plain text, or HTML with --html) | | `--from` | — | — | Sender address (for send-as/alias; omit to use account default) | | `--to` | — | — | Additional To email address(es), comma-separated | | `--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 ```bash gws gmail +reply --message-id 18f1a2b3c4d --body 'Thanks, got it!' gws gmail +reply --message-id 18f1a2b3c4d --body 'Looping in Carol' --cc carol@example.com gws gmail +reply --message-id 18f1a2b3c4d --body 'Adding Dave' --to dave@example.com gws gmail +reply --message-id 18f1a2b3c4d --body '<b>Bold reply</b>' --html gws gmail +reply --message-id 18f1a2b3c4d --body 'Updated version' -a updated.docx gws gmail +reply --message-id 18f1a2b3c4d --body 'Draft reply' --draft ``` ## Tips - Automatically sets In-Reply-To, References, and threadId headers. - Quotes the original message in the reply body. - --to adds extra recipients to the To field. - Use -a/--attach to add file attachments. Can be specified multiple times. - With --html, the quoted block uses Gmail's gmail_quote CSS classes and preserves HTML formatting. Use fragment tags (<p>, <b>, <a>, etc.) — no <html>/<body> wrapper needed. - With --html, inline images in the quoted message are preserved via cid: references. - Use --draft to save the reply as a draft instead of sending it immediately. - For reply-all, use +reply-all instead. ## See Also - [gws-shared](../gws-shared/SKILL.md) — Global flags and auth - [gws-gmail](../gws-gmail/SKILL.md) — All send, read, and manage email commands