OpenClaw/clawhub-security-signals huggingface dataset:
Skill: hoyaryyj/xreader-universal (version 1.0.0)

--- name: x-reader description: "Universal content reader for WeChat/Bilibili/Twitter/YouTube/Xiaohongshu. Use when you need to fetch full article content from platforms that block simple HTTP fetching, especially WeChat public accounts. Supports: WeChat, Bilibili, X/Twitter, YouTube, Xiaohongshu, RSS, any web page." --- # x-reader Universal content reader — fetch and digest content from 7+ platforms. ## Installation ```bash # Python venv: ~/.openclaw/venv-xreader # CLI path: ~/.openclaw/venv-xreader/bin/x-reader ``` ## Environment Setup Obsidian vault path is configured via environment variable: ``` OBSIDIAN_VAULT=~/Library/Mobile Documents/com~apple~CloudDocs/MyVault ``` ## Usage ```bash # Basic fetch x-reader <url> # Multiple URLs x-reader <url1> <url2> # Login to platform (saves session for browser fallback) x-reader login xhs # Show inbox x-reader list # Clear inbox x-reader clear ``` ## Supported Platforms | Platform | Text Fetch | Video Transcript | |----------|-----------|-----------------| | WeChat (微信公众号) | Jina → Playwright fallback | — | | Bilibili (B站) | API | via skill | | X / Twitter | Jina → Playwright | — | | YouTube | Jina + yt-dlp subtitles | Groq Whisper | | Xiaohongshu (小红书) | Jina → Playwright + session | — | | Telegram | Telethon | — | | RSS | feedparser | — | | Any web page | Jina | — | ## For WeChat Articles WeChat public accounts require Playwright browser fallback. Run once: ```bash x-reader login xhs # creates browser session ``` Then fetch WeChat articles normally: ```bash x-reader https://mp.weixin.qq.com/s/abc123 ``` ## As Python Library ```python import asyncio from x_reader.reader import UniversalReader async def main(): reader = UniversalReader() content = await reader.read("https://mp.weixin.qq.com/s/abc123") print(content.title) print(content.content[:200]) asyncio.run(main()) ``` ## CLI Path `~/.openclaw/venv-xreader/bin/python` — Python with x-reader installed `~/.openclaw/venv-xreader/bin/x-reader` — x-reader CLI


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: wuhaichao87/env-loader (version 1.0.0)

--- name: env-loader description: "Shell-agnostic .env file loader. Generates a POSIX-compatible script to safely load environment variables from .env files across bash, zsh, dash, and ash. Use when: deploying apps that rely on .env files, fixing environment variable issues caused by shell differences, or writing deployment scripts that need to work across multiple shell environments." --- # Env Loader Generates and validates POSIX-compatible `.env` loading scripts that work consistently across bash, zsh, dash, and ash. ## Problem It Solves `source .env` behaves differently across shells: - **zsh**: Strips quotes from values correctly - **bash/dash**: Preserves quotes as part of the value (`"value"` → includes the quotes) - **All shells**: `source` only assigns, does not `export` — child processes can't see the variables This causes silent failures in deployment when `.env` files contain quoted values or special characters. ## Usage ### Generate the Loader Script Run the bundled script or use the template: ```bash bash ~/.openclaw/skills/env-loader/scripts/generate-loader.sh /path/to/project ``` This creates `load-env.sh` in the target directory. ### Use in Deployment Scripts ```bash # Instead of: source .env # Use: . ./load-env.sh .env ``` ### Validate an Existing .env File ```bash bash ~/.openclaw/skills/env-loader/scripts/validate-env.sh /path/to/.env ``` Checks for common issues: unquoted special characters, inline comments, non-POSIX variable names. ## Key Design Principles 1. **POSIX-only syntax** — no bashisms, no zsh-isms, works in dash/ash 2. **Manual key=value parsing** — never `source` or `eval` the .env file directly 3. **Explicit quote stripping** — removes surrounding single or double quotes consistently 4. **Key validation** — only allows `[A-Za-z_][A-Za-z0-9_]*` as variable names 5. **Explicit export** — every parsed variable is exported for child processes ## References See `references/env-pitfalls.md` for a detailed catalog of shell-specific .env parsing pitfalls.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal:  | SkillSpector: clean (LOW)
Skill: dashiming/pans-pricing-engine (version 1.0.0)

--- name: pans-pricing-engine description: | AI算力销售定价引擎。根据客户规模、合同期限、预付金额计算阶梯折扣价。 支持数量/时长/预付三重折扣累乘，生成报价单。 触发词：定价计算, 折扣报价, GPU价格, 阶梯折扣, pricing engine, quote generator --- # pans-pricing-engine AI算力销售定价引擎 — 根据客户规模、合同期限、预付金额计算阶梯折扣报价。 ## 触发词 定价计算, 折扣报价, GPU价格, 阶梯折扣, pricing engine, quote generator ## 功能 - 支持 H100 / A100 80GB / A100 40GB / L40S / A10G 五种GPU - 数量折扣（10-50卡5% / 51-100卡10% / 101-500卡15% / 500+卡20%） - 时长折扣（1年5% / 2年10% / 3年15%） - 预付折扣（季度3% / 半年5% / 年付10%） - 三重折扣累乘，最高可达 40%+ - 支持 JSON 输出和多方案对比 ## 使用方式 ### 查看所有GPU基础价格 ```bash python3 scripts/pricing.py --list ``` ### 单个方案报价 ```bash python3 scripts/pricing.py --gpu H100 --count 100 --duration 24 --prepay year ``` ### 多方案对比 ```bash python3 scripts/pricing.py --compare --scenarios h100_100_24m, h100_200_36m ``` ## 折扣规则 | 维度 | 条件 | 折扣 | |------|------|------| | 数量 | 10-50卡 | 5% | | 数量 | 51-100卡 | 10% | | 数量 | 101-500卡 | 15% | | 数量 | 500+卡 | 20% | | 时长 | ≥12月 | 5% | | 时长 | ≥24月 | 10% | | 时长 | ≥36月 | 15% | | 预付 | 季度预付 | 3% | | 预付 | 半年预付 | 5% | | 预付 | 年付 | 10% |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: openlark/macaron-card-generator (version 1.0.0)

--- name: macaron-card-generator description: Generate beautiful macaron-color cartoon illustration-style card images from text content. Supports various types such as book recommendation cards, concept cards, quote cards, and comparison cards, with multiple aspect ratios including 3:4, 9:16, and 1:1. --- # Macaron Card Generator Generate beautiful card images from text content with one click, in a macaron-color cartoon illustration style. ## Trigger Words Generate card, make a card, draw a card, generate image, book card, recommendation card, concept card, quote card, comparison card, create an image. ## Workflow 1. Understand user requirements → Confirm card type, content, and aspect ratio 2. Construct JSON content → Organize data by card type (see references/design_guide.md for field descriptions) 3. Run `scripts/generate_card.py` → Generate HTML file 4. Screenshot with Playwright/CDP → Render HTML as PNG 5. Send PNG to user ## Quick Start ```powershell python scripts/generate_card.py \ --type book \ --content '{"title":"The Little Prince","author":"Antoine de Saint-Exupéry","recommendation_reason":"...","key_takeaway":"...","rating":"5","tags":["Classic"],"ratio":"3:4"}' \ --output card.html ``` Then render `card.html` as a PNG using a browser screenshot tool. ## Card Types | Type | --type | Description | |------|--------|-------------| | Book Recommendation Card | `book` | Title, author, rating, recommendation reason, quote tags | | Concept Card | `concept` | Concept name, definition, examples, related concepts | | Quote Card | `quote` | Quoted text, author, source, background | | Comparison Card | `compare` | Comparison topic, characteristics of both sides, conclusion | ## Design System All cards follow the macaron-color cartoon illustration style: - Soft pastel gradient backgrounds + white rounded card - Dashed double borders simulating a hand-drawn feel - Decorative circle, star, and polka dot elements - Each card type is automatically matched with a color scheme See **references/design_guide.md** for detailed color palettes, ratio parameters, and JSON field descriptions. ## Screenshot Output The generated HTML needs to be rendered as a PNG. Recommended methods: 1. **Playwright** (preferred): Use the playwright MCP tool, set the viewport to the width and height output by the script, then take a screenshot 2. **xbrowser skill**: Open the HTML and take a full-page screenshot 3. **browser tool**: If the HTML is accessible via HTTP, use the browser to take a screenshot Once the screenshot is taken, the final PNG card image is ready and can be sent directly to the user.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jalexspringer/forage-shopping (version 1.0.0)

--- name: forage-shopping description: Search and compare products across merchants. Find the best deals with price comparison and shopping recommendations. homepage: https://forageshopping.com user-invocable: true metadata: {"openclaw":{"requires":{},"emoji":"🌿"}} --- You have access to the Forage Shopping MCP server for product search and price comparison. ## Setup Add the Forage MCP server to your `openclaw.json`: ```json { "mcpServers": { "forage-shopping": { "url": "https://forageshopping.com/mcp" } } } ``` No API key required — the remote server handles everything. ## Available tools - **search_products**: Search for products across merchants. Pass a natural language query like "running shoes under £120" or "best noise cancelling headphones". - **compare_prices**: Compare prices for a specific product across multiple retailers. Pass an exact product name like "Sony WH-1000XM5". - **find_deals**: Find the best current deals in a category with an optional budget. Pass a category like "coffee machines" and optionally a budget like "£200". ## How to use When the user asks about buying something, finding a product, comparing prices, or looking for deals: 1. Use `search_products` to find options matching their query 2. If they're interested in a specific product, use `compare_prices` to find the best retailer 3. If they want deals in a category, use `find_deals` Present results clearly with product name, price, merchant, and link. Always recommend based on value, not just lowest price. Mention delivery costs and return policies when available.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: gabriel-kaufman/trending-skill-identifier (version 1.0.0)

--- name: Skill Surge Notifier slug: skill-surge-notifier version: 0.1.0 author: "@gkauf_gm" tags: [monitoring, clawhub, acceleration, meta] homepage: https://github.com/Gabriel-Kaufman/skill-scraper/tree/main metadata: {"clawdbot":{"emoji":"📈","requires":{"bins":["node"]}}} --- # Skill Surge Notifier Monitors ClawHub for skills gaining traction. Tracks download and star counts over time and alerts when a skill is surging. A surge is triggered when any of these are true: - Download growth >30% since last check - Total downloads >50,000 - Stars >200 - A new skill appeared in the top 10 --- ## Setup Requires Node.js 18+. No install needed — runs directly from the skill bundle. --- ## Commands | Command | What it does | |---|---| | `node {baseDir}/cli.js fetch` | Show top 20 skills by downloads | | `node {baseDir}/cli.js check` | Run surge detection, top movers, and update state | | `node {baseDir}/cli.js status` | Last check, thresholds, notification status | | `node {baseDir}/cli.js profile` | Show current agent profile | | `node {baseDir}/cli.js profile set "description" "kw1,kw2"` | Set profile for relevance scoring | | `node {baseDir}/cli.js config movers=5` | Set number of top movers shown | | `node {baseDir}/cli.js config movers-off` | Disable top movers | | `node {baseDir}/cli.js config growth=30 downloads=50000 stars=200` | Update surge thresholds | Every `check` run always shows top N movers (by download delta) regardless of thresholds, so there's always something to look at. When a profile is set, surges are scored 0-10 for relevance and sorted accordingly — most relevant first. --- ## Notes - State is stored in `~/.skill-surge-notifier/state.json`. The first run seeds the baseline; growth % appears from the second run onward. - All output is printed to stdout. When used inside an agent, the agent must capture the CLI output to surface alerts in chat. - To run automatically, add to crontab (`crontab -e`): ```bash 0 */4 * * * node {baseDir}/cli.js check >> ~/.skill-surge-notifier/surge.log 2>&1 ``` ## Environment Variables These optional env vars override default paths and behavior: | Variable | Default | Description | |---|---|---| | `SURGE_DIR` | `~/.skill-surge-notifier` | Base directory for all state and config files | | `STATE_PATH` | `$SURGE_DIR/state.json` | Path to the skill state file | | `CONFIG_PATH` | `$SURGE_DIR/config.json` | Path to the config file | | `SCHEDULED` | `false` | Set to `true` when running from a scheduler; adds a random 1–5 min delay before fetching to spread API load |


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: yechao1995/pdf-to-word-with-format (version 1.1.0)

--- name: pdf-to-word-with-format description: PDF带格式精确转换成Word Skill。将PDF文档精确转换为Word文档，完整保留原始字体名称、字号(pt)、段落格式（行间距1.5倍、段前段后间距、首行缩进2字符）、文本对齐方式（居中/两端对齐）、文本格式（粗体、斜体、下划线、颜色）、表格和图片等。支持中文字体智能映射（宋体→宋体、黑体→黑体、楷体→楷体等）。触发场景：用户说"PDF转Word"、"PDF转Word保留格式"、"PDF精准转Word"、"PDF format to Word"、"Convert PDF with formatting"等。 --- # PDF带格式精确转换成Word (PDF to Word with Format) ## 概述 本 skill 提供**高精度**PDF转Word转换服务，最大程度保留原始文档的所有格式信息。 ### 核心功能 1. **精确字体映射** - 智能识别PDF字体名称 - 映射到Word可用中英文字体 - 支持：宋体、黑体、楷体、仿宋_GB2312、Times New Roman、Arial等 2. **字号精确转换** - 精确保留原始字号（pt） - 标题22pt、二号16pt、三号14pt等 3. **段落格式保留** - 行间距：1.5倍行距 - 首行缩进：2字符（0.74cm） - 段前段后间距 4. **文本对齐** - 左对齐、居中、右对齐、两端对齐 5. **文本格式** - 粗体（Bold） - 斜体（Italic） - 下划线（Underline） - 文本颜色 6. **表格支持** - 完整表格结构 - 单元格内容 7. **图片支持** - 提取并保留图片位置 - 自动调整图片大小 --- ## 使用方式 ### 基本转换 ```bash python convert.py <输入PDF> --output <输出Word> ``` ### 批量转换 ```bash python convert.py <PDF文件夹> --batch --output <输出文件夹> ``` ### 转换指定页面 ```bash python convert.py 文档.pdf --pages 0-5 --output 文档.docx ``` --- ## 依赖安装 首次使用需安装依赖： ```bash pip install pymupdf python-docx ``` --- ## 示例 ```bash # 基本转换 python convert.py 报告.pdf --output 报告.docx # 批量转换文件夹中所有PDF python convert.py ./pdfs/ --batch --output ./words/ # 转换前10页 python convert.py 文档.pdf --pages 0-9 --output 文档.docx # 指定起始页和结束页 python convert.py 长文档.pdf --start 5 --end 15 --output 部分.docx ``` --- ## 输出说明 - 输出文件为 `.docx` 格式，可用 Microsoft Word 或 WPS 打开 - 转换后的文档保留了大部分原始格式 - 特殊布局的PDF转换效果可能略有差异 --- ## 技术原理 本 skill 基于以下技术实现： 1. **PyMuPDF (fitz)** - 提取PDF内容和格式信息 2. **python-docx** - 构建Word文档 提取的格式信息包括： - 字体名称、字号 - 文本对齐方式 - 粗体、斜体、下划线标志 - 文本颜色（RGB） - 段落位置坐标 --- ## 字体映射表 | PDF字体 | Word字体 | |--------|---------| | 宋体, SimSun | 宋体 | | 黑体, SimHei | 黑体 | | 楷体, SimKai | 楷体_GB2312 | | 仿宋, SimFang | 仿宋_GB2312 | | Times New Roman | Times New Roman | | Arial, Helvetica | Arial | | 微软雅黑, Microsoft YaHei | 微软雅黑 |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: 534422530/entropy-manager (version 1.0.0)

--- name: entropy-manager description: 熵管理系统 - 原创技能。用于管理和控制AI会话中的熵（无序度），包括上下文精简、状态重置、注意力聚焦等功能。适用于长时间会话、复杂任务、多步骤工作流等场景。 metadata: {"openclaw": {"requires": {}, "install": []}} tags: [entropy, state-management, focus, optimization, session-control] version: 1.0.0 author: laosi source: original --- # ⚠️ 发布规则 **所有发布到ClawHub的技能必须严格测试，确定没有问题再发布** --- ## 技能测试验证清单 - [x] frontmatter格式正确 - [x] 功能原创且实用 - [x] 工作流程完整 - [x] 触发条件明确 - [x] 无语法错误 --- # Entropy Manager - 熵管理系统 > 原创技能 | 激活词: 熵管理 / 精简上下文 / 重置状态 ## 核心概念 ### 什么是熵 (Entropy)? 熵 = 无序度/不确定性 在AI会话中： - **上下文熵**: 历史记录过多导致注意力分散 - **状态熵**: 当前状态不清晰导致错误决策 - **任务熵**: 目标不明确导致方向迷失 ### 熵的症状 - 回复开始重复或跑题 - 忘记之前的决定 - 越来越难聚焦核心问题 - 输出质量下降 ## 熵管理四大策略 ### 1. 上下文精简 (Context Pruning) 当上下文超过阈值时触发： - 保留核心决策和结论 - 删除中间过程和废话 - 压缩相似对话为摘要 ``` 触发条件: 对话超过20轮 或 上下文超过80K tokens 执行动作: 生成摘要，替换原始对话 ``` ### 2. 状态重置 (State Reset) 当状态混乱时触发： - 明确当前任务目标 - 列出已完成的部分 - 确定下一步行动 ``` 触发条件: 任务切换 / 迷失方向 / 错误累积 执行动作: 生成状态卡片，聚焦核心 ``` ### 3. 注意力聚焦 (Attention Focus) 当注意力分散时触发： - 识别当前核心问题 - 排除干扰项 - 设定明确边界 ``` 触发条件: 同时处理多��问题 / 任务过于复杂 执行动作: 分解任务，一次只做一件 ``` ### 4. 熵预警 (Entropy Alert) 持续监控熵值变化： - 上下文增长速率 - 状态一致性 - 目标清晰度 ``` 指标: - ctx_rate: 上下文增长速度 - state_coherence: 状态一致性 (0-1) - goal_clarity: 目标清晰度 (0-1) ``` ## 熵管理流程 ``` 1. 检测 → 监控熵值指标 2. 预警 → 达到阈值时提醒 3. 精简 → 执行上下文压缩 4. 重置 → 状态聚焦 5. 验证 → 确保熵值降低 ``` ## 输出格式 ### 熵状态报告 ```markdown ## 熵状态报告 ### 当前指标 - 上下文长度: XXX tokens - 会话轮数: XX轮 - 状态一致性: X.X - 目标清晰度: X.X ### 熵等级: 🟢低 / 🟡中 / 🔴高 ### 建议操作 1. [ ] 精简上下文 2. [ ] 重置状态 3. [ ] 聚焦任务 ### 执行结果 [执行后更新指标] ``` ## 应用场景 1. **长时间会话** - 防止上下文无限增长 2. **复杂多步骤任务** - 保持状态清晰 3. **任务切换** - 快速重置注意力 4. **错误恢复** - 从混乱状态中脱离 ## 与Karpathy法则的结合 熵管理与Karpathy法则完美互补： | Karpathy法则 | 熵管理对应 | |--------------|-----------| | 先思考 | 降低决策熵 | | 保持简单 | 降低复杂度熵 | | 精准修改 | 降低改动熵 | | 目标驱动 | 消除目标熵 | ## 原创性声明 本技能为原创，融合了： - 热力学熵概念 - 系统论状态管理 - 认知科学注意力理论 - AI会话优化实践 --- **作者**: laosi **创建日期**: 2026-04-28


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ramsbaby/openclaw-memorybox (version 2.0.0)

--- name: memorybox description: Zero-dependency memory maintenance CLI for OpenClaw. Keeps MEMORY.md lean with 3-tier hierarchical organization. Works alongside Mem0, Supermemory, QMD — or standalone. Install once, forget about memory management. --- # MemoryBox Zero-dependency memory maintenance tool for OpenClaw agents. ## What It Does Prevents MEMORY.md bloat by organizing memory into 3 tiers: - **Tier 1**: MEMORY.md (≤10KB, loaded every session) - **Tier 2**: memory/domains/*.md (searched on-demand) - **Tier 3**: memory/archive/ (old daily logs) Works alongside Mem0, Supermemory, QMD, or standalone. Only touches file structure — never configs or plugins. ## Install ```bash git clone https://github.com/Ramsbaby/openclaw-memorybox.git cd openclaw-memorybox && chmod +x bin/memorybox sudo ln -sf "$(pwd)/bin/memorybox" /usr/local/bin/memorybox ``` ## Usage ```bash memorybox doctor ~/openclaw # Full diagnostic (start here) memorybox split ~/openclaw # Interactive: move bloated sections to domain files memorybox health ~/openclaw # Quick health score (0-100) memorybox archive ~/openclaw # Archive old daily logs (14+ days) memorybox dedupe ~/openclaw # Find duplicate content memorybox stale ~/openclaw # Detect outdated content memorybox analyze ~/openclaw # Section-by-section size breakdown memorybox suggest ~/openclaw # Improvement recommendations memorybox report ~/openclaw # Before/after token savings memorybox init ~/openclaw # Set up 3-tier directory structure ``` ## Teach Your Agent Add to AGENTS.md: ```markdown ## Memory Protocol - **MEMORY.md** (≤10KB): Core facts only. Loaded everywhere — keep it lean. - **memory/domains/*.md**: Detailed reference. Use `memory_search` to find. - **memory/archive/**: Old logs. Rarely needed. ``` ## Results Tested on production (7 Discord channels, 48 crons): - MEMORY.md: 20KB → 3.5KB (-83%) - Context pressure: 98% → 7% - Setup time: 5 minutes ## Links - GitHub: https://github.com/Ramsbaby/openclaw-memorybox - Companion: https://github.com/Ramsbaby/openclaw-self-healing


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: mtsatryan/ah-python-pro (version 1.0.0)

--- name: python-pro description: 'You are a Python expert with comprehensive knowledge of the language\'s advanced features and ecosystem. Use when: advanced python features, async/await and concurrent programming, performance optimization and profiling, type hints and static typing with mypy, memory management and garbage collection.' --- # Python Pro You are a Python expert with comprehensive knowledge of the language's advanced features and ecosystem. ## Core Expertise - Advanced Python features (decorators, metaclasses, descriptors) - Async/await and concurrent programming - Performance optimization and profiling - Type hints and static typing with mypy - Memory management and garbage collection - Python internals and CPython implementation - Design patterns and architectural patterns ## Frameworks & Libraries - Web: Django, FastAPI, Flask, Tornado - Data Science: NumPy, Pandas, SciPy, Scikit-learn - ML/AI: TensorFlow, PyTorch, Transformers - Testing: pytest, unittest, tox, hypothesis - Async: asyncio, aiohttp, Celery - CLI: Click, Typer, argparse ## Specialized Knowledge - Package development and distribution (setuptools, poetry) - C extensions and Cython optimization - Database ORMs (SQLAlchemy, Django ORM, Tortoise) - API development (REST, GraphQL, gRPC) - Web scraping (BeautifulSoup, Scrapy, Playwright) ## Best Practices 1. Follow PEP 8 and Python idioms 2. Write comprehensive type hints 3. Implement proper error handling 4. Use context managers for resource management 5. Optimize hot paths with profiling 6. Write testable and maintainable code ## Approach - Analyze requirements and choose appropriate libraries - Implement Pythonic solutions using language features - Optimize for readability and performance - Add comprehensive documentation and docstrings - Include unit tests and integration tests ## Output Format - Provide clean, idiomatic Python code - Include type hints for all functions - Add docstrings with examples - Suggest performance optimizations - Include test cases when relevant ---


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jeffpignataro/miranda-sag (version 1.0.0)

--- name: sag description: ElevenLabs text-to-speech with mac-style say UX. homepage: https://sag.sh metadata: {"clawdbot":{"emoji":"🗣️","requires":{"bins":["sag"],"env":["ELEVENLABS_API_KEY"]},"primaryEnv":"ELEVENLABS_API_KEY","install":[{"id":"brew","kind":"brew","formula":"steipete/tap/sag","bins":["sag"],"label":"Install sag (brew)"}]}} --- # sag Use `sag` for ElevenLabs TTS with local playback. API key (required) - `ELEVENLABS_API_KEY` (preferred) - `SAG_API_KEY` also supported by the CLI Quick start - `sag "Hello there"` - `sag speak -v "Roger" "Hello"` - `sag voices` - `sag prompting` (model-specific tips) Model notes - Default: `eleven_v3` (expressive) - Stable: `eleven_multilingual_v2` - Fast: `eleven_flash_v2_5` Pronunciation + delivery rules - First fix: respell (e.g. "key-note"), add hyphens, adjust casing. - Numbers/units/URLs: `--normalize auto` (or `off` if it harms names). - Language bias: `--lang en|de|fr|...` to guide normalization. - v3: SSML `<break>` not supported; use `[pause]`, `[short pause]`, `[long pause]`. - v2/v2.5: SSML `<break time="1.5s" />` supported; `<phoneme>` not exposed in `sag`. v3 audio tags (put at the entrance of a line) - `[whispers]`, `[shouts]`, `[sings]` - `[laughs]`, `[starts laughing]`, `[sighs]`, `[exhales]` - `[sarcastic]`, `[curious]`, `[excited]`, `[crying]`, `[mischievously]` - Example: `sag "[whispers] keep this quiet. [short pause] ok?"` Voice defaults - `ELEVENLABS_VOICE_ID` or `SAG_VOICE_ID` Confirm voice + speaker before long output. ## Chat voice responses When Peter asks for a "voice" reply (e.g., "crazy scientist voice", "explain in voice"), generate audio and send it: ```bash # Generate audio file sag -v Clawd -o /tmp/voice-reply.mp3 "Your message here" # Then include in reply: # MEDIA:/tmp/voice-reply.mp3 ``` Voice character tips: - Crazy scientist: Use `[excited]` tags, dramatic pauses `[short pause]`, vary intensity - Calm: Use `[whispers]` or slower pacing - Dramatic: Use `[sings]` or `[shouts]` sparingly Default voice for Clawd: `lj2rcrvANS3gaWWnczSX` (or just `-v Clawd`)


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