gws-gmail-reply — Claude Code skill: what it does, how to install
Replies to a Gmail message while preserving the conversation thread. Useful for sending quick email responses or drafting them directly from the terminal.
npx skills add googleworkspace/cli --skill gws-gmail-reply -a claude-codeWhat gws-gmail-reply does
The skill runs gws gmail +reply to respond to an email using its --message-id. It sets In-Reply-To, References, and threadId headers automatically so your reply stays in the existing thread, quoting the original message text.
You can format the message with --html, attach files using -a, and add recipients to --cc or --bcc. Passing --draft saves the reply to your Gmail drafts folder instead of sending it, while --dry-run previews the API request without sending anything.
Running this requires the gws binary and auth rules defined in gws-shared. This skill replies only to the original sender; if you need to message everyone on the thread, use +reply-all instead.
What it helps with
- reply to a Gmail message while keeping thread headers intact
- save an email reply as a draft using
--draft - attach local files to a reply using the
-aflag - add extra recipients to CC or BCC when responding
Example prompts for the agent
- Reply to message 18f1a2b3c4d with 'Thanks, got it!'
- Create a draft reply to email 18f1a2b3c4d attaching updated.docx
- Send a reply to message 18f1a2b3c4d and loop in [email protected] on CC
How to install gws-gmail-reply
1Skills CLI (Vercel)
npx skills add googleworkspace/cli --skill gws-gmail-reply -a claude-code2Manually: put the files in place
~/.claude/skills/gws-gmail-reply/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/gws-gmail-reply/
1Skills CLI (Vercel)
npx skills add googleworkspace/cli --skill gws-gmail-reply -a codex2Manually: put the files in place
.agents/skills/gws-gmail-reply/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add googleworkspace/cli --skill gws-gmail-reply -a cursor2Manually: put the files in place
.cursor/skills/gws-gmail-reply/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install googleworkspace/cli gws-gmail-reply2Manually: put the files in place
.github/skills/gws-gmail-reply/SKILL.md1Skills CLI (Vercel)
npx skills add googleworkspace/cli --skill gws-gmail-reply -a gemini-cli2Platform CLI
gemini skills install https://github.com/googleworkspace/cli --path skills/gws-gmail-replyManually: put the files in place
.devin/skills/gws-gmail-reply/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add googleworkspace/cli --skill gws-gmail-reply -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set95
The whole set →Similar
Questions about gws-gmail-reply
How to install gws-gmail-reply in Claude Code?
Run npx skills add googleworkspace/cli --skill gws-gmail-reply -a claude-code. The file will be saved to ~/.claude/skills/gws-gmail-reply/SKILL.md.
What does gws-gmail-reply do?
It sends an email reply to a specified Gmail message ID via the gws CLI. Thread headers like In-Reply-To and References are managed automatically.
Can gws-gmail-reply reply to all recipients?
No, it targets only the sender. To reply to everyone on the thread, use the +reply-all command instead.
Source text
SKILL.md · Apache-2.0
---
name: gws-gmail-reply
description: "Gmail: Reply to a message (handles threading automatically)."
metadata:
version: 0.22.5
openclaw:
category: "productivity"
requires:
bins:
- gws
cliHelp: "gws gmail +reply --help"
---
# 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 [email protected]
gws gmail +reply --message-id 18f1a2b3c4d --body 'Adding Dave' --to [email protected]
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
© googleworkspace · Apache-2.0 · googleworkspace/cli