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
gws gmail +reply --message-id <ID> --body <TEXT>
Flags
| Flag |
Required |
Default |
Description |
--message-id |
✓ |
— |
Gmail message ID to reply to |
--body |
✓ |
— |
Reply 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) |
--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
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
# Multi-line body — $'...' quoting turns \n into a real newline:
gws gmail +reply --message-id 18f1a2b3c4d --body $'Hi John,\n\nConfirmed for Tuesday.\n\nBlake'
# Long body — read it from a file instead of quoting inline:
gws gmail +reply --message-id 18f1a2b3c4d --body "$(cat reply.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.
- 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 (, , , etc.) — no / 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
1---2name: gws-gmail-reply3description: Gmail: Reply to a message (handles threading automatically).4---5
6# gmail +reply
7
8> **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.
9
10Reply to a message (handles threading automatically)
11
12## Usage
13
14```bash
15gws gmail +reply --message-id <ID> --body <TEXT>
16```
17
18## Flags
19
20| Flag | Required | Default | Description |
21|------|----------|---------|-------------|
22| `--message-id` | ✓ | — | Gmail message ID to reply to |
23| `--body` | ✓ | — | Reply body, used verbatim (plain text, or HTML with --html). \n is NOT a newline — use $'...' or a real line break |
24| `--from` | — | — | Sender address (for send-as/alias; omit to use account default) |
25| `--to` | — | — | Additional To email address(es), comma-separated |
26| `--attach` | — | — | Attach a file (can be specified multiple times) |
27| `--cc` | — | — | CC email address(es), comma-separated |
28| `--bcc` | — | — | BCC email address(es), comma-separated |
29| `--html` | — | — | Treat --body as HTML content (default is plain text) |
30| `--dry-run` | — | — | Show the request that would be sent without executing it |
31| `--draft` | — | — | Save as draft instead of sending |
32
33## Examples
34
35```bash
36gws gmail +reply --message-id 18f1a2b3c4d --body 'Thanks, got it!'
37gws gmail +reply --message-id 18f1a2b3c4d --body 'Looping in Carol' --cc carol@example.com
38gws gmail +reply --message-id 18f1a2b3c4d --body 'Adding Dave' --to dave@example.com
39gws gmail +reply --message-id 18f1a2b3c4d --body '<b>Bold reply</b>' --html
40gws gmail +reply --message-id 18f1a2b3c4d --body 'Updated version' -a updated.docx
41gws gmail +reply --message-id 18f1a2b3c4d --body 'Draft reply' --draft
42# Multi-line body — $'...' quoting turns \n into a real newline:
43gws gmail +reply --message-id 18f1a2b3c4d --body $'Hi John,\n\nConfirmed for Tuesday.\n\nBlake'
44# Long body — read it from a file instead of quoting inline:
45gws gmail +reply --message-id 18f1a2b3c4d --body "$(cat reply.txt)"
46```
47
48## Tips
49
50- 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.
51- Automatically sets In-Reply-To, References, and threadId headers.
52- Quotes the original message in the reply body.
53- --to adds extra recipients to the To field.
54- Use -a/--attach to add file attachments. Can be specified multiple times.
55- 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.
56- With --html, inline images in the quoted message are preserved via cid: references.
57- Use --draft to save the reply as a draft instead of sending it immediately.
58- For reply-all, use +reply-all instead.
59
60## See Also
61
62- [gws-shared](../gws-shared/SKILL.md) — Global flags and auth
63- [gws-gmail](../gws-gmail/SKILL.md) — All send, read, and manage email commands