OpenClaw/clawhub-security-signals huggingface dataset:
Skill: gztanht/sharkflow (version 0.2.0)

--- name: sharkflow description: ⚡ SharkFlow - 链上任务自动化，智能合约交互队列 + 多签工作流 version: 0.1.0 author: gztanht license: MIT tags: [task, workflow, multisig, defi, automation, shark] pricing: free_tier: 5 tasks/day sponsorship: 0.5 USDT or 0.5 USDC for unlimited note: "Feel free to sponsor more if you find it useful!" wallet: usdt_erc20: [REDACTED_SECRET] usdc_erc20: [REDACTED_SECRET] metadata: clawdbot: emoji: ⚡ requires: bins: [npm, node] --- # ⚡ SharkFlow - 链上任务自动化 **Automate Your On-Chain Workflow** - 闪电般高效执行！ ## Overview SharkFlow 是专为 DeFi 用户设计的任务管理工具，支持智能合约交互队列、多签工作流、定时任务执行等功能。批量操作、自动化执行，解放你的双手。 ## Features - 📋 **任务队列** - 批量添加链上操作，一键执行 - 🔐 **多签支持** - 多签名钱包工作流管理 - ⏰ **定时任务** - 设定时间自动执行（如定投、复投） - 📊 **历史追踪** - 完整的任务执行历史 - 🔔 **完成提醒** - Telegram/邮件通知 - 🔄 **模板系统** - 保存常用操作模板 ## Installation ```bash npx @gztanht/sharkflow ``` ## Usage ### 创建任务 ```bash # 添加 USDT 存款任务 node scripts/flow.mjs add --action deposit --token USDT --amount 1000 --platform aave # 添加 ETH 兑换任务 node scripts/flow.mjs add --action swap --from ETH --to USDC --amount 0.5 # 添加批量任务 node scripts/flow.mjs batch --file tasks.json ``` ### 执行任务 ```bash # 执行队列中的任务 node scripts/flow.mjs execute # 执行特定任务 node scripts/flow.mjs execute --id 123 # 模拟执行（不实际提交） node scripts/flow.mjs execute --dry-run ``` ### 多签工作流 ```bash # 创建多签任务 node scripts/flow.mjs multisig create --required 3 --signers 0x123,0x456,0x789 # 签名任务 node scripts/flow.mjs multisig sign --taskId 123 # 查看签名状态 node scripts/flow.mjs multisig status --taskId 123 ``` ### 定时任务 ```bash # 设置每周一定投 node scripts/flow.mjs schedule --action deposit --amount 100 --recur weekly --day monday # 查看定时任务 node scripts/flow.mjs schedule --list ``` ## Supported Actions | 操作 | 描述 | 支持平台 | |------|------|----------| | deposit | 存款 | Aave, Compound, Spark | | withdraw | 取款 | Aave, Compound, Spark | | swap | 代币兑换 | Uniswap, Curve, 1inch | | stake | 质押 | Lido, Rocket Pool | | claim | 领取奖励 | 所有 yield 平台 | | bridge | 跨链 | Stargate, Hop, Across | ## Configuration 编辑 `config/wallets.json` 添加钱包： ```json { "wallets": [ {"name": "Main", "address": "0x...", "type": "EOA"}, {"name": "Safe", "address": "0x...", "type": "Safe", "required": 2, "signers": [...]} ] } ``` ## Safety - ✅ 模拟执行 - 实际提交前预览结果 - ✅ 限额设置 - 单笔/每日交易限额 - ✅ 白名单 - 只允许预定义的合约交互 - ✅ 多签确认 - 大额交易需要多签 ## Support - 📧 Email: [REDACTED_SECRET] - 💬 Telegram: @SharkFlowBot - 🦈 赞助：USDT (ERC20): [REDACTED_SECRET] ## License MIT © 2026 gztanht


Security scan verdicts — ClawScan: suspicious | static analysis:  | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: oki3505f/telegram-cloud-storage (version 1.8.2)

--- name: telegram-cloud-storage description: A high-performance Telegram Cloud Storage solution using Teldrive. Turns Telegram into an unlimited cloud drive with a local API/UI. metadata: {"openclaw":{"requires":{"bins":["teldrive"]},"install":[{"id":"binary","kind":"exec","command":"./scripts/install_binary.sh","label":"Download Teldrive Binary"}]}} --- # Telegram Cloud Storage (Teldrive Edition) This skill runs [Teldrive](https://github.com/tgdrive/teldrive), a powerful utility that organizes Telegram files and provides a high-speed API/UI for accessing them. ## Features - **Unlimited Storage**: Uses Telegram as a backend. - **High Performance**: Written in Go, optimized for speed. - **UI & API**: Includes a web interface and REST API. - **AI-Native Client**: Includes `client.py` for agent-based file operations. ## Credits This skill is a wrapper for [Teldrive](https://github.com/tgdrive/teldrive) by [divyam234](https://github.com/divyam234). All credit for the core engine goes to the original authors. ## Requirements 1. **PostgreSQL Database**: Version 17+ recommended. 2. **pgroonga Extension**: Required for file search within Postgres. 3. **Telegram API**: App ID and Hash from [my.telegram.org](https://my.telegram.org). ## Installation ### 1. Database Setup Ensure Postgres is running and the `pgroonga` extension is installed. ```sql CREATE DATABASE teldrive; \c teldrive CREATE EXTENSION IF NOT EXISTS pgroonga; ``` ### 2. Configure Run the setup script to generate `config/config.toml`: ```bash ./scripts/setup.sh ``` ### 3. Start Server ```bash ./scripts/manage.sh start ``` ## Agent Usage The skill includes a Python client for programmatic access. ### Environment Variables - `TELDRIVE_TOKEN`: Your JWT token (get this from the UI or `config/token.txt` after login). - `TELDRIVE_SESSION_HASH`: Your Telegram session hash (found in the `teldrive.sessions` table). ### Commands ```bash # List files python3 scripts/client.py list / # Upload a file python3 scripts/client.py upload local_file.txt /remote/path # Download a file python3 scripts/client.py download <file_id> local_save_path ``` ## Directory Structure - `bin/`: Teldrive binary. - `config/`: Configuration templates and generated config. - `scripts/`: Setup, management, and client scripts. - `logs/`: Application logs.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (CRITICAL)
Skill: blakefolgado/toolrouter (version 1.0.2)

--- name: toolrouter description: One MCP gateway to 230+ AI tools — SEO, web search, image generation, video, screenshots, security scanning, and more. Auto-provisions on first use with no API key setup required. version: 1.0.2 homepage: https://toolrouter.com tags: [mcp, tools, ai-agent, seo, image-generation, web-search, video, security, gateway, aggregator] agent-requested: true user-invocable: false --- # ToolRouter ToolRouter gives AI agents access to 230+ tools through a single MCP connection. One integration replaces managing dozens of separate provider accounts and API keys. ## Install in OpenClaw Add to `~/.openclaw/openclaw.json`: ```json { "mcpServers": { "toolrouter": { "command": "npx", "args": ["-y", "toolrouter-mcp"] } } } ``` Or paste this into OpenClaw and it sets itself up: > Add ToolRouter MCP server to my OpenClaw config at ~/.openclaw/openclaw.json. Add a "toolrouter" entry under mcpServers with command "npx" and args ["-y", "toolrouter-mcp"]. No API key needed — account auto-provisions on first use. Restart OpenClaw. All ToolRouter tools will be available. ## Remote MCP (no install) Connect directly without npx: ``` https://api.toolrouter.com/mcp ``` ## How It Works - **Auto-provisions** — no API key or account setup needed. On first use it auto-creates an account and prints a claim URL to add billing details. - **230+ tools** — SEO, web search, image generation, video, screenshots, security scanning, company lookup, flight search, social media, financial data, and more. - **One connection** — replaces managing separate accounts for dozens of providers. - **Usage-based** — free tools work immediately. Paid tools cost fractions of a cent per call. ## Discover Tools ``` discover * # list all available tools discover seo # search by category discover screenshots # search by keyword ``` ## Example Calls ``` use_tool("seo", "analyze_page", { url: "https://example.com" }) use_tool("web-search", "search", { query: "latest AI news" }) use_tool("generate-image", "text_to_image", { prompt: "a cat in space" }) use_tool("web-screenshot", "capture", { url: "https://example.com" }) use_tool("company-lookup", "get_company", { domain: "example.com" }) ``` ## Links - Website: https://toolrouter.com - Tools catalog: https://toolrouter.com/tools - Setup guide: https://toolrouter.com/connect - npm: https://www.npmjs.com/package/toolrouter-mcp


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ayue-oss/coupon-finder (version 1.0.5)

--- name: coupon-finder description: "优惠券查询与领取技能。覆盖外卖券、酒店券、打车券、咖啡券、电影票、超市券等多场景，输入需求自动匹配最优活动链接。触发词: 优惠券查询, 领取优惠券, 有什么优惠, 外卖券, 外卖红包, 酒店券, 打车券, 咖啡优惠, 电影优惠, 帮我找优惠, 哪里有折扣, 推荐优惠活动, 今天有什么券, 点外卖优惠, 订酒店便宜, [品牌名]有优惠吗" metadata: { "openclaw": { "emoji": "🎫", "requires": {} } } --- # 优惠券查询 · 场景快取 (Coupon Finder) 根据用户描述的**场景、品牌或需求**，智能匹配优惠活动，返回可直接使用的推广链接。 覆盖美团、饿了么、滴滴、淘宝闪购、飞猪、同程、携程、京东外卖等 88 个活动。 --- ## 触发词 **查询优惠：** - "有什么优惠" / "帮我找优惠" - "点外卖有什么活动" / "外卖红包" - "打车有优惠吗" / "滴滴券" - "订酒店便宜点" / "酒店优惠" - "咖啡打折" / "星巴克有折扣吗" - "电影票便宜" / "看电影优惠" - "今天有什么可以领" / "推荐优惠活动" - "[品牌名]有优惠吗" **分享活动（直接回复链接，无需查询数据库）：** - "我要分享活动" / "我想提交优惠" - "怎么分享优惠券" / "如何添加活动" - "提交活动链接" / "分享链接" --- ## 支持的场景关键词 | 场景 | 关键词示例 | |------|-----------| | 外卖 | 外卖、点餐、吃饭、美团外卖、饿了么、京东外卖 | | 打车 | 打车、出行、滴滴、花小猪、T3、代驾、顺风车 | | 酒店 | 酒店、住宿、订房、民宿 | | 机票 | 机票、飞机、航班 | | 电影 | 电影、影票、淘票票、观影 | | 咖啡饮品 | 咖啡、奶茶、星巴克、瑞幸、喜茶、奈雪 | | 快餐 | 肯德基、麦当劳、汉堡王、必胜客 | | 超市零售 | 超市、零售、生鲜、便利 | | 旅游 | 旅游、度假、景点、门票 | | 医药 | 买药、医药、健康 | --- ## 执行流程 ### 步骤 0：判断是查询还是分享 如果用户意图是**分享/提交活动**，直接回复： ``` 感谢你愿意分享优惠！🎉 请填写这个表单，提交后会有人工审核，通过后就会加入共享活动库，让更多人受益。 📮 提交地址: https://my.feishu.cn/share/base/form/shrcn4ERBYeALeE2cF8SMPIqHUE 填写内容包括：活动名称、活动描述、链接（H5/小程序/口令等）、所属平台。 ``` ### 步骤 1：理解用户意图 提取用户消息中的场景/品牌/需求关键词，例如： - "我想点个外卖" → 关键词: 外卖 - "星巴克怎么便宜买" → 关键词: 星巴克 - "帮我找打车优惠" → 关键词: 打车 ### 步骤 2：调用查询脚本 ```bash node skills/coupon-finder/scripts/find.mjs "<用户查询>" --limit=5 ``` 或者直接使用 JavaScript 导入： ```javascript import { queryActivities, formatResults } from './scripts/find.mjs'; const results = queryActivities(userQuery, { limit: 5 }); const text = formatResults(results, userQuery); ``` ### 步骤 3：返回结果 直接将脚本输出的格式化文本回复给用户，包含： - 活动名称 + 描述 - 标签（场景/平台分类） - 最优链接（优先官方短链接 > H5 > 口令 > 小程序路径） - 可选：其他链接格式说明 --- ## 数据来源 - 数据文件：`skills/coupon-finder/data/activities.json` - 共 88 个活动，覆盖 7 大平台、15+ 场景 - 链接类型：官方短链接 / H5 / 小程序路径 / DeepLink / 口令 --- ## 查询示例 ```bash # 外卖优惠 node find.mjs "点外卖" # 品牌直查 node find.mjs "星巴克" node find.mjs "肯德基优惠" # 出行 node find.mjs "打车有优惠吗" # 酒店 node find.mjs "订酒店" # 返回 JSON 格式（供程序调用） node find.mjs "外卖红包" --format=json --limit=3 ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: smallkeyboy/cross-border-news (version 1.0.0)

--- name: cross-border-ecommerce description: 跨境电商资讯查询 Skill。当用户想知道"跨境电商日报"、"跨境电商资讯"、"Shopee/TikTok Shop/Temu/亚马逊/Lazada 最近动态"、"东南亚电商"、"跨境平台政策"、"选品趋势"、"跨境物流"、"跨境支付"、"出海动态"等任何跨境电商相关资讯时使用。即使用户只说"跨境电商"、"出海资讯"、"电商日报"，或问"Shopee 最近有什么变化"、"TikTok Shop 新政策"等，也应该触发本 Skill。Skill 会从多个跨境电商资讯源抓取最新动态并整理成中文 markdown 简报。**不要 undertrigger**——用户问跨境电商资讯而你不调本 Skill 就是在用过时信息回答。 --- # 跨境电商资讯 Skill 为跨境卖家提供一站式电商资讯聚合，覆盖 Shopee、TikTok Shop、Temu、亚马逊、Lazada 等主流平台，关注政策更新、选品趋势、物流支付、行业动态等。 ## 关注平台 - **Shopee**: 泰国、越南、菲律宾、马来西亚、新加坡、台湾 - **TikTok Shop**: 全球各站点 - **Temu**: 全球扩张动态 - **亚马逊**: 全球站点政策 - **Lazada**: 东南亚市场 - **其他**: Coupang、OZON、美客多、速卖通等新兴平台 ## 资讯类型 - **平台政策**: 新规则、费率调整、入驻要求变化 - **选品趋势**: 爆款分析、品类报告、季节性选品 - **物流支付**: 物流政策、仓储变化、支付通道更新 - **行业动态**: 平台融资、收购、人事变动、数据报告 - **市场机会**: 新站点开放、蓝海品类、政策红利 ## 资讯来源 从以下渠道抓取最新资讯： ### 主要资讯源 1. **雨果跨境** (cifnews.com) - 中国跨境电商综合服务平台 - 覆盖全平台资讯 2. **亿邦动力** (ebrun.com) - 电商行业媒体 - 深度报道和分析 3. **跨境知道** (ikjzd.com) - 跨境电商知识社区 - 实操干货较多 ### 平台官方渠道 - Shopee 卖家中心公告 - TikTok Shop 卖家大学 - Temu 卖家后台通知 - 亚马逊卖家论坛 ## 工作流 ### 默认路径：综合日报（宽问题首选） 用户问"跨境电商日报"、"今天跨境电商有什么"、"最近跨境动态"等宽问题时，从多个源抓取最新资讯。 ```bash # 示例：从雨果跨境抓取最新文章 curl -sH "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" "https://www.cifnews.com/" ``` ### 按平台查询 用户明确提到特定平台时，优先搜索该平台相关资讯。 | 用户说 | 查询重点 | |---|---| | "Shopee 最近有什么" | Shopee 各站点政策、活动、选品 | | "TikTok Shop 新政策" | TikTok Shop 规则更新、新功能 | | "Temu 动态" | Temu 扩张、招商政策、运营技巧 | | "亚马逊政策" | 亚马逊新规、FBA 变化、广告政策 | | "Lazada 资讯" | Lazada 东南亚市场动态 | ### 按资讯类型查询 | 用户说 | 查询重点 | |---|---| | "选品趋势" / "爆款分析" | 品类报告、选品建议、热销榜单 | | "平台政策" / "新规" | 各平台规则变化、合规要求 | | "物流动态" | 仓储、配送、清关政策 | | "支付变化" | 收款方式、汇率、费率 | ## 给用户的输出格式 ### 日报式输出 ```markdown **跨境电商日报 · YYYY-MM-DD** ## 平台政策 1. **<标题>** — <来源> <摘要 50 字内> <链接> ## 选品趋势 2. ... ## 物流支付 3. ... ## 行业动态 4. ... ## 市场机会 5. ... ``` **编号贯穿全文**（1, 2, 3 ... N），方便用户快速定位。 ### 按平台分类输出 当用户问特定平台时： ```markdown **Shopee 近期动态** ## 政策更新 1. **<标题>** — <来源> <摘要> <链接> ## 活动促销 2. ... ## 选品建议 3. ... ``` ### 元信息只写人话 **OK**（用户能直接懂）： - "共 15 条" - "时间范围：最近 3 天" - "数据来源：雨果跨境、亿邦动力" **不 OK**（技术细节泄漏）： - ❌ curl 命令或 API 端点 - ❌ HTTP 状态码 - ❌ 抓取技术细节 ## 常见错误处理 - **网站访问失败**：尝试备用源，告知用户部分信息可能缺失 - **无最新资讯**：扩展时间窗口（最近 7 天）或建议用户访问原文 - **内容重复**：去重后展示，避免信息冗余 ## 注意事项 - 跨境电商资讯更新频繁，优先抓取最近 24-72 小时的内容 - 平台政策变化快，重要政策务必让用户核实原文 - 不同站点政策可能不同，注意区分（如 Shopee 泰国站 vs 越南站） - 保持中立，不推荐违规操作或灰色地带策略 ## 不要做 - 不要编造或猜测资讯内容 - 不要把过时信息当作新闻 - 不要遗漏重要平台（用户关注的主要平台） - 不要在摘要中丢失原文链接 - 不要把抓取技术细节展示给用户


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: itsukikuchiki/ai-opportunity-radar (version 2.0.1)

--- name: ai-opportunity-radar description: Discover what in your life could be automated through casual daily conversations. user-invocable: true --- # AI Opportunity Radar **An AI lifestyle observer that helps you discover what in your life could be automated.** Instead of tracking tasks or filling out forms, you simply talk about your day. Over time, the AI observes patterns and surfaces opportunities for automation. --- # Quick Pitch AI Opportunity Radar helps you answer one simple question: **What in my life should be automated?** Through casual conversations, it gradually detects: • repetitive tasks • frustrating workflows • hidden time sinks • structured manual processes --- # Key Features ### 1. Conversational Check-ins Light daily check-ins that feel like chatting, not reporting. --- ### 2. Smart Pattern Detection The AI observes repeated behaviors and identifies patterns in your workflow. --- ### 3. Friction Awareness It notices where you get stuck — whether it's time, information, or decision-related. --- ### 4. Daily Best Action Each day, you receive one small, practical action that helps move things forward. --- ### 5. Weekly Human-like Insight Weekly reflections highlight meaningful patterns in a natural, human tone. --- ### 6. Automation Opportunities When patterns are strong, the AI suggests possible automation ideas or agents. --- # Easy Setup Install in your chat and schedule: - 12:00 / 18:00 / 24:00 → check-ins - 08:00 → daily reflection - Monday 08:00 → weekly reflection Example: Install AI Opportunity Radar in this chat. Ask me check-ins at 12:00, 18:00, 24:00. Send daily reflection at 08:00 and weekly on Monday 08:00. --- # How It Works Conversation → Memory → Insight You talk → AI observes → patterns emerge → insights appear. --- # Design Philosophy **Conversation first, analysis second.** No pressure. No rigid structure. Just natural interaction that gradually becomes insight. --- # Use Cases • discovering automation opportunities • improving workflows • reflecting on daily routines • building an AI-aware lifestyle --- # Final Goal Help you naturally discover what in your life should be automated.

path: skill.json
content: {
  "name": "ai-opportunity-radar",
  "version": "2.0.0",
  "description": "An AI lifestyle observer that helps users discover automation opportunities through casual daily conversations.",
  "user_invocable": true,
  "entry": "prompt.md",
  "author": "AI Opportunity Radar",
  "capabilities": [
    "conversation",
    "reflection",
    "pattern-detection",
    "automation-discovery"
  ]
}


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: briantanthony/vaibot-guard (version 0.2.1)

--- name: openclaw-guard-skill description: Local VAIBot Guard skill for OpenClaw. Use to run the guard service, enforce tool decisions via the OpenClaw circuit-breaker plugin, manage approvals, and validate guard receipts/audit logs. Also use when installing/operating the guard systemd user service or running guard unit tests. --- # OpenClaw Guard Skill (VAIBot v2.1) Provide a **local policy decision service** plus a CLI to gate OpenClaw tool calls and write **tamper-evident audit logs** in `.vaibot-guard/`. ## Sensitive credentials - `VAIBOT_GUARD_TOKEN` — bearer token for Guard endpoints (recommended) - `VAIBOT_API_KEY` — optional: anchor receipts to VAIBot `/prove` Treat these as secrets. ## HTTP API (guard service) - `GET /health` - `POST /v1/decide/exec` + `POST /v1/finalize` (shell exec flows) - `POST /v1/decide/tool` + `POST /v1/finalize/tool` (OpenClaw tool gating) - `POST /v1/approvals/list` + `POST /v1/approvals/resolve` (approve/deny) - `POST /v1/flush` (checkpoint flush) - `POST /api/proof` (Merkle inclusion proofs) Auth: - If `VAIBOT_GUARD_TOKEN` is set, require `Authorization: Bearer <token>` on protected endpoints. ## Manual quick start (no persistence) Run the service in the foreground: ```bash export VAIBOT_GUARD_HOST=127.0.0.1 export VAIBOT_GUARD_PORT=39111 export VAIBOT_POLICY_PATH=references/policy.default.json export VAIBOT_WORKSPACE="$(pwd)" export VAIBOT_GUARD_LOG_DIR="$VAIBOT_WORKSPACE/.vaibot-guard" export VAIBOT_GUARD_TOKEN="<random-token>" node scripts/vaibot-guard-service.mjs ``` Smoke test: ```bash curl -s http://127.0.0.1:39111/health ``` ## OpenClaw enforcement (recommended) Use the **OpenClaw circuit-breaker plugin** so tool calls are intercepted at the gateway (not just “model follows instructions”). Reference: - `references/openclaw-bridge.md` ## Optional: systemd user service Install a user service + env file via the CLI helper: ```bash node scripts/vaibot-guard.mjs install-local ``` This writes: - `~/.config/systemd/user/vaibot-guard.service` - `~/.config/vaibot-guard/vaibot-guard.env` Templates live under `references/systemd/` for reference. ## Policy + schemas See: - `references/policy.md` - `references/policy.default.json` - `references/receipt-schema.md` - `references/checkpoint-schema.md` - `references/inclusion-proofs.md` - `references/required-mode.md` ## Tests Run guard service tests (no external deps): ```bash node --test tests/guard-service.test.mjs ```


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: xlbbb-cn/smtp-sender (version 1.0.2)

--- name: smtp-sender description: A skill to send emails with support for markdown, HTML text, and attachments, leveraging existing SMTP configuration in `{skill~}/smtp-config.json`. Includes retry logic and logging. --- # Custom SMTP Sender Custom skill to send emails with advanced options including HTML/Markdown conversion, attachments, and retry handling. Integrates existing configuration, ensuring secure and reliable operations. ## Features - **HTML/Markdown support**: Compose emails using markdown converted to HTML. - **Attachments**: Include one or more files easily. - **Retries**: Attempts to resend in case of temporary failures. - **Logging**: Maintains a log of sent emails and errors for auditing. ## Prerequisites - **SMTP Configuration File**: `smtp-config.json` located at `~skill/smtp-config.json` Example: ```json { "server": "smtp.exmail.qq.com", "port": 465, "username": "[REDACTED_SECRET]", "password": "your-password", "emailFrom": "[REDACTED_SECRET]", "useTLS": true } ``` Ensure file permissions are secured (chmod 600). ## Usage Send a basic email: ```bash python3 ~/.openclaw/workspace/skills/smtp-sender/email_sender.py --to "[REDACTED_SECRET]" --subject "Hello" --body "你好" ``` Send an HTML email with an attachment: ```bash python3 ~/.openclaw/workspace/skills/smtp-sender/email_sender.py \ --to "[REDACTED_SECRET]" \ --subject "Weekly Report" \ --body "**Important updates inside.** See attached." \ --html \ --attachments path/to/file.pdf ``` ## Error Handling The tool retries up to 3 times on failure, logging each attempt. Networking or credential issues are reported in detail. ## Future Expansion - Support for CC/BCC fields - Scheduling emails (cron integration) - Email templates Set up your SMTP-service once, and you’re ready to integrate email into your workflow!


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (CRITICAL)
Skill: phenixmiao/cleanup-sessions (version 1.0.2)

# cleanup-sessions 清理已中止的子 agent 会话文件及备份文件，释放磁盘空间。 ## 触发条件 用户提到： - 清理子 agent 会话 - 删除 aborted 的会话 - 清理会话文件 - 清理 sessions 目录 - 清理备份文件 - 清理 .deleted / .reset 文件 - 清理过期会话 ## 功能 1. **预览模式**：列出所有 `abortedLastRun: true` 的会话文件，显示大小和路径 2. **清理模式**：删除已确认的废弃会话文件 3. **同步清理**：同时清理 `sessions.json` 索引中的对应条目 4. **备份清理**：清理 `.jsonl.deleted.*` 和 `.jsonl.reset.*` 备份文件 ## 使用方式 ### 直接清理（用户明确同意时） ```javascript // 1. 列出所有会话 const sessions = await sessions_list(); // 2. 过滤出 aborted 的子 agent 会话 const abortedSessions = sessions.sessions.filter(s => s.kind === 'other' && s.key.includes('subagent') && s.abortedLastRun === true ); // 3. 提取会话 ID 并删除对应文件 for (const session of abortedSessions) { const sessionId = session.sessionId; const filePath = `/Users/miaofengkai115572/.openclaw/agents/main/sessions/${sessionId}.jsonl`; // 执行删除 } ``` ### 完整清理流程 #### A. 清理已中止的子 agent 会话 1. 调用 `sessions_list()` 获取会话列表 2. 过滤出 `abortedLastRun: true` 且 `key` 包含 `subagent` 的会话 3. **保护近期会话**：排除 48 小时内更新的会话（`updatedAt > Date.now() - 48*60*60*1000`） 4. 向用户展示待删除的文件列表（路径 + 大小 + 最后更新时间） 5. 用户确认后执行删除 `.jsonl` 文件 6. 同步清理 `sessions.json` 中的对应条目 #### B. 清理备份文件 1. 扫描 `*.jsonl.deleted.*` 文件（删除备份） 2. 扫描 `*.jsonl.reset.*` 文件（重置备份，保留 7 天内） 3. 展示待删除的备份文件数量和总大小 4. 用户确认后执行删除 **清理策略**： - `.deleted` 文件：全部删除（会话已删，备份无用） - `.reset` 文件：删除 7 天前的（保留近期备份） - **保护期**：48 小时内的会话不删除（即使 `abortedLastRun: true`） ## 注意事项 - **只删除子 agent 会话**：`key` 包含 `subagent` 的会话 - **只删除已中止的**：`abortedLastRun === true` - **保留主会话**：不要删除用户正在使用的会话 - **48 小时保护**：不删除 48 小时内更新的会话（即使已中止） - **建议先预览**：删除前展示文件列表和总大小 - **同步清理 sessions.json**：删除 .jsonl 后必须清理索引文件，否则数据不一致 - **备份文件说明**： - `.jsonl.deleted.*` → 会话删除前的备份，可安全删除 - `.jsonl.reset.*` → 会话重置/压缩前的备份，建议保留 7 天 - **定期清理**：建议每周清理一次备份文件，避免占用过多磁盘空间 ## 相关文件 - 会话目录：`~/.openclaw/agents/main/sessions/*.jsonl` - 会话元数据：通过 `sessions_list()` 获取 ## 示例输出 ### A. 子 agent 会话清理 ``` 找到 2 个可清理的已中止子 agent 会话： | 会话 ID | 大小 | 标签 | 最后更新 | |---------|------|------|----------| | 46bf8f99-... | 76K | feishu-creator | 7 天前 | | a5348a20-... | 149K | feishu-doc-creator | 7 天前 | 已保护：1 个会话（48 小时内更新） 总计可释放：225KB 确认删除？ ``` ### B. 备份文件清理 ``` 扫描备份文件： | 类型 | 文件数 | 总大小 | |------|--------|--------| | .deleted | 18 | 2.1 MB | | .reset (7 天前) | 12 | 4.1 GB | 总计可释放：4.1 GB 确认删除？ ``` ## 技术实现 ### 核心工具 - `sessions_list()` - 获取会话列表和状态 - Node.js `fs` 模块 - 删除会话文件 - `sessions.json` 同步更新 - 保持索引一致性 ### 伪代码示例 ```javascript // 获取会话列表 const sessions = await sessions_list(); // 过滤条件 const shouldDelete = sessions.filter(s => s.key.includes('subagent') && s.abortedLastRun === true && Date.now() - s.updatedAt > 48 * 60 * 60 * 1000 // 48 小时保护 ); // 用户确认后删除文件并更新索引 ``` ## 扩展建议 - 添加 `--dry-run` 模式（预览不删除） - 添加按时间过滤（只清理 N 天前的） - 添加按大小过滤（只清理大于 X 的） - 定期自动清理（结合 heartbeat）


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)