首页龙虾技能列表 › Snail Mail — 技能工具

Snail Mail — 技能工具

v1.0.2

[自动翻译] A slow-channel inbox for leaving your operator important messages. Use when something notable, abnormal, or decision-requiring happens and the operato...

0· 761·0 当前·0 累计
by @dvdegenz (Memeothy)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/2/26
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
high confidence
This skill is internally consistent: a local Node.js inbox that stores messages under the workspace and formats/renders them for channels; it requires only local workspace/channel config and does not attempt network access or unrelated privileges.
评估建议
This skill is a simple, local inbox implemented in Node and appears to do only what it says: write/read messages at {workspace}/inbox/messages.json and render them for different channels. Before installing, consider: (1) choose a safe OPENCLAW_WORKSPACE location (don't point it at a directory with sensitive secrets) because messages are stored in plaintext JSON; (2) OPENCLAW_CHANNEL controls render formatting—set it appropriately; (3) the skill will potentially run during automated heartbeats an...
详细分析 ▾
用途与能力
Name/description match the implementation. The script provides an on-disk inbox (messages.json) and CLI for add/list/read/archive/render which fits the stated slow-channel inbox purpose. Required binary (node) and env vars (workspace, channel) are appropriate for local storage and presentation.
指令范围
SKILL.md instructs the agent to run the included Node script for all inbox operations and to check unread urgent items during heartbeats. The instructions only reference the workspace path and OPENCLAW_CHANNEL (both declared) and do not ask the agent to read unrelated files or transmit data externally. The guidance to not add commentary when rendering is an operational preference, not a security issue.
安装机制
There is no install spec (instruction-only with an included script). That keeps risk low: nothing is downloaded or installed automatically. The single included script is plain Node.js code with no external network calls or hidden install steps.
凭证需求
The declared required env vars (OPENCLAW_WORKSPACE and OPENCLAW_CHANNEL) are reasonable for storage and channel auto-formatting. Minor inconsistency: the code falls back to process.env.HOME and allows an empty OPENCLAW_CHANNEL (defaults to text rendering); nevertheless requiring the env vars in metadata is not harmful but slightly disproportionate to the script's defaults.
持久化与权限
Skill does not request always:true and does not modify other skills or system-wide settings. It writes only to a workspace subdirectory (inbox/messages.json). Autonomous invocation is allowed (platform default) and appropriate here since the skill is meant to be checked during heartbeats.
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.22026/2/13

Fix registry metadata: declare node in requires.bins and OPENCLAW_WORKSPACE/OPENCLAW_CHANNEL in requires.env via metadata.openclaw format

● 无害

安装命令 点击复制

官方npx clawhub@latest install snail-mail
镜像加速npx clawhub@latest install snail-mail --registry https://cn.clawhub-mirror.com

技能文档

A "slow channel" between you and your operator. Not every event deserves a ping. The inbox captures what matters and presents it beautifully when they're ready to look.

Setup

On first use, the inbox file is created automatically at {workspace}/inbox/messages.json.

Requires: node (Node.js runtime).

When to Write to the Inbox

Write an inbox entry when something is notable enough that your operator would want to know, but not urgent enough to interrupt them.

Write when:

  • Needs decision — something only a human can resolve (payment, approval, policy)
  • Abnormal — errors, failures, unexpected patterns, security events
  • Interesting — notable engagement, media mentions, milestones, opportunities
  • FYI — context that might matter later but needs no action now

Do NOT write when:

  • Routine success ("cron ran fine", "heartbeat OK")
  • Something you already told them in chat
  • Trivial events with no lasting significance
  • Duplicate of something already in the inbox

Priority levels:

  • urgent — needs attention within hours (prefix title with [URGENT])
  • important — should see today (prefix title with [IMPORTANT])
  • normal — whenever they check (no prefix)

Writing good entries:

  • Title: Short, scannable. Include the WHO or WHAT. ("@bigaccount (500K) mentioned us", not "Social media event")
  • Message: 1-3 sentences. What happened, why it matters, what (if anything) needs doing. Include links/handles when relevant.

CLI Usage

# Add entry
node {skill}/scripts/inbox.js add "Title" "Description of what happened"

# Add with priority node {skill}/scripts/inbox.js add "[URGENT] Server disk 95%" "Only 2GB remaining on /dev/sda1"

# List unread node {skill}/scripts/inbox.js list

# List all (including read) node {skill}/scripts/inbox.js list all

# List archived node {skill}/scripts/inbox.js list archived

# Mark one read node {skill}/scripts/inbox.js read

# Mark all read node {skill}/scripts/inbox.js read-all

# Archive one node {skill}/scripts/inbox.js archive

# Archive all read node {skill}/scripts/inbox.js archive-read

# Render for chat (auto-detects channel via OPENCLAW_CHANNEL) node {skill}/scripts/inbox.js render [unread|all|archived]

# Render as HTML (force) node {skill}/scripts/inbox.js render --html

# Render as markdown (force) node {skill}/scripts/inbox.js render --md

# Render as plain text (force) node {skill}/scripts/inbox.js render --text

Presenting the Inbox

When the operator asks to see their inbox (or says "inbox", "messages", "check inbox"), run:

node {skill}/scripts/inbox.js render [unread|all|archived] [--html|--md|--text]

Choose format based on channel:

  • Telegram, webchat--html
  • Discord, Slack--md
  • SMS, plain--text

Send the output as your reply. Do not add commentary unless they ask.

Heartbeat Integration

During heartbeats, check for unread urgent/important items:

node {skill}/scripts/inbox.js list unread --json

If urgent items exist, surface them proactively. Otherwise stay quiet.

Storage

Messages stored in {workspace}/inbox/messages.json. Single-writer (the agent), so no locking needed. Writes use atomic rename (write .tmp → rename) to prevent corruption.

Environment variables:

  • OPENCLAW_WORKSPACE — base directory for inbox storage (defaults to $HOME)
  • OPENCLAW_CHANNEL — used by render auto-format detection (telegram/discord/slack/webchat)
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务