Smart Email

WarnAudited by ClawScan on May 18, 2026.

Overview

The skill’s email-reading purpose is coherent, but it misleadingly claims local-only encrypted handling while sending email content to an AI provider and storing mailbox secrets without evident encryption.

Install only if you are comfortable granting mailbox read access, storing app passwords/OAuth tokens under the skill directory, and sending email contents to the configured AI provider for summaries. Prefer revocable app passwords or OAuth, restrict access to the data directory, choose a trusted AI endpoint, and avoid custom IMAP on untrusted networks until TLS validation is fixed.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Users may grant mailbox access believing their email data and credentials never leave the machine and are encrypted locally.

Why it was flagged

The documentation promises encrypted local-only storage, but the code stores mailbox secrets in plain SQLite columns and sends email text to an AI API for summaries.

Skill content
- 邮箱凭证:`<SKILL_DIR>/data/email.db`(SQLite,本地加密存储) ... - 所有数据仅存在用户本地,不上传
Recommendation

Correct the documentation and metadata, make third-party AI upload explicit before summarizing, and implement real encrypted or OS-keychain-backed secret storage.

What this means

Private email contents may be sent to a third-party AI provider whenever summaries or digests are requested.

Why it was flagged

Sender, subject, and email body are included in the prompt and posted to the configured chat-completions provider, whose default base is DeepSeek.

Skill content
const prompt = `... 发件人: ${from} ... 主题: ${subject} ... 正文:\n${body || '(无法读取正文)'}`; ... fetch(`${api.base}/chat/completions`, ... messages: [{ role: 'user', content: prompt }])
Recommendation

Use only a trusted AI endpoint, make summarization opt-in with explicit disclosure, or configure a local/self-hosted model if email contents must remain local.

What this means

Anyone or any process that can read the skill’s data directory could potentially obtain mailbox credentials or long-lived OAuth refresh tokens.

Why it was flagged

Mailbox app passwords and OAuth access/refresh tokens are persisted directly in the SQLite database with no encryption or OS credential-store use visible in the artifact.

Skill content
CREATE TABLE IF NOT EXISTS accounts (... password TEXT, ... access_token TEXT, refresh_token TEXT, token_expires INTEGER ...);
Recommendation

Store secrets in the operating system keychain or encrypt them with user-controlled keys; advise users to use revocable app passwords/OAuth and protect the data directory.

What this means

On untrusted networks or with a spoofed mail server, custom-mail users could have passwords or email content intercepted.

Why it was flagged

For custom IMAP providers, TLS certificate validation is disabled while mailbox credentials and email content are transmitted.

Skill content
tls: { rejectUnauthorized: emailType === 'custom' ? false : true }
Recommendation

Verify TLS certificates by default for all IMAP servers; require an explicit, clearly warned opt-out for unusual custom servers.

What this means

Setup may run third-party npm install code on the user’s machine.

Why it was flagged

Installing dependencies can execute a native package install/build script for SQLite support; this is expected for the dependency and lockfile-pinned, but still supply-chain-sensitive.

Skill content
"node_modules/better-sqlite3": { ... "hasInstallScript": true ... }
Recommendation

Install from a trusted registry/source, keep the lockfile intact, and review dependency updates before upgrading.