/install gmail-no-send
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:
- Create a project at console.cloud.google.com
- Enable the Gmail API
- Create OAuth 2.0 credentials (Desktop app type)
- 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
composescope 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.logwith 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
readto get the actual message. - Draft creation returns the draft ID for future updates.
- Use
--body-filefor long draft bodies instead of--bodyto avoid shell escaping issues. - The tool does NOT support attachments, labels, or filters — intentionally minimal.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install gmail-no-send - After installation, invoke the skill by name or use
/gmail-no-send - Provide required inputs per the skill's parameter spec and get structured output
What is 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... It is an AI Agent Skill for Claude Code / OpenClaw, with 146 downloads so far.
How do I install Gmail No Send?
Run "/install gmail-no-send" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Gmail No Send free?
Yes, Gmail No Send is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Gmail No Send support?
Gmail No Send is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Gmail No Send?
It is built and maintained by Mei Park (@meimakes); the current version is v1.0.0.