Bundle Pluginstructural

bee-push-emailv2.9.1

Real-time IMAP IDLE email push notifications for OpenClaw with rule engine and guided setup wizard

bee-push-email-plugin·runtime bee-push-email-plugin·by @canihojr
openclaw bundles install clawhub:bee-push-email-plugin
Latest release: v2.9.1Download zip

Capabilities

Bundle format
generic
Host targets
linux
Runtime ID
bee-push-email-plugin

Compatibility

Built With Open Claw Version
2.9.1
Security Scan
VirusTotalVirusTotal
stale
View report →
OpenClawOpenClaw
Suspicious
high confidence
!
Purpose & Capability
The IMAP watcher, notifications, rules, mailbox moves, and replies are coherent with the stated purpose, but outgoing email replies are high-impact and one code path treats ask mode like enabled auto-reply rather than approval-required.
!
Instruction Scope
Rules can automatically wake the agent and run custom instructions from incoming email events; this is disclosed, but it needs strong containment because email is untrusted input.
Install Mechanism
There is no registry install spec, while the bundled documentation describes npm dependency installation for a TypeScript plugin. The npm install step is user-directed and purpose-aligned.
Credentials
The plugin needs IMAP credentials and may use a Telegram bot token for notifications; that access is expected for the stated function but sensitive.
Persistence & Privilege
The plugin runs persistently inside the OpenClaw Gateway and monitors email continuously. This is central to real-time push notifications and is disclosed, but users should understand how to disable it.
Scan Findings in Context
[suspicious.destructive_delete_command] expected: The flagged `rm -rf ~/.openclaw/extensions/bee-push-email` command targets this plugin's own extension directory in documentation/cleanup context and is not shown as automatic execution.
What to consider before installing
Review this skill carefully before installing. Use an app-specific email password, lock down your OpenClaw config file, keep auto-reply off unless you fully trust the rules, and avoid `reply` or `agent_command` rules until the ask-mode approval and email-content containment issues are fixed.
!
CHANGELOG.md:56
Documentation contains a destructive delete command without an explicit confirmation gate.
!
README.md:209
Documentation contains a destructive delete command without an explicit confirmation gate.
About static analysis
These patterns were detected by automated regex scanning. They may be normal for skills that integrate with external APIs. Check the VirusTotal and OpenClaw results above for context-aware analysis.

Verification

Tier
structural
Scope
artifact only
Summary
Validated package structure and extracted metadata.
Scan status
suspicious

Tags

latest
2.9.1

🐝 bee-push-email v2.7.4 — OpenClaw Plugin

Real-time IMAP IDLE email push notifications for OpenClaw with a flexible rule engine.


What can bee-push-email do?

Q: How quickly does it notify me when a new email arrives? Using IMAP IDLE, the plugin detects new emails within ~1 second of arrival. It runs as a background service inside the OpenClaw Gateway — no polling, no subprocess, no delay.

Q: Do I need to leave something open for it to work? No. The plugin runs as part of the OpenClaw Gateway daemon, which stays running on your machine at all times. As long as the Gateway is running, email monitoring is active.

Q: Can I silence specific types of emails without being notified? Yes. Create a rule with the silence action. For example: mark all GitHub notification emails as read and move them to a folder silently — but still catch emails from GitHub where the subject contains "security alert" and notify those immediately.

Q: Can it reply to emails automatically? Yes, with three modes: false (never reply — default), ask (asks your approval before each reply), or true (agent composes and sends replies based on your rules). Toggle at any time with /beemail_reply_off, /beemail_reply_ask, or /beemail_reply_on.

Q: Can I define rules that trigger custom agent actions? Yes. The agent_command action lets you write a natural language instruction that runs whenever a matching email arrives. For example: "When an invoice arrives from any supplier, extract the amount and due date and save them to my expenses tracker."

Q: How do I create rules? Do I need to edit JSON manually? Use /beemail_rule_add from Telegram — the agent guides you through creating a rule interactively. You can also edit bee-push-email-rules.json directly in your workspace if you prefer.

Q: Can I filter by sender, domain, subject, or email body? Yes. Rules match on from, from_domain, to, subject, folder, and body_preview. Conditions combine with AND, OR, and NOT logic.

Q: What happens if my internet connection drops? The plugin reconnects automatically with exponential backoff (10s → 20s → 40s → up to 5 min). On reconnect it fetches any emails missed while disconnected before re-entering IDLE.

Q: Will it flood me with notifications on first install? No. On first install the plugin initializes to the current mailbox position and only notifies about emails that arrive after installation.

Q: Is my email password stored securely? The password lives in openclaw.json. Use an app-specific password (not your main password) and chmod 600 ~/.openclaw/openclaw.json. App password setup for Gmail, Outlook, and Yahoo is covered in the guided wizard.

Q: Can I test a rule before activating it? Yes. /beemail_rule_test <rule_id> tests any rule against the last email received in the current session and shows whether it would match and which actions would run.


Architecture

Native OpenClaw Plugin (TypeScript, runs in-process with the Gateway):

  • registerService — persistent IMAP IDLE connection inside the Gateway process
  • enqueueSystemEvent — true push (~1s latency, wakes the agent immediately)
  • registerCommand — direct Telegram commands, no LLM overhead for status queries
  • Bundled SKILL.md — agent instructions shipped with the plugin

Installation

Option A — via OpenClaw CLI (recommended)

openclaw plugins install clawhub:bee-push-email

This copies the plugin to ~/.openclaw/extensions/bee-push-email/, installs npm dependencies, and registers it in your config automatically.

Option B — manual install from zip

# 1. Extract the zip into the extensions directory
unzip bee-push-email-plugin-v2.7.4.zip -d /tmp/
cp -r /tmp/bee-push-email ~/.openclaw/extensions/bee-push-email

# 2. Install npm dependencies (required — the plugin needs imapflow and zod)
cd ~/.openclaw/extensions/bee-push-email
npm install --ignore-scripts

# 3. Add the plugin to openclaw.json (see config below)

# 4. Restart the Gateway
openclaw gateway restart

Why npm install? The plugin uses imapflow (IMAP IDLE library) and zod (config validation). These are not bundled in the zip — they must be installed separately. Without this step the Gateway logs Cannot find module 'imapflow' and the plugin fails to load.

Minimum config for openclaw.json

Add this block to start the Gateway immediately after install, before running the guided setup. All IMAP fields are empty — the plugin loads cleanly and waits for /beemail_install.

{
  "plugins": {
    "allow": ["bee-push-email"],
    "entries": {
      "bee-push-email": {
        "enabled": true,
        "config": {}
      }
    }
  }
}

Then restart:

openclaw gateway restart

Send /beemail_install to your agent — it will walk you through the full setup.

Full config example (after running /beemail_install)

{
  "plugins": {
    "allow": ["bee-push-email"],
    "entries": {
      "bee-push-email": {
        "enabled": true,
        "config": {
          "host": "imap.gmail.com",
          "port": 993,
          "ssl": true,
          "email": "you@gmail.com",
          "password": "abcd efgh ijkl mnop",
          "folder": "INBOX",
          "preferred_channel": "telegram",
          "rules_file": "bee-push-email-rules.json",
          "auto_reply_mode": "false"
        }
      }
    }
  }
}

Common IMAP hostnames:

ProviderHost
Gmailimap.gmail.com
Outlook / Office 365outlook.office365.com
Yahooimap.mail.yahoo.com
Self-hostedmail.yourdomain.com

App-specific passwords (recommended over your main password):

  • Gmail → myaccount.google.com → Security → App passwords
  • Outlook → account.microsoft.com → Security → App passwords
  • Yahoo → account.yahoo.com → Security → Generate app password

After saving config, always restart the Gateway:

openclaw gateway restart

Guided setup

After the Gateway is running with the minimum config above, send this to your agent:

/beemail_install

The agent walks you through each setting one at a time, then writes the completed config to openclaw.json and restarts the Gateway automatically.

To update an existing config later: /beemail_reconfigure


Rules

Copy bee-push-email-rules.example.json to your workspace as bee-push-email-rules.json and customize, or use /beemail_rule_add from Telegram to create rules interactively. Full schema reference in skills/bee-push-email/SKILL.md.


Telegram commands

CommandDescription
/beemailStatus: connection + rule count
/beemail_installFirst-time guided setup wizard
/beemail_reconfigureUpdate existing config interactively
/beemail_rulesList all rules
/beemail_rule_addAdd a rule (agent-guided)
/beemail_rule_toggle <id>Enable or disable a rule
/beemail_rule_delete <id>Delete a rule
/beemail_rule_test <id>Test rule against last email
/beemail_reply_offDisable auto-reply (default)
/beemail_reply_askRequire approval before replying
/beemail_reply_onEnable auto-reply

Troubleshooting

Cannot find module 'imapflow' The plugin was copied manually without installing dependencies. Fix:

rm -rf ~/.openclaw/extensions/bee-push-email
openclaw plugins install ./bee-push-email-plugin-v2.7.4.zip

plugins.allow: plugin not found: bee-push-email The plugin must be in ~/.openclaw/extensions/bee-push-email/. If it ended up in ~/.openclaw/plugins/, remove it and reinstall:

rm -rf ~/.openclaw/plugins/bee-push-email
openclaw plugins install ./bee-push-email-plugin-v2.7.4.zip

Provenance warning on every Gateway start (loaded without install/load-path provenance) The plugin was copied manually instead of installed via the CLI. Reinstall properly:

rm -rf ~/.openclaw/extensions/bee-push-email
openclaw plugins install ./bee-push-email-plugin-v2.7.4.zip

Plugin logs appear twice Two copies of the plugin exist (~/.openclaw/plugins/ and ~/.openclaw/extensions/). Remove both and reinstall:

rm -rf ~/.openclaw/plugins/bee-push-email ~/.openclaw/extensions/bee-push-email
openclaw plugins install ./bee-push-email-plugin-v2.7.4.zip

must have required property 'host' You are running an old version of the plugin (pre-2.7.0) that required host, email, and password to be present. Update to v2.7.4 and use "config": {} for a fresh install.

Gateway starts but /beemail shows ⚙️ Not configured Expected — this means the plugin loaded successfully but IMAP credentials are not set yet. Send /beemail_install to complete setup.


Migration from v1.x (Python watcher)

  1. Stop the old watcher: bash uninstall.sh --yes
  2. Install the plugin and run the guided setup: /beemail_install
  3. Copy or recreate your rules in bee-push-email-rules.json
  4. openclaw gateway restart

The gateway token missing issue from v1.x is resolved — the plugin runs in-process with the Gateway and requires no separate authentication.


Development

npm install
npx tsc --noEmit   # type-check
npx tsdown src/index.ts --format esm --dts   # build

Changelog

See CHANGELOG.md