/install bee-push-email-skill
Email Push — IMAP IDLE → OpenClaw Agent → User Notification
Real-time email monitoring: IMAP IDLE detects new emails, triggers OpenClaw agent to process and notify the user via their active channel.
Security & Permissions
The agent MUST explicitly inform the user of all actions below and obtain approval before starting installation. Do not proceed without confirmed user consent.
What this skill installs (requires root)
| Action | Path / Target | Notes |
|---|---|---|
| System user | imap-watcher (useradd -r) |
Service runs as this non-root user |
| Python venv | /opt/imap-watcher/ |
Isolated env, not system-wide |
| pip package | imapclient (inside venv only) |
Not installed system-wide |
| Watcher script | /opt/imap-watcher/imap_watcher.py |
Copied from skill directory |
| systemd unit | /etc/systemd/system/imap-watcher.service |
Enabled + started, restarts on boot |
| Config file | /opt/imap-watcher/watcher.conf |
chmod 600, owner imap-watcher only |
| Log file | /var/log/imap-watcher.log |
chmod 640, owner imap-watcher |
External downloads (requires user awareness)
| What | From | Condition |
|---|---|---|
himalaya binary |
github.com/pimalaya/himalaya/releases/latest/ |
Only if not already installed |
| Method | curl | tar into /usr/local/bin/ |
Writes a system binary |
Credentials accessed
| Credential | Source | Usage |
|---|---|---|
| IMAP email password | Provided by user at install time | IMAP IDLE connection |
Telegram botToken |
Read from ~/.openclaw/openclaw.json |
Registers /beemail* commands via Telegram API (setMyCommands) |
The bot token is never stored by this skill.
Auto-reply behaviour
By default, the agent is instructed not to reply to email senders. This prevents exposing that the system is active and avoids phishing/spam risks. The allow_auto_reply field in watcher.conf controls this:
| Value | Behaviour |
|---|---|
false (default) |
Agent notifies you via Telegram only. Never replies to senders. |
ask |
Agent asks you for explicit approval via Telegram before replying. |
true |
Agent may reply to senders if it deems appropriate (least safe). |
Configured interactively during install. Change anytime with --reconfigure + systemctl restart imap-watcher.
If auto_reply_mode is missing from an existing install, the watcher logs [SECURITY] WARNING on startup and notifies the agent to alert you. The safe default false is applied until you run --reconfigure. It is read once per operation and used only to call api.telegram.org. The agent must inform the user that their bot token will be used to modify the bot's command menu.
Persistence
This skill installs a persistent background service (Restart=always, starts on boot). It maintains a continuous IMAP connection. The service runs as the dedicated imap-watcher user, not as root.
Uninstall removes everything: service, systemd unit, /opt/imap-watcher/, log file, system user, and Telegram bot commands.
Install Flow (4 stages)
Stage 1: Dependencies (--deps)
python3 /root/.openclaw/workspace/skills/bee-push-email/scripts/setup.py --deps
Stage 2: Test Connection (--test)
echo '{"host":"...","port":993,"ssl":true,"email":"...","password":"..."}' | python3 /root/.openclaw/workspace/skills/bee-push-email/scripts/setup.py --test
Stage 3: Install (only if Stage 1+2 passed)
echo '{"host":"...","port":993,"ssl":true,"email":"...","password":"..."}' | python3 /root/.openclaw/workspace/skills/bee-push-email/scripts/setup.py
Stage 4: Verify (automatic)
Other Modes
Register Bot Commands (after update)
python3 /root/.openclaw/workspace/skills/bee-push-email/scripts/setup.py --register-commands
Reconfigure (after update)
After running clawhub update bee-push-email, new config fields may be available. Run:
python3 /root/.openclaw/workspace/skills/bee-push-email/scripts/setup.py --reconfigure
This detects fields missing from your existing /opt/imap-watcher/watcher.conf and asks about each one interactively — without touching your existing values. Restart the service after: systemctl restart imap-watcher.
Force Reinstall
echo '{...}' | python3 /root/.openclaw/workspace/skills/bee-push-email/scripts/setup.py --force
Show Config / Uninstall
python3 /root/.openclaw/workspace/skills/bee-push-email/scripts/setup.py --show
bash /root/.openclaw/workspace/skills/bee-push-email/scripts/uninstall.sh --yes
Telegram Bot Commands
\x3Cdetails> \x3Csummary>Click to expand command details\x3C/summary>
/beemail_status
systemctl is-active imap-watcher+systemctl status imap-watcher --no-pager -l- Last 10 log lines:
journalctl -u imap-watcher -n 10 --no-pager - UID state:
cat /opt/imap-watcher/last_seen_uids.json - Report: status, uptime, last email, IMAP state
/beemail_start
systemctl start imap-watcher→ wait 3s → verify active → show last 5 log lines
/beemail_stop
systemctl stop imap-watcher→ verify inactive → report
/beemail_test
- Check service active → read target email from config → tell user to send test email
- Optionally run:
setup.py --test
/beemail
Quick summary: service active? + last email processed + one-liner health
/beemail_reply
Show current auto-reply mode:
- Run
python3 \x3Cskill_dir>/scripts/setup.py --reply-status - Report current mode with label: DISABLED / ASK / ENABLED
/beemail_reply_off
Disable auto-reply immediately:
- Run
python3 \x3Cskill_dir>/scripts/setup.py --reply-off - Service restarts automatically
- Confirm: "🔒 Auto-reply DISABLED"
/beemail_reply_ask
Set approval-required mode:
- Run
python3 \x3Cskill_dir>/scripts/setup.py --reply-ask - Service restarts automatically
- Confirm: "❓ Auto-reply set to ASK"
/beemail_reply_on
Enable auto-reply — warn the user first:
- Inform user: "⚠️ Enabling auto-reply exposes system activity to all senders including spam/phishing. Confirm?"
- Only proceed if user confirms
- Run
python3 \x3Cskill_dir>/scripts/setup.py --reply-on - Service restarts automatically
- Confirm: "⚠️ Auto-reply ENABLED"
\x3C/details>
Telegram Bot Commands Troubleshooting
If /beemail* commands don't appear in the Telegram menu after install:
-
Verify registration:
python3 /root/.openclaw/workspace/skills/bee-push-email/scripts/setup.py --register-commands -
Manual registration via BotFather:
- Open @BotFather in Telegram
- Send
/setcommands - Select your bot
- Add each command:
beemail— Email push status & recent emailsbeemail_start— Start IMAP email watcherbeemail_stop— Stop IMAP email watcherbeemail_status— Detailed watcher service statusbeemail_test— Send test email to verify push
-
If bot token not found: The setup reads
botTokenfrom~/.openclaw/openclaw.json. Check that the Telegram channel is configured. -
Commands registered but agent doesn't respond: The agent needs this skill installed to handle the commands. Verify with
clawhub list.
Troubleshooting
- Logs:
journalctl -u imap-watcher -f - Status:
systemctl status imap-watcher - Restart:
systemctl restart imap-watcher - Config:
/opt/imap-watcher/watcher.conf(JSON, chmod 600) - State:
/opt/imap-watcher/last_seen_uids.json
Architecture
imap_watcher.pymaintains persistent IMAP IDLE connection- On new email, resolves active OpenClaw session (with 60s cache)
- Triggers
openclaw agent --deliverto process and notify user - Uses Himalaya for email operations (read, move, reply)
- Runs as systemd service as dedicated
imap-watcheruser with auto-reconnect, exponential backoff, and health checks
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install bee-push-email-skill - 安装完成后,直接呼叫该 Skill 的名称或使用
/bee-push-email-skill触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Bee Push Email 是什么?
Monitors email in real-time via IMAP IDLE and triggers the OpenClaw agent to notify users through active channels like Telegram or Discord. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 262 次。
如何安装 Bee Push Email?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install bee-push-email-skill」即可一键安装,无需额外配置。
Bee Push Email 是免费的吗?
是的,Bee Push Email 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Bee Push Email 支持哪些平台?
Bee Push Email 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Bee Push Email?
由 canihojr(@canihojr)开发并维护,当前版本 v1.5.3。