gws-gmail-watch
VercelAll-time installs
34.1K
Gmail: Watch for new emails and stream them as NDJSON.
Other options
Summary
Stream new Gmail messages as NDJSON with Pub/Sub-backed polling and optional file output.
- Monitors incoming emails via Gmail API with configurable label filtering (INBOX, UNREAD, etc.) and message format options (full, metadata, minimal, raw)
- Supports two setup modes: automatic Pub/Sub topic and subscription creation, or connection to existing resources
- Configurable polling interval, batch size, and one-time pull mode; graceful shutdown with optional resource cleanup
- Can write each message to a separate JSON file or stream directly to stdout; watch sessions expire after 7 days and must be renewed
Raw SKILL.md
1,944 bytes---
name: gws-gmail-watch
description: "Gmail: Watch for new emails and stream them as NDJSON."
metadata:
version: 0.22.5
openclaw:
category: "productivity"
requires:
bins:
- gws
cliHelp: "gws gmail +watch --help"
---
# gmail +watch
> **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.
Watch for new emails and stream them as NDJSON
## Usage
```bash
gws gmail +watch
```
## Flags
| Flag | Required | Default | Description |
|------|----------|---------|-------------|
| `--project` | — | — | GCP project ID for Pub/Sub resources |
| `--subscription` | — | — | Existing Pub/Sub subscription name (skip setup) |
| `--topic` | — | — | Existing Pub/Sub topic with Gmail push permission already granted |
| `--label-ids` | — | — | Comma-separated Gmail label IDs to filter (e.g., INBOX,UNREAD) |
| `--max-messages` | — | 10 | Max messages per pull batch |
| `--poll-interval` | — | 5 | Seconds between pulls |
| `--msg-format` | — | full | Gmail message format: full, metadata, minimal, raw |
| `--once` | — | — | Pull once and exit |
| `--cleanup` | — | — | Delete created Pub/Sub resources on exit |
| `--output-dir` | — | — | Write each message to a separate JSON file in this directory |
## Examples
```bash
gws gmail +watch --project my-gcp-project
gws gmail +watch --project my-project --label-ids INBOX --once
gws gmail +watch --subscription projects/p/subscriptions/my-sub
gws gmail +watch --project my-project --cleanup --output-dir ./emails
```
## Tips
- Gmail watch expires after 7 days — re-run to renew.
- Without --cleanup, Pub/Sub resources persist for reconnection.
- Press Ctrl-C to stop gracefully.
## 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
Security audits
SnykWARN
SocketPASS
Gen Agent Trust HubPASS

