← 返回 Skills 市场
meimakes

Gmail No Send

作者 Mei Park · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
146
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install gmail-no-send
功能描述
Read-only Gmail CLI that cannot send email by design. Search, read, create drafts, update drafts, and archive messages — with zero send capability in the cod...
使用说明 (SKILL.md)

gmail-no-send

Gmail CLI that cannot send email. Not "won't" — can't. There is no send function in the codebase.

Install

Requires Python 3.9+.

cd \x3Cskill-dir>/scripts/gmail-no-send
pip install -e .

Or install from the GitHub repo:

pip install git+https://github.com/meimakes/gmail-no-send.git

First-Time Auth

Each user needs their own Google Cloud OAuth credentials:

  1. Create a project at console.cloud.google.com
  2. Enable the Gmail API
  3. Create OAuth 2.0 credentials (Desktop app type)
  4. Download client_secret.json

Then authenticate:

gmail-no-send auth --client-secret /path/to/client_secret.json --account myname

This opens a browser for Google OAuth consent. Token is saved to ~/.config/gmail-no-send/token.json and auto-refreshes.

Commands

All commands require --account \x3Cname> (matches the name used during auth).

Search

gmail-no-send search --account mei --query "from:[email protected] newer_than:7d" --max 10

Returns JSON array of message IDs and thread IDs.

Read

gmail-no-send read --account mei --message-id \x3Cid>

Returns full message payload (headers, body, labels).

Create Draft

gmail-no-send draft-create --account mei --to "[email protected]" --subject "Re: topic" --body "Draft text here"
gmail-no-send draft-create --account mei --to "[email protected]" --subject "Long draft" --body-file /path/to/body.txt

Update Draft

gmail-no-send draft-update --account mei --draft-id \x3Cid> --to "[email protected]" --subject "Updated" --body "New body"

Archive

gmail-no-send archive --account mei --message-id \x3Cid>

Removes INBOX label (message stays in All Mail).

Security Model

  • No send command exists. The CLI has 6 commands: auth, search, read, draft-create, draft-update, archive. None send.
  • OAuth scope caveat: Gmail API has no "drafts-only" scope. The compose scope technically allows send via API. This tool enforces no-send at the application layer — the code simply doesn't call the send endpoint.
  • Audit log: All operations logged to ~/.config/gmail-no-send/audit.log with timestamps.
  • Token storage: ~/.config/gmail-no-send/token.json — user-local, not shared.

For a deeper security analysis, see references/threat-model.md.

Agent Usage Notes

  • Search returns message IDs, not content. Call read to get the actual message.
  • Draft creation returns the draft ID for future updates.
  • Use --body-file for long draft bodies instead of --body to avoid shell escaping issues.
  • The tool does NOT support attachments, labels, or filters — intentionally minimal.
安全使用建议
This tool appears to do what it says: there is no send() call in the code. However, Gmail's API does not offer a 'drafts-only' OAuth scope, so you must grant a token that includes 'compose' (which could be used to send mail if the token is stolen or reused). Before installing: 1) only authenticate with a dedicated account or test account if you need strict guarantees; 2) store client_secret.json and token.json with restrictive permissions (chmod 600) and consider encrypting them; 3) pin the package version or verify repository checksums and audit source updates (the threat model warns about code modification risk); 4) monitor and periodically review ~/.config/gmail-no-send/audit.log; 5) consider using a network proxy or restricted environment if you need stronger enforcement that prevents sends at the network layer. If you understand those trade-offs, the skill is internally consistent and usable.
功能分析
Type: OpenClaw Skill Name: gmail-no-send Version: 1.0.0 The skill provides a restricted Gmail interface for reading, searching, and drafting emails while intentionally omitting any 'send' functionality to prevent autonomous email dispatch by AI agents. The code (scripts/gmail_no_send/client.py) correctly implements only the necessary Gmail API endpoints for its stated purpose, and the documentation (SKILL.md and references/threat-model.md) transparently addresses the security implications of the required OAuth scopes and local token storage.
能力评估
Purpose & Capability
The name/description (read/search/draft/update/archive with no send) aligns with the included code: there is no function calling the Gmail send endpoint. The tool requires user-supplied Google OAuth client credentials, which is appropriate for the stated functionality. The README and threat-model explicitly explain why the compose scope is used (Gmail has no drafts-only scope).
Instruction Scope
SKILL.md instructs only to install the package, obtain OAuth client_secret.json, run auth, and call the listed CLI commands. Runtime instructions and code only access the Gmail API, write tokens and audit logs to the tool's config dir, and do not read unrelated system files or exfiltrate data to unexpected endpoints.
Install Mechanism
No install spec is declared in the registry, but SKILL.md and pyproject.toml provide standard pip install routes (local editable install or git+https from the GitHub repo). Installing via pip from the repo is a common, low-to-moderate risk pattern; there is no opaque download URL or archive extract from an untrusted host.
Credentials
The skill requests no environment variables, but it requires user-provided Google OAuth credentials and stores an OAuth token with the 'compose' scope. That scope technically permits sending if the token is reused elsewhere. Although the code itself never calls send and the README warns about this limitation, the token's privileges are broader than 'drafts-only' — this is a proportionality concern the author documents but cannot fully mitigate at the API level.
Persistence & Privilege
The skill does not request always-on inclusion, nor does it modify other skills or global agent settings. It persists a token and an audit log in ~/.config/gmail-no-send (or GMAIL_NO_SEND_CONFIG), which is appropriate and scoped to the tool.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install gmail-no-send
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /gmail-no-send 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
- Initial public release of gmail-no-send: a read-only Gmail CLI with no capability to send emails. - Supports searching, reading messages, creating/updating drafts, and archiving; sending is fundamentally impossible by design. - Requires user-provided Google Cloud OAuth credentials; tokens and all operations are securely logged and stored locally. - Purpose-built for agents that need Gmail access without risk of sending messages.
元数据
Slug gmail-no-send
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Gmail No Send 是什么?

Read-only Gmail CLI that cannot send email by design. Search, read, create drafts, update drafts, and archive messages — with zero send capability in the cod... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 146 次。

如何安装 Gmail No Send?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install gmail-no-send」即可一键安装,无需额外配置。

Gmail No Send 是免费的吗?

是的,Gmail No Send 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Gmail No Send 支持哪些平台?

Gmail No Send 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Gmail No Send?

由 Mei Park(@meimakes)开发并维护,当前版本 v1.0.0。

💬 留言讨论