首页龙虾技能列表 › Snail Mail — 蜗牛邮件

Snail Mail — 蜗牛邮件

v1.0.0

蜗牛邮件工具。

0· 707·0 当前·0 累计
by @dvdegenz (Memeothy)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/13
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
可疑
medium confidence
The skill behavior mostly matches a local 'inbox' purpose, but there are several small mismatches (it requires Node and reads environment variables that are not declared) that don't line up with the registry metadata.
评估建议
This skill appears to be a simple local inbox: it stores messages in a JSON file and has no networking or secret access. Before installing, note these inconsistencies: (1) The CLI uses Node.js but the skill metadata does not declare any required binary — ensure your agent environment provides node and the expected Node version. (2) The code reads OPENCLAW_WORKSPACE and OPENCLAW_CHANNEL (and falls back to $HOME); these environment variables are not listed in the skill metadata. Confirm where the ...
详细分析 ▾
用途与能力
The skill is an on-disk inbox and the code implements that exactly (local JSON storage, add/list/archive/render). However the registry lists no required binaries while the CLI and scripts clearly assume a Node.js runtime (commands call 'node .../scripts/inbox.js'). The absence of a declared runtime is an incoherence: a consumer or agent orchestrator needs to know Node is required.
指令范围
SKILL.md instructs the agent to create/read/write {workspace}/inbox/messages.json and to run the included Node script for add/list/render/heartbeat. The runtime code also reads process.env.OPENCLAW_WORKSPACE and process.env.OPENCLAW_CHANNEL for behavior. Those environment variables are referenced in instructions/code but are not declared in the skill metadata. Apart from that, the instructions stay within the expected scope (no network calls, no reading of unrelated files).
安装机制
There is no install spec (instruction-only), which minimizes supply-chain risk. The skill includes a single JS script that is run by the agent; nothing is downloaded or extracted at install time. This is coherent and low-risk from an install mechanism perspective.
凭证需求
The skill requests no secrets and does not attempt to access external endpoints — that's good. However, it relies on environment variables (OPENCLAW_WORKSPACE and OPENCLAW_CHANNEL) and falls back to HOME if not set; these env vars are not declared in requires.env or listed as primaryEnv. The metadata should list the runtime requirement (Node) and any env vars the skill expects so users know what will be read and where data will be written.
持久化与权限
The skill does not request 'always: true' and does not modify other skills or system-wide settings. It writes only to an inbox directory under the workspace/HOME and uses atomic file writes. Autonomous invocation (disable-model-invocation=false) is normal and not by itself a concern here.
安全有层次,运行前请审查代码。

License

MIT-0

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

运行时依赖

无特殊依赖

版本

latestv1.0.02026/2/13

- Initial release of snail-mail: a "slow channel" inbox for non-urgent, notable, or decision-requiring operator messages. - Automatically creates and manages an inbox file for message storage. - Includes CLI for adding messages with priority, listing, marking read, archiving, and rendering in multiple formats. - Provides clear guidance on what types of events should be reported, how to prioritize, and how to write actionable entries. - Inbox integrates with heartbeat checks to surface only urgent messages proactively.

● 可疑

安装命令 点击复制

官方npx clawhub@latest install snailmail
镜像加速npx clawhub@latest install snailmail --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.

当...时 到 写入 到 Inbox

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

写入 当...时:

  • Needs decision — something 仅 human 可以 resolve (payment, approval, policy)
  • Abnormal — errors, failures, unexpected patterns, security events
  • Interesting — notable engagement, media mentions, milestones, opportunities
  • FYI — context might matter later 但是 needs 否 action 现在

做 不 写入 当...时:

  • Routine 成功 ("cron ran fine", "heartbeat OK")
  • Something 您 已经 told them 在...中 chat
  • Trivial events 带有 否 lasting significance
  • Duplicate 的 something 已经 在...中 inbox

Priority levels:

  • urgent — needs attention 在...内 hours (prefix title 带有 [URGENT])
  • important — 应该 see today (prefix title 带有 [IMPORTANT])
  • normal — whenever 它们 check (否 prefix)

Writing good entries:

  • Title: Short, scannable. Include 谁 或 什么. ("@bigaccount (500K) mentioned us", 不 "Social media 事件")
  • 消息: 1-3 sentences. 什么 happened, 为什么 matters, 什么 (如果 anything) needs 正在做. Include links/handles 当...时 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) 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 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.

数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

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

了解定制服务