OpenClaw/clawhub-security-signals huggingface dataset:
Skill: murongg/lobster-farmer-feeder (version 0.1.2)

--- name: lobster-farmer-feeder description: Feed lobsters in the Lobster Farmer game by calling the local CLI command `lobster-farmer feed` with `--model`, `--input-tokens`, `--output-tokens`, and optional `--emotion`. Use this skill when the user asks to feed a lobster, simulate model usage, batch-feed multiple models, or update growth state and emotion through the running local service. --- # Lobster Farmer Feeder Feed model-specific lobsters by invoking the local CLI and report the resulting growth metrics. ## Workflow 1. Confirm command context. - Run from the Lobster Farmer project root where `bin/lobster-farmer.cjs` exists. - Prefer the installed command `lobster-farmer`; use `node ./bin/lobster-farmer.cjs` as fallback. 2. Ensure service is reachable. - Check status first: ```bash lobster-farmer status ``` - If stopped, start service: ```bash lobster-farmer start ``` - Respect explicit user port preference with `--port`. 3. Execute feed command. - Single feed: ```bash lobster-farmer feed --model "<model>" --input-tokens <n> --output-tokens <m> [--emotion "<text>"] [--port <p>] ``` - Short flags: ```bash lobster-farmer feed -m "<model>" -i <n> -o <m> [-e "<text>"] -p <p> ``` 4. Return result to user. - Include model name, input/output token values, emotion, lobster total tokens, feed count, and size. - If requested, run multiple feed commands sequentially and summarize each result. ## Parameter Rules - Require `model` as non-empty string. - Require `input_tokens + output_tokens > 0`. - `emotion` is optional; if omitted, UI should show `?`. - Keep token values as integers and non-negative. - If user gives only a single total token value, default to: `input_tokens = total`, `output_tokens = 0`, unless user specifies another split. ## Error Handling - `feed request failed: fetch failed`: Service is not running or port is wrong. Start server and retry. - API validation errors: Relay backend message directly (for example invalid token values). - Port mismatch: Retry with explicit `--port` matching the running service. ## Quick Examples - Feed one lobster: ```bash lobster-farmer feed --model gpt-4.1 --input-tokens 800 --output-tokens 400 ``` - Feed with emotion: ```bash lobster-farmer feed --model gpt-4.1 --input-tokens 800 --output-tokens 400 --emotion "focused" ``` - Feed different models: ```bash lobster-farmer feed --model claude-3.7 --input-tokens 1200 --output-tokens 300 lobster-farmer feed --model qwen-max --input-tokens 600 --output-tokens 200 ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: terrycarter1985/communication-assistant (version 1.0.1)

--- name: communication-assistant description: Send formatted notifications via email (himalaya) and iMessage (BlueBubbles). Use when you need to broadcast markdown-formatted messages to email recipients and phone numbers in a single step. tags: ["email", "imessage", "notification", "communication", "himalaya", "bluebubbles"] --- # Communication Assistant Send formatted notifications via email and iMessage from a single command. ## Prerequisites - **Himalaya** CLI configured (`config/himalaya.toml`) - **BlueBubbles** server running with env vars set: - `BLUEBUBBLES_SERVER` — server URL - `BLUEBUBBLES_PASSWORD` — API password ## Usage ```bash ./scripts/send-notification.sh \ --content <markdown-file> \ --emails <comma-separated-emails> \ --phones <comma-separated-phone-numbers> ``` ### Arguments | Flag | Required | Description | |---|---|---| | `--content` | Yes | Path to markdown file to send | | `--emails` | No* | Comma-separated email recipients | | `--phones` | No* | Comma-separated phone numbers (iMessage) | \* At least one of `--emails` or `--phones` must be provided. ## Example ```bash # Format first prettier --write announcement.md --config config/.prettierrc.json markdownlint announcement.md --config config/.markdownlint.json # Send to team ./scripts/send-notification.sh \ --content announcement.md \ --emails [REDACTED_SECRET] \ --phones +15555550123 ``` ## Workflow 1. Draft your message in markdown 2. Format with Prettier + markdownlint per workspace config 3. Run `send-notification.sh` to deliver via email and/or iMessage


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: devinchen2014/socialdatax-xhs-search (version 0.1.6)

--- name: socialdatax-xhs-search description: 用于小红书数据分析、小红书笔记搜索、关键词检索、内容调研、竞品分析和趋势研究。覆盖 Xiaohongshu / XHS / RedNote note search，来自 SocialDataX 社媒数据助手。 metadata: {"openclaw":{"requires":{"env":["SOCIALDATAX_API_KEY"],"bins":["node","npm"]},"primaryEnv":"SOCIALDATAX_API_KEY","emoji":"🔍","homepage":"https://socialdatax.com/?from=clawhub","install":[{"kind":"node","package":"socialdatax-skills","bins":[]}]}} --- # 小红书数据分析 SocialDataX 笔记搜索 Use this skill when the user wants 小红书数据分析, 小红书笔记搜索, Xiaohongshu / XHS / RedNote note search, topic discovery, content planning, competitor research, market observation, or trend scanning. ## API Key Use `SOCIALDATAX_API_KEY` for data calls. The only official website for requesting or managing API access is <https://socialdatax.com/?from=clawhub>. If a user asks where to get a key, provide only this URL; do not infer alternate domains. 获取或管理 API Key：访问 <https://socialdatax.com/?from=clawhub>，按官网的 API Key 申请/管理入口操作。环境变量名固定使用 `SOCIALDATAX_API_KEY`；不要引导用户使用其他域名。 ## Preferred Direct CLI Prefer the direct CLI when the agent can run shell commands. It does not require MCP server configuration: ```bash npx -y socialdatax-skills@latest xhs search --keyword "<keyword>" --pretty ``` Required arguments: - `--keyword <text>`: search phrase or topic; use the user's actual intent, trim whitespace, and keep it focused. Optional arguments: - `--page <number>`: 1-based page number; use `1` for the first page and only increase it when continuing pagination. - `--sort-type <general|time_descending|like_count_descending|comment_count_descending|collect_count_descending>`: optional sort value; omit it for default sorting. - `--note-type <all|image|video>`: optional note type filter; default is `all`. - `--publish-time-range <all|day|week|half_year>`: optional publish-time filter; default is `all`. - `--pretty`: output formatting only; it does not change the query or returned notes. ## Safety Boundary This skill is read-only. It does not read local browser data, does not save API keys, and does not perform login, posting, liking, commenting, or account changes. ## MCP Tools If MCP tools are already available in the current agent, call `xhs_search_notes` with `keyword`, optional `page`, `sort_type`, `note_type`, and `publish_time_range`. Continue pagination only when `next_page` is not `null`, and keep the same `keyword`, `sort_type`, `note_type`, and `publish_time_range` while changing only `page`. ## Output Guidance Summarize visible evidence separately from interpretation. Include useful note IDs, URLs, titles, authors, counts, and publish time when the user needs traceability.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jy00801119/steam-deck-disk (version 1.0.0)

--- name: steam-deck-disk description: Steam Deck 磁盘空间管理和优化。清理缓存、日志、移动大文件到 /home 分区、检查磁盘使用。 --- # Steam Deck 磁盘管理技能 ## 适用场景 - Steam Deck 系统分区空间不足（/var 仅 230MB，/ 仅 5GB） - 需要定期清理缓存和日志 - 需要将大文件从系统分区迁移到 /home 分区 ## 核心操作 ### 1. 检查磁盘状态 ```bash df -h / /var /home du -sh /home/deck/* | sort -hr | head -10 ``` ### 2. 安全清理（可自动执行） **系统日志：** ```bash journalctl --vacuum-size=10M ``` **用户缓存：** ```bash rm -rf ~/.cache/* ``` **npm 缓存：** ```bash npm cache clean --force ``` **pip 缓存：** ```bash pip cache purge ``` ### 3. 大文件扫描 ```bash # 查找大于 100MB 的文件 find /home -type f -size +100M 2>/dev/null | head -20 # 检查各目录大小 du -sh /home/deck/* 2>/dev/null | sort -hr ``` ### 4. 迁移策略 将以下类型文件移到 `/home/deck/Projects`： - 开发项目代码 - 解压后的应用程序 - 下载的安装包（安装后可删除） ## 使用方式 ### 手动触发 用户询问磁盘优化时： 1. 先运行检查命令，报告当前状态 2. 列出可清理的项目和预计释放空间 3. 用户确认后执行清理 4. 清理后再次报告磁盘状态 ### 自动触发（静默时间 00:00-08:00） - 检查各分区使用率 - 如果任何分区 > 85%，自动执行安全清理 - 记录到 `memory/YYYY-MM-DD.md` ## 配置路径规范 **优先使用 /home 分区的目录：** - Ollama: `/home/deck/.ollama` ✅ - Node.js: `/home/deck/.nvm` ✅ - 应用配置：`/home/deck/.config` ✅ - 缓存：`/home/deck/.cache` ✅ - 项目文件：`/home/deck/Projects` ✅ - /var 扩展：`/home/var-extended` ✅ **避免使用系统分区（/ 和 /var）存储：** - ❌ 大型应用数据 - ❌ 用户下载文件 - ❌ 开发项目 - ❌ AI 模型文件 ## 当前状态（2026-03-09 优化后） - `/`: 80% (1GB 可用) - 稳定 - `/var`: 19% (173MB 可用) - 已修复 - `/home`: 23% (189GB 可用) - 充裕 ## 注意事项 - **不要删除** `/home/deck/.ollama` 除非用户确认（模型文件可能正在使用） - **不要删除** `/home/deck/.nvm` （Node.js 环境） - **不要删除** `/home/deck/.local` 中的程序文件 - 系统分区（/ 和 /var）不要手动修改，使用官方工具清理 - /var 扩容参考 `var-expansion-guide.md` ## 定期维护建议 ### 每日自动（静默时间 00:00-08:00） - 检查分区使用率 - 如果 > 85% 自动清理 - 记录到 memory 文件 ### 每周执行一次： - 清理 journal 日志到 10MB - 清理浏览器和应用缓存 - 检查 /home/deck/Downloads 和桌面文件 ### 每月执行一次： - 扫描大文件并询问是否需要清理 - 检查 Ollama 模型使用情况 ## 自动清理规则 ### 触发条件 - 静默时间 (00:00-08:00) 自动扫描 - 任何分区使用率 > 85% ### 安全清理项目 1. ✅ 系统日志：`journalctl --vacuum-size=10M` 2. ✅ 用户缓存：`rm -rf ~/.cache/*` 3. ✅ 临时文件：`rm -rf /tmp/*` 4. ✅ 旧备份：`rm -rf /home/deck/backup-*` (超过 24 小时) 5. ✅ npm 缓存：`npm cache clean --force` ### 禁止删除（保护） - ❌ `/home/deck/Projects` - 用户项目 - ❌ `/home/deck/.ollama` - AI 模型 - ❌ `/home/deck/.nvm` - Node.js 环境 - ❌ `/home/deck/.config` - 应用配置 - ❌ `/home/deck/.openclaw` - OpenClaw 工作区 - ❌ `/home/deck/.local` - 程序文件 ### 清理阈值 | 分区 | 警告线 | 自动清理线 | 操作 | |------|--------|------------|------| | `/` | 75% | 85% | 清理日志 + 缓存 | | `/var` | 75% | 85% | 清理 journal | | `/home` | 80% | 90% | 清理缓存 + 临时文件 |


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: fishisnow/douyin-video-analyst (version 1.0.1)

--- name: douyin-video-analyst description: 抖音账号视频批量采集与文案分析工作流。当用户提供抖音账号主页链接、要求抓取最新 N 条视频链接、提取视频文案（语音转文字）、或对视频内容进行总结归纳时，激活此 skill。依赖 browser 工具（抓取视频列表）和 mcporter + douyin-mcp（文案提取）。 --- # Douyin Video Analyst 从抖音账号主页批量采集最新视频链接，通过 douyin-mcp 提取视频语音文案，去除口语化后输出精简原始文案，并进行综合总结。 ## 前置依赖 - **browser 工具**：用于渲染抖音 SPA 页面并抓取视频列表（web_fetch 无效，抖音为纯 JS 渲染） - **mcporter CLI**：`which mcporter` 确认可用 - **douyin-mcp server**：在 `mcporter list` 中应显示 `douyin-mcp (5 tools)` > mcporter 会自动加载 `~/.cursor/mcp.json` 和 `~/.claude.json` 两个配置文件中的 MCP server。 ## 版本与 Key 对照 | 版本 | API 平台 | 环境变量 | |------|----------|----------| | ≤ 1.1.0 | 硅基流动 | `DOUYIN_API_KEY` | | ≥ 1.2.0 | 阿里云百炼 | `DASHSCOPE_API_KEY` | 两个版本均受支持，根据实际配置选择对应环境变量。配置指南见 `references/setup.md`。 ## 工作流步骤 ### Step 1：检查配置 ```bash # 确认 mcporter 和 douyin-mcp 可用 mcporter list 2>&1 | grep douyin-mcp ``` 读取配置文件判断版本和 Key： ```bash python3 << 'EOF' import json, os # mcporter 同时加载这两个配置 for path in ['~/.cursor/mcp.json', '~/.claude.json']: p = os.path.expanduser(path) if not os.path.exists(p): continue d = json.load(open(p)) cfg = d.get('mcpServers', {}).get('douyin-mcp') if cfg: print(f"Found in {path}") print(' args:', cfg.get('args')) print(' env keys:', list(cfg.get('env', {}).keys())) break EOF ``` - env 含 `DOUYIN_API_KEY` → v1.1.0，硅基流动 - env 含 `DASHSCOPE_API_KEY` → v1.2.0+，阿里云百炼 若未配置，参考 `references/setup.md` 完成初始化。 ### Step 2：用 browser 抓取视频列表 抖音是纯 JS SPA，**必须用 browser 工具**，不可用 web_fetch。 ``` browser(action="open", profile="openclaw", targetUrl="<账号主页URL>") browser(action="screenshot", ...) # 等页面渲染，确认视频列表出现 browser(action="snapshot", ...) # 提取 listitem 中的 /video/XXXX 链接 ``` 从 snapshot 的 aria tree 中提取 `link[href=/video/XXXXXXXXXXXXXXXXX]`，取前 N 条，拼接完整链接：`https://www.douyin.com/video/<video_id>` ### Step 3：并发提取视频文案 根据 Step 1 检测到的版本，选择对应的环境变量名，**并发**调用所有视频（不要串行等待）： ```bash # v1.1.0（硅基流动） DOUYIN_API_KEY="<key>" mcporter call douyin-mcp.extract_douyin_text \ share_link="https://www.douyin.com/video/<video_id>" 2>&1 # v1.2.0+（阿里云百炼） DASHSCOPE_API_KEY="<key>" mcporter call douyin-mcp.extract_douyin_text \ share_link="https://www.douyin.com/video/<video_id>" 2>&1 ``` 同时发起所有 exec 调用（放在同一个工具调用块中），设置 `timeout=180`，`yieldMs=120000`。 若出现错误，参考 `references/troubleshooting.md`。 ### Step 4：整理与输出 按视频顺序（从新到旧）输出，每条视频包含： 1. **视频标题**（来自 snapshot 的 link 文本） 2. **视频链接** 3. **精简文案**：对原始语音文案去除口语化表达（去掉语气词、重复啰嗦、"大家"/"我们"/"你们"等口语填充词），保留核心信息和论点，以书面化段落呈现，不做摘要压缩，完整保留所有要点 最后附综合总结：跨视频归纳主线逻辑、核心主题、一致的风险提示。 ## 输出格式参考 ``` ## 📊 [账号名] 最近 N 条视频文案整理 --- ### 视频1 | <标题> 🔗 <链接> <精简后的书面化文案，完整保留所有要点，去除口语填充> --- ### 视频2 | <标题> ... --- ## 🗂️ 综合总结 | 主线 | 核心逻辑 | 重点方向 | |------|----------|----------| | ... | ... | ... | ``` ## 注意事项 - 抖音登录弹窗出现时：直接读取 snapshot，视频列表通常仍可在 aria tree 中获取 - 第一条视频可能需要登录才能访问，从第二条起往往正常 - extract_douyin_text 耗时较长（30~90s/条），务必并发执行 - 若文案提取失败，可先用 `parse_douyin_video_info` 获取下载链接，再手动处理


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: yang1002378395-cmyk/openclaw-task-reminder (version 1.0.0)

--- name: openclaw-task-reminder description: Simple task reminder for OpenClaw agents. Create, list, and manage tasks with priority levels. Use for tracking to-dos and getting reminders for important work. Keep your workspace organized and never miss deadlines. --- # OpenClaw Task Reminder Simple task management for your OpenClaw workflow. Track to-dos, set priorities, and stay organized. ## Installation ```bash npx clawhub@latest install openclaw-task-reminder ``` ## Usage ```bash # Add a new task node ~/.openclaw/skills/openclaw-task-reminder/task.js add "Your task description" # List all tasks node ~/.openclaw/skills/openclaw-task-reminder/task.js list # Mark task as done node ~/.openclaw/skills/openclaw-task-reminder/task.js done <task_id> # Clear completed tasks node ~/.openclaw/skills/openclaw-task-reminder/task.js clear ``` ## Features - ✅ Add tasks with priorities (high/medium/low) - ✅ List tasks by priority - ✅ Mark tasks as done - ✅ Persistent storage in workspace - ✅ Simple and fast ## Priority Levels - 🔴 **High**: Urgent tasks that need immediate attention - 🟡 **Medium**: Regular tasks to complete today - 🟢 **Low**: Nice-to-have tasks for later ## Examples ```bash # Add high priority task node ~/.openclaw/skills/openclaw-task-reminder/task.js add "Review PR #123" --priority high # List all tasks node ~/.openclaw/skills/openclaw-task-reminder/task.js list # Mark task as done node ~/.openclaw/skills/openclaw-task-reminder/task.js done 1 ``` ## Need Help? If you need help with OpenClaw: - 📧 **Installation Service**: ¥99-299 - 🔗 **Landing Page**: https://yang1002378395-cmyk.github.io/openclaw-install-service/ ## License MIT


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: atlaspa/openclaw-arbiter (version 1.0.2)

--- name: openclaw-arbiter user-invocable: true metadata: {"openclaw":{"emoji":"⚖️","requires":{"bins":["python3"]},"os":["darwin","linux","win32"]}} --- # OpenClaw Arbiter Audits installed skills to report exactly what system resources each one accesses — network, subprocess, file I/O, environment variables, and unsafe operations. ## The Problem You install skills and trust them blindly. A skill that claims to format markdown could also open network connections, execute shell commands, or read your environment variables. Nothing reports what permissions each skill actually uses. ## Commands ### Full Audit Deep audit of all installed skills with line-level findings. ```bash python3 {baseDir}/scripts/arbiter.py audit --workspace /path/to/workspace ``` ### Audit Single Skill ```bash python3 {baseDir}/scripts/arbiter.py audit openclaw-warden --workspace /path/to/workspace ``` ### Permission Matrix Compact table showing permission categories per skill. ```bash python3 {baseDir}/scripts/arbiter.py report --workspace /path/to/workspace ``` ### Quick Status One-line summary of permission risk. ```bash python3 {baseDir}/scripts/arbiter.py status --workspace /path/to/workspace ``` ## What It Detects | Category | Risk | Examples | |----------|------|----------| | **Serialization** | CRITICAL | pickle, eval(), exec(), __import__ | | **Subprocess** | HIGH | subprocess, os.system, Popen, command substitution | | **Network** | HIGH | urllib, requests, curl, wget, hardcoded URLs | | **File Write** | MEDIUM | open('w'), shutil.copy, os.remove, rm | | **Environment** | MEDIUM | os.environ, os.getenv, os.putenv | | **Crypto** | LOW | hashlib, hmac, ssl | | **File Read** | LOW | open('r'), os.walk, glob | ## Exit Codes - `0` — Clean, all skills within normal bounds - `1` — Elevated permissions detected (review needed) - `2` — Critical permissions detected (action needed) ## No External Dependencies Python standard library only. No pip install. No network calls. Everything runs locally. ## Cross-Platform Works with OpenClaw, Claude Code, Cursor, and any tool using the Agent Skills specification.


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: g9pedro/agent-memory-templates (version 1.0.0)

--- name: agent-memory-templates version: 1.0.0 description: "Production-tested memory templates for AI agents. Includes SOUL.md personality templates, memory checkpoint patterns, observational memory configs, and 100 power prompts. From the creators of ClawVault." metadata: openclaw: emoji: "🧠" --- # Agent Memory Templates Production-tested templates for building AI agents with memory. ## What's Included ### Free Templates - Memory checkpoint template - Session handoff template - Context death recovery pattern - Daily note generator - Decision logger format ### Premium Content For the complete set of 100 prompts, 12 personality templates, and the full memory architecture playbook: - **100 Power Prompts ($9)**: https://whop.com/checkout/plan_W7BJwJmYlXsjF - **Complete Bundle ($47)**: https://whop.com/checkout/plan_umnonnlgKVjvo - **Free Cheat Sheet**: https://cheatsheet.versatlygroup.com - **Free Prompt Preview**: https://prompts.versatlygroup.com ## Quick Start ```bash # Use the memory checkpoint pattern clawvault checkpoint --working-on "your task" --focus "key details" # Use the session handoff clawvault sleep "what you accomplished" --next "what's next" # Recovery on wake clawvault wake ``` ## Built by Versatly https://store.versatlygroup.com | https://clawvault.dev


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: nissan/memory-health-probe (version 1.0.1)

--- name: memory-health-probe version: 1.0.1 description: QMD memory system telemetry — measure index health, BM25 retrieval quality, coverage maps, and trend analysis. Use when running QMD memory backend and need diagnostics on retrieval quality, index freshness, or collection coverage. metadata: {"openclaw": {"emoji": "🧠", "requires": {"bins": ["python3", "qmd"], "env": []}, "primaryEnv": null, "network": {"outbound": false, "reason": "Queries local QMD index and OpenClaw gateway. No external network calls."}, "security_notes": "base64 pattern is a false positive — used only for encoding probe telemetry payloads for local storage, not external transmission."}} --- # Memory Health Probe Telemetry for QMD memory systems. Measures index health, retrieval quality, and coverage to catch degradation before it affects agent performance. ## Metrics Captured 1. **Index health** — file count, chunk count, index size, staleness 2. **BM25 quality** — hit rate + score distribution over canonical queries 3. **Gateway events** — session-memory saves, QMD armed events 4. **Coverage map** — which collections are hit for which query categories ## Usage ```bash python3 scripts/memory_probe.py # Run probe, log to Langfuse python3 scripts/memory_probe.py --dry-run # Print results only python3 scripts/memory_probe.py --trend # Show trend over stored snapshots ``` ## Files - `scripts/memory_probe.py` — Probe script with Langfuse integration


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: jolestar/mdorigin (version 0.2.0)

--- name: mdorigin description: Build, preview, and deploy markdown-first sites with local preview, Cloudflare bundles, and agent-readable raw markdown routes. --- # mdorigin Use this skill when you want to work on a markdown-first publishing site powered by `mdorigin`. ## Install Global install: ```bash npm install -g mdorigin ``` Project-local install: ```bash npm install --save-dev mdorigin ``` ## What it covers - local preview with `mdorigin dev` - directory index generation with `mdorigin build index` - search index generation with `mdorigin build search` - Cloudflare Worker bundle output with `mdorigin build cloudflare` - external binary deployment flow for Cloudflare Assets + R2 - markdown and HTML route behavior, including `Accept: text/markdown` ## Quick commands ```bash mdorigin dev --root docs/site mdorigin build index --root docs/site mdorigin build search --root docs/site mdorigin build cloudflare --root docs/site ``` External binary deploy flow: ```bash mdorigin build cloudflare --root docs/site --binary-mode external mdorigin sync cloudflare-r2 --dir dist/cloudflare --bucket <bucket-name> mdorigin init cloudflare --dir . --r2-bucket <bucket-name> ``` ## Remote docs When an agent needs details, prefer the published docs instead of duplicating everything in the skill: - HTML docs: `https://mdorigin.jolestar.workers.dev` - Raw markdown home: `https://mdorigin.jolestar.workers.dev/README.md` - Routing docs: `https://mdorigin.jolestar.workers.dev/concepts/routing.md` - Configuration docs: `https://mdorigin.jolestar.workers.dev/reference/configuration.md` - Extensions docs: `https://mdorigin.jolestar.workers.dev/guides/extensions.md` - Cloudflare docs: `https://mdorigin.jolestar.workers.dev/guides/cloudflare.md` Extensionless routes also return markdown when the client sends `Accept: text/markdown`. ## Search Use search when you need the right doc page before opening it: - Search API: `https://mdorigin.jolestar.workers.dev/api/search?q=<query>` - OpenAPI schema: `https://mdorigin.jolestar.workers.dev/api/openapi.json` Examples: ```bash curl 'https://mdorigin.jolestar.workers.dev/api/search?q=cloudflare%20deploy' curl -H 'Accept: text/markdown' 'https://mdorigin.jolestar.workers.dev/guides/getting-started' ```


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