← Back to Skills Marketplace
evolinkai

Gmail Assistant

by EvolinkAI · GitHub ↗ · v1.1.1 · MIT-0
cross-platform ⚠ suspicious
92
Downloads
0
Stars
0
Active Installs
3
Versions
Install in OpenClaw
/install gmail-assistant
Description
Gmail API integration with smart AI features — read, send, search, and manage emails with Claude-powered summarization and drafting. Powered by evolink.ai
README (SKILL.md)

Gmail Assistant

Read, send, search, and manage Gmail with AI-powered features. Summarize inbox, draft replies, and manage labels — all from your terminal.

Powered by Evolink.ai

When to Use

  • User says "check my email", "read my inbox", "any new emails?"
  • User wants to send or reply to an email
  • User asks to search emails by sender, subject, or date
  • User says "summarize my unread emails" or "what's important in my inbox?"
  • User wants to draft a professional reply using AI
  • User needs to manage labels, star, archive, or trash messages

Quick Start

1. Set up Google OAuth credentials

# First time only — create OAuth credentials
bash scripts/gmail-auth.sh setup

# Authorize your Gmail account
bash scripts/gmail-auth.sh login

2. Set your EvoLink API key (for AI features)

export EVOLINK_API_KEY="your-key-here"

3. Use Gmail

# List recent emails
bash scripts/gmail.sh list

# Read a specific email
bash scripts/gmail.sh read MESSAGE_ID

# Send an email
bash scripts/gmail.sh send "[email protected]" "Subject" "Body text"

# Search emails
bash scripts/gmail.sh search "from:[email protected] is:unread"

# AI: Summarize unread emails
bash scripts/gmail.sh ai-summary

# AI: Draft a reply
bash scripts/gmail.sh ai-reply MESSAGE_ID "Please decline politely"

Capabilities

  • List messages — View recent inbox, filter by label or query
  • Read messages — Get full message content with headers
  • Send messages — Compose and send new emails
  • Reply — Reply to existing threads
  • Search — Gmail query syntax (from, to, subject, date, has:attachment)
  • Labels — List, apply, and remove labels
  • Star / Archive / Trash — Quick message management
  • Threads — View full conversation threads
  • AI Summary — Summarize unread or recent emails using Claude via EvoLink
  • AI Draft — Generate professional reply drafts with AI assistance
  • AI Prioritize — Rank emails by importance and urgency

Example

User: "Summarize my unread emails from today"

bash scripts/gmail.sh ai-summary --query "is:unread after:2026/04/02"

Output:

Inbox Summary (5 unread emails):

1. [URGENT] Project deadline moved — from: [email protected]
   The Q2 product launch deadline has been moved from April 15 to April 10.
   Action needed: Update sprint plan by tomorrow EOD.

2. Invoice #4521 — from: [email protected]
   Monthly SaaS subscription invoice for $299. Due April 15.
   Action needed: Approve or forward to finance.

3. Team lunch Friday — from: [email protected]
   Team building lunch at 12:30 PM Friday. RSVP requested.
   Action needed: Reply with attendance.

4. Newsletter: AI Weekly — from: [email protected]
   Low priority. Weekly AI news roundup.
   Action needed: None.

5. GitHub notification — from: [email protected]
   PR #247 merged to main. CI passed.
   Action needed: None.

Setup Guide

Step 1: Create Google Cloud OAuth Credentials

  1. Go to Google Cloud Console
  2. Create a new project (or select existing)
  3. Enable the Gmail API: APIs & Services > Library > search "Gmail API" > Enable
  4. Create OAuth credentials: APIs & Services > Credentials > Create Credentials > OAuth client ID
  5. Application type: Desktop app
  6. Download the credentials.json file

Step 2: Configure the Skill

# Place credentials file
mkdir -p ~/.gmail-skill
cp credentials.json ~/.gmail-skill/credentials.json

# Run first-time setup
bash scripts/gmail-auth.sh setup

Step 3: Authorize

bash scripts/gmail-auth.sh login

This opens a browser window for Google OAuth consent. After authorization, tokens are stored locally at ~/.gmail-skill/token.json.

Configuration

Variable Default Required Description
credentials.json Yes (core) Google OAuth client credentials file at ~/.gmail-skill/credentials.json. Setup Guide
EVOLINK_API_KEY Optional (AI) Your EvoLink API key for AI features. Get one free
EVOLINK_MODEL claude-opus-4-6 No Model for AI processing. Switch to any model supported by the EvoLink API
GMAIL_SKILL_DIR ~/.gmail-skill No Custom path for credential and token storage

Required binaries: python3, curl

Gmail Query Syntax

Use these operators with search and ai-summary:

  • is:unread — Unread messages
  • is:starred — Starred messages
  • from:[email protected] — From specific sender
  • to:[email protected] — To specific recipient
  • subject:keyword — Subject contains keyword
  • after:2026/01/01 — After date
  • before:2026/12/31 — Before date
  • has:attachment — Has attachments
  • label:work — Has specific label
  • in:inbox — In inbox

Security

Important: Data Consent for AI Features

AI commands (ai-summary, ai-reply, ai-prioritize) transmit email content (subject, sender, body) to api.evolink.ai for processing by Claude. By setting EVOLINK_API_KEY and using these commands, you explicitly consent to this transmission. Data is not stored after the response is returned. If you handle sensitive or confidential emails, review EvoLink's privacy policy before using AI features. Core Gmail operations (read, send, search, label) never transmit email content to any third party.

Credentials & Storage

Google OAuth credentials (credentials.json) and tokens (token.json) are stored locally at ~/.gmail-skill/. Tokens are never transmitted to any third party. The skill accesses Gmail only through Google's official OAuth 2.0 flow and Gmail API endpoints (gmail.googleapis.com).

AI Features (Optional)

When AI features are used (summarize, draft, prioritize), email content is sent to api.evolink.ai for processing by Claude. Data is discarded after the response is returned. No email data is stored by EvoLink. Review EvoLink's privacy policy before using AI features with sensitive emails.

EVOLINK_API_KEY is only required for AI features. Core Gmail operations (read, send, search, label) work without it.

File Access Controls

This skill only reads/writes within ~/.gmail-skill/ for credential and token storage. No other filesystem access is performed.

Required binaries: python3, curl

Network Access

  • gmail.googleapis.com — Gmail API (core operations)
  • oauth2.googleapis.com — OAuth token management
  • accounts.google.com — OAuth consent flow
  • api.evolink.ai — AI features only (optional)

Persistence & Privilege

This skill does not modify other skills or system settings. No elevated or persistent privileges are requested. OAuth tokens can be revoked at any time via bash scripts/gmail-auth.sh revoke or from Google Account Settings.

Links

Usage Guidance
This skill appears to implement exactly what it advertises (Gmail access + optional AI via EvoLink) but the package metadata omits required config/binaries declared in SKILL.md — treat that as a warning sign and inspect before use. Before installing: 1) Open and review scripts/gmail-auth.sh and scripts/gmail.sh to confirm they only call Gmail APIs and api.evolink.ai and do not send data to other endpoints or read unrelated files. 2) Create a Google OAuth client with the minimum scopes (use a Desktop app client), and keep the credentials.json and token.json in the indicated directory with restrictive permissions. 3) If you use AI features, only set EVOLINK_API_KEY for a trusted EvoLink account and review their privacy policy; consider testing with non-sensitive emails first. 4) Run the scripts in a constrained environment (container or VM) if you cannot manually audit the code. 5) Because the registry/source are 'unknown' and there is no homepage, prefer to install only from a verified repository or contact the publisher for source verification and to resolve the metadata mismatch.
Capability Analysis
Type: OpenClaw Skill Name: gmail-assistant Version: 1.1.1 The skill provides a Gmail integration with AI features but contains multiple critical shell/Python injection vulnerabilities in `scripts/gmail.sh`. Specifically, the `evolink_ai` and `encode_email` functions interpolate unvalidated email content and user-supplied strings directly into Python command-line scripts (e.g., using `python3 -c "... '$content' ..."`). This allows for arbitrary code execution (RCE) if an email contains specially crafted characters like triple quotes or closing parentheses. While the skill's behavior is aligned with its stated purpose and includes proper OAuth security practices (storing tokens with `chmod 600`), the high-risk nature of these unintentional vulnerabilities warrants a suspicious classification. IOCs include the third-party AI endpoint `api.evolink.ai`.
Capability Assessment
Purpose & Capability
The skill's stated purpose (Gmail operations + optional EvoLink AI features) matches the instructions and included scripts. However the registry metadata claims no required config paths, binaries, or env vars while SKILL.md requires a Google OAuth credentials.json, stores tokens at ~/.gmail-skill/token.json, and lists required binaries (python3, curl) and an optional EVOLINK_API_KEY — the metadata omission is inconsistent and unexpected.
Instruction Scope
Run instructions are narrowly scoped to creating Google OAuth credentials, authorizing via the provided scripts, and (optionally) sending email content to api.evolink.ai for AI processing. The SKILL.md explicitly discloses third‑party transmission for AI commands. I could not fully verify the scripts' implementation from the provided truncated content — you should review scripts/gmail-auth.sh and scripts/gmail.sh to confirm there are no additional file reads or unexpected external endpoints.
Install Mechanism
There is no install spec (instruction-only at the platform level) and the repository includes only shell scripts and docs. That is lower risk than arbitrary binary downloads. No installer URLs, extract steps, or opaque third‑party packages were specified.
Credentials
The actual runtime needs (Google OAuth credentials file, token storage path, optional EVOLINK_API_KEY) are proportionate to the stated features. The concern is that the skill registry metadata did not declare these required config paths or env vars — mismatch could hide permission/consent expectations. No unrelated credentials are requested.
Persistence & Privilege
The skill does not request always:true, does not modify other skills, and stores tokens locally (SKILL.md claims chmod 600). Autonomous invocation is allowed by default but not by itself a red flag. No indications that the skill persists beyond its own files.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install gmail-assistant
  3. After installation, invoke the skill by name or use /gmail-assistant
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.1.1
Fix registry metadata inconsistency: align _meta.json name and description with SKILL.md frontmatter
v1.1.0
Security audit fix: declare required files/binaries in metadata, add explicit data consent warning for AI features
v1.0.0
Initial release: Gmail API integration with AI-powered summarization and drafting
Metadata
Slug gmail-assistant
Version 1.1.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 3
Frequently Asked Questions

What is Gmail Assistant?

Gmail API integration with smart AI features — read, send, search, and manage emails with Claude-powered summarization and drafting. Powered by evolink.ai. It is an AI Agent Skill for Claude Code / OpenClaw, with 92 downloads so far.

How do I install Gmail Assistant?

Run "/install gmail-assistant" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Gmail Assistant free?

Yes, Gmail Assistant is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Gmail Assistant support?

Gmail Assistant is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Gmail Assistant?

It is built and maintained by EvolinkAI (@evolinkai); the current version is v1.1.1.

💬 Comments