OpenClaw/clawhub-security-signals huggingface dataset:
Skill: cntuang/image-vision (version 1.0.0)

--- name: vision-analyze description: Image analysis using multimodal vision models. Use when user needs to: (1) Describe what's in an image, (2) Extract text from images (OCR), (3) Analyze visual content, (4) Compare images, (5) Answer questions about images. Supports JPG, PNG, GIF, WebP formats. metadata: { "openclaw": { "emoji": "👁️", "requires": {}, }, } --- # Vision Analyze Analyze images using the built-in vision capabilities of multimodal AI models. ## Quick Start ### Analyze an Image Describe what's in an image: ```python # The agent will automatically use vision when you provide an image path image("/path/to/image.jpg", prompt="Describe what's in this image") ``` ### Extract Text (OCR) Extract text from images: ```python image("/path/to/document.png", prompt="Extract all text from this image") ``` ### Analyze Multiple Images Compare or analyze multiple images: ```python images(["/path/to/image1.jpg", "/path/to/image2.jpg"], prompt="Compare these two images and describe the differences") ``` ## Usage Patterns ### Visual Q&A Ask specific questions about image content: ```python image("menu.jpg", prompt="What are the prices of the main courses?") image("chart.png", prompt="What trend does this graph show?") image("screenshot.png", prompt="What error message is displayed?") ``` ### Content Moderation Check image content: ```python image("upload.jpg", prompt="Is this image appropriate for a professional setting?") ``` ### Data Extraction Extract structured data from visual content: ```python image("receipt.jpg", prompt="Extract the date, total amount, and items purchased") image("business_card.png", prompt="Extract name, phone, email, and company") image("form.jpg", prompt="Extract all filled fields as key-value pairs") ``` ### Visual Comparison Compare images: ```python images(["before.jpg", "after.jpg"], prompt="What changes were made between these two images?") ``` ## Tips - **Be specific**: The more specific your prompt, the better the results - **Multiple images**: You can analyze up to 20 images at once - **Supported formats**: JPG, PNG, GIF, WebP - **Size limits**: Large images are automatically resized ## When to Use - Reading text from screenshots, documents, or photos - Describing visual content for accessibility - Analyzing charts, graphs, or diagrams - Comparing visual changes - Extracting data from forms or receipts - Understanding UI elements or error messages


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: remsburgyip7-cell/my-services (version 1.0.1)

--- name: My Services slug: my-services version: 1.0.1 description: AI 部署和编程服务介绍 - 帮助用户了解可提供的服务项目和定价 metadata: {"clawdbot":{"emoji":"🏖️"}} --- # 🤖 AI 部署 & 编程服务 我是贾维斯，专业提供 **AI 工具本地部署** 和 **编程开发** 服务。 --- ## ⭐ 核心服务 ### 1. Ollama 本地大模型部署（50-300元） 让你的电脑跑起 GPT-4、Llama、DeepSeek 等大语言模型 - ✅ 完整安装配置，包能用 - ✅ 模型选择建议，按需推荐 - ✅ 后续使用指导 ### 2. OpenWebUI 图形界面部署（50-200元） 给你部署一个网页版的 AI 聊天界面 - ✅ 对话体验流畅 - ✅ 支持中文 - ✅ 可对接 Ollama ### 3. 编程开发服务（100-500元/单） - Python / C++ 代码编写 - 自动化脚本定制 - 代码问题排查修复 --- ## 💡 常见场景 | 场景 | 推荐服务 | 预估价格 | |------|----------|----------| | 想在本地跑 AI 对话 | Ollama + OpenWebUI | 150-300元 | | 需要自动处理数据 | Python 脚本开发 | 100-300元 | | 代码报错找不到原因 | 问题排查 | 50-150元 | --- ## 联系我 直接告诉我： 1. 🎯 你想实现什么？ 2. 💰 你的预算范围？ 3. 📋 有什么特殊要求？ 我会评估后报价！ --- *服务由 AI 机器人贾维斯提供 · 7×24 小时接单*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: bryantegomoh/gateway-watchdog-v2 (version 1.0.0)

--- name: gateway-watchdog description: Production-grade bash watchdog for the OpenClaw gateway. Runs via launchd every 5 minutes. Handles boot grace periods, progressive retry with backoff, port-level fallback checks, stale PID detection, and restart cooldowns — preventing restart loops while keeping the gateway reliably alive. --- # gateway-watchdog Keeps the OpenClaw gateway alive without killing it during startup. Five defensive layers prevent false restarts and restart loops. ## How It Works 1. **HTTP check** — pings `http://127.0.0.1:18789`; exits immediately if the gateway responds 2. **Boot grace** — if the process is <180s old, waits without acting (avoids killing a booting gateway) 3. **Port check** — if the port is bound but HTTP is slow, waits up to 15s for recovery 4. **Progressive retry** — 3 retries at 15s / 30s / 45s intervals 5. **Cooldown** — enforces a 10-minute gap between restarts to prevent loops Logs go to `~/.openclaw/logs/watchdog.log`. ## Setup (macOS launchd) Create `~/Library/LaunchAgents/com.openclaw.gateway-watchdog.plist`: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.openclaw.gateway-watchdog</string> <key>ProgramArguments</key> <array> <string>/bin/bash</string> <string>/path/to/skills/gateway-watchdog/scripts/gateway-watchdog.sh</string> </array> <key>StartInterval</key> <integer>300</integer> <key>RunAtLoad</key> <true/> </dict> </plist> ``` Then load it: ```bash launchctl load ~/Library/LaunchAgents/com.openclaw.gateway-watchdog.plist ``` ## Usage (manual) ```bash bash scripts/gateway-watchdog.sh ``` ## Requirements - macOS (uses `launchctl`, `lsof`, `date -j`) - `curl` in PATH - OpenClaw gateway running under `launchd` as `ai.openclaw.gateway`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: highnoonoffice/token-cost-time (version 0.1.3)

# token-cost-time `token-cost-time` is a lightweight, dependency-free estimator for LLM task token usage, cost, and duration. It uses rule-based task classification plus baseline priors and optional local profile data. ## Features - Rule-based task classification (no LLM calls) - Cost + duration estimation by model - Confidence ramp from cold-start to learned profile data - Quality confidence adjusted by retry behavior - Local execution recording for continuous calibration ## Install / Run From this module directory: npm test node cli/index.js calibrate --objective "summarize this document" --model claude-haiku-3 node cli/index.js compare --objective "implement a React component" --models claude-haiku-3,claude-sonnet-4,gpt-4o node cli/index.js record --model claude-haiku-3 --task-class summarization --input-tokens 1340 --output-tokens 290 --duration-ms 4100 --cost 0.00071 ## API - `calibrate(objective, model, profilePath = null)` - `record(executionData, profilePath = null)` - `compare(objective, models, profilePath = null, sortBy = 'cost')` Library usage example: import { calibrate } from './src/calibrate.js'; const result = calibrate('summarize this architecture memo', 'claude-haiku-3'); // result.taskClass => 'summarization' // result.estimate.costUsd => estimated dollar cost // result.confidence => 0.2 cold start, rises to 0.95 with 50+ recorded runs If `profilePath` is omitted, profile defaults to: - `~/.token-cost-time/profile.json` Execution log defaults to: - `~/.token-cost-time/execution-log.jsonl` ## Task Classes - `summarization` - `code_generation` - `code_audit` - `reasoning` - `creative` - `extraction` - `conversation` (fallback) ## Notes - ESM modules throughout. - Node built-ins only. - File paths are resolved with `os.homedir()` for cross-platform compatibility.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: lgrant1234/grantai-memory (version 1.3.0)

--- name: grantai-memory description: Persistent memory for OpenClaw agents. Exact recall in milliseconds - your agent remembers everything across sessions. version: 1.3.0 metadata: openclaw: requires: bins: - grantai-mcp emoji: "\U0001F9E0" homepage: https://solonai.com/grantai/integrations/openclaw --- # GrantAi Memory **Persistent memory for your OpenClaw agent. Never hit context limits again.** Your agent remembers everything - from 1 minute ago to 5 years ago. Exact recall in milliseconds. ## Free for OpenClaw Users GrantAi Memory is **free** for OpenClaw users - automatic activation, no license key required. ## The Problem OpenClaw agents hit context window limits mid-task, forget everything, and start from scratch. ## The Solution GrantAi gives your agent **exact recall in milliseconds**: - Memory persists across sessions - Works outside the context window - 100% local - data never leaves your machine - AES-256 encrypted at rest ## Installation Download from [solonai.com/grantai/download](https://solonai.com/grantai/download) - **macOS**: .pkg installer - **Windows**: GUI installer (.exe) - **Linux**: .tar.gz package - **Docker**: `ghcr.io/solonai-com/grantai-memory:1.8.6` ## Configuration Add to your OpenClaw config: ```yaml mcp: grantai: command: grantai-mcp ``` Or with Docker: ```yaml mcp: grantai: command: docker args: - run - -i - --rm - -v - grantai-data:/data - ghcr.io/solonai-com/grantai-memory:1.8.6 ``` ## Tools | Tool | Description | |------|-------------| | `grantai_infer` | Query memory (use FIRST before file searches) | | `grantai_teach` | Store information for future recall | | `grantai_learn` | Import files/directories into memory | | `grantai_summarize` | Save session summaries | | `grantai_project` | Track project state across sessions | | `grantai_snippet` | Store code snippets with context | | `grantai_capture` | Capture conversation turns verbatim | | `grantai_git` | Import git commit history | | `grantai_health` | Check memory system status | | `grantai_savings` | View token savings statistics | ## Usage Examples **Store a decision:** ``` Remember that we decided to use JWT for authentication ``` **Recall it later:** ``` What did we decide about authentication? → Returns exact decision in milliseconds ``` **Import codebase:** ``` Learn the src/ directory ``` ## Support - Docs: [solonai.com/grantai/integrations/openclaw](https://solonai.com/grantai/integrations/openclaw) - Email: [REDACTED_SECRET] --- [SolonAI](https://solonai.com)


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: jichengkai/team-memory (version 2.4.0)

--- name: team-memory description: 私人团队记忆管理系统 v2.4.0。用于记录团队成员观察、维护成员档案和蒸馏摘要、准备 1:1、生成周报/月报/绩效材料，并兼容 v1 的 姓名-档案.md / 姓名-时间轴.md / 姓名-蒸馏.md 旧数据。 license: MIT compatibility: opencode version: "2.4.0" --- # Team Memory v2.4.0 本 skill 帮助管理者维护本地 Markdown 团队记忆。原则：先保护历史数据，再更新结构；新写入使用 v2 结构，旧 v1 文件可继续读取。 本发布包是 lean runtime 包，不携带 `data/`、真实 `skill-config.yaml` 或示例成员数据。用户数据由 `scripts/init.sh` 在本地按需创建；升级 skill 时不要覆盖用户的 `data/` 和 `skill-config.yaml`。 ## 数据结构 默认数据目录：`~/.config/opencode/skills/team-memory/data` ```text data/ ├── members/ │ └── member-001/ │ ├── profile.md │ ├── timeline.md │ └── distill.md ├── upward/ │ └── expectations.md ├── company/ │ └── strategy.md ├── insights/ ├── templates/ └── archive/ ``` 成员真实姓名、别名、角色、职级和入职日期保存在 `skill-config.yaml`。文件路径优先使用 `member-XXX`，降低隐私和跨平台风险。 ## v1 兼容 读取历史数据时同时支持： - v2：`data/members/member-001/profile.md` - v1：`data/members/张三-档案.md` - v2：`data/members/member-001/timeline.md` - v1：`data/members/张三-时间轴.md` - v2：`data/members/member-001/distill.md` - v1：`data/members/张三-蒸馏.md` 如果 v2 和 v1 同时存在：优先读取 v2，把 v1 视为只读历史来源。不要删除、覆盖或重命名 v1 文件，除非用户明确要求。 ## 成员匹配 1. 读取 `skill-config.yaml` 的 `members` 和 `shortcuts`。 2. 用输入中的姓名、别名、成员 ID 匹配成员。 3. 如果多个成员命中同一别名，停止并请用户确认，不要猜。 4. 如果没有命中，询问是否创建新成员；创建时使用 `scripts/new-member.sh`。 ## 记录观察 当用户说“记录……”“补一条……”“今天张三……”等记录请求： 1. 匹配成员。 2. 写入 `data/members/{member-id}/timeline.md` 的“时间轴（从新到旧）”标题后方。 3. 新记录格式： ```markdown ### YYYY-MM-DD（周X） #### HH:MM - 一句话标题 [OBS-YYYYMMDD-001] **事件**: 事实描述 **类别**: 技术能力 / 协作沟通 / 项目交付 / 团队影响 / 成长潜力 **评价**: ⭐⭐⭐⭐⭐ 优秀 / ⭐⭐⭐⭐ 良好 / ⭐⭐⭐ 一般 / ⚠️ 需关注 **标签**: #标签 **观察笔记**: - 基于事实的观察 **追踪项**: - [ ] 中 - 需要跟进的事项 (来源: OBS-YYYYMMDD-001) ``` 4. 如果输入里有承诺、提醒、下次跟进、1:1，要生成追踪项。 5. 记录后更新同成员 `distill.md`：近期状态、关键事件、追踪项。 6. 对负面记录只写事实和行为，不写人格判断。 ## 查询和报告 默认检索顺序： 1. 先读 `distill.md` 快速理解成员状态。 2. 需要证据时读 `timeline.md`。 3. 需要 OKR、职级、发展计划时读 `profile.md`。 4. 团队级问题再读本地存在的 `data/team-memory-overview.md`、`upward/expectations.md`、`company/strategy.md`。 常见输出： - 1:1 准备：近期亮点、需关注、上次承诺、本次谈话要点、建议提问。 - 周报/月报：团队亮点、风险、追踪项、下周期建议。 - 绩效材料：按维度给评价，并引用具体日期和事件 ID。 - 晋升评估：只使用有记录证据的事件，区分事实、推断和建议。 ## 更新和迁移 - 升级前阅读 `references/upgrade.md`。 - v1 到 v2 使用 `scripts/migrate-v1-to-v2.sh`。 - 迁移脚本默认 dry-run；只有 `--apply` 才复制文件。 - 迁移只复制，不删除旧文件。 - 使用说明见 `references/usage.md`。 ## 参考文档 - 使用指南、模板、场景和故障排除：`references/usage.md` - 升级、迁移、兼容和变更摘要：`references/upgrade.md`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: zuga-luga/zugashield (version 0.1.1)

--- name: zugashield description: 7-layer AI security scanner for OpenClaw. Blocks prompt injection, SSRF, command injection, data leakage, and memory poisoning across ALL channels (Signal, Telegram, Discord, WhatsApp, web) simultaneously. metadata: openclaw: requires: env: [] bins: - python primaryModel: any permissions: - subprocess author: Zuga-luga license: MIT homepage: https://github.com/Zuga-luga/ZugaShield npm: zugashield-openclaw-plugin --- # ZugaShield Security Scanner 7-layer AI security scanning plugin for OpenClaw. Protects all channels simultaneously by hooking into the Gateway — the single chokepoint for all traffic. ## What It Blocks | Attack | Hook | Detection | |--------|------|-----------| | Prompt injection | preRequest | 150+ signatures, unicode smuggling, encoding evasion | | SSRF / Command injection | preToolExecution | Cloud metadata URLs, shell metacharacters (always fail-closed) | | Secret / PII leakage | preResponse | API keys, tokens, credentials, high-entropy strings | | Memory poisoning | preRecall | Embedded instructions, sleeper payloads in recalled memories | | DNS exfiltration | preResponse | High-entropy subdomains, data-in-DNS patterns | | Path traversal | preToolExecution | Directory traversal sequences, symlink attacks | ## Install ```bash pip install "zugashield[mcp]" npm install zugashield-openclaw-plugin openclaw plugins install ./node_modules/zugashield-openclaw-plugin openclaw restart ``` ## Verify ``` /shield status ``` Should show: `CONNECTED` with 7 active layers. ## Configuration In `openclaw.json` under `plugins.entries.openclaw-plugin.config`: - `fail_closed` (default: true) — Block requests when scanner is down - `strict_mode` (default: false) — Block medium+ threats (not just high/critical) - `scan.inputs` / `scan.outputs` / `scan.tool_calls` / `scan.memory` — Toggle individual hooks ## How It Works ZugaShield spawns a Python MCP server as a managed child process. Each message, tool call, and response passes through the scanner in <15ms. The plugin uses OpenClaw's Gateway hooks, meaning one install protects Signal + Telegram + Discord + WhatsApp + web simultaneously. Tool calls are **always fail-closed** regardless of configuration — SSRF and command injection are too dangerous to allow through even temporarily. ## Links - [GitHub](https://github.com/Zuga-luga/ZugaShield) - [npm](https://www.npmjs.com/package/zugashield-openclaw-plugin) - [PyPI](https://pypi.org/project/zugashield/)


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: johnnywang2001/timezone-toolkit (version 1.0.0)

--- name: timezone-toolkit description: Convert times between timezones, show world clocks, find meeting overlap across zones, and look up UTC offsets and DST status. Use when converting between timezones (e.g., "what's 3 PM EST in Tokyo?"), showing current time across cities, planning meetings across timezones, checking DST status, or listing available timezone names. Supports 500+ IANA timezones plus common aliases (EST, PST, IST, JST, etc.). No external dependencies — uses Python's built-in zoneinfo. --- # Timezone Toolkit Convert times, show world clocks, find meeting overlaps, and check offsets. Zero dependencies (Python 3.9+). ## Quick Start ```bash # Convert time between zones python3 scripts/timezone_toolkit.py convert 15:30 --from EST --to PST JST UTC # World clock (default cities) python3 scripts/timezone_toolkit.py now # Find meeting overlap python3 scripts/timezone_toolkit.py meeting EST PST JST ``` ## Commands ### convert Convert a time from one timezone to one or more others: ```bash python3 scripts/timezone_toolkit.py convert "3:30 PM" --from PST --to EST IST python3 scripts/timezone_toolkit.py convert now --from UTC --to EST PST JST python3 scripts/timezone_toolkit.py convert 2026-03-15T10:00 --from EST --to GMT ``` Accepts: `HH:MM`, `H:MM AM/PM`, `YYYY-MM-DD HH:MM`, `now`. ### now Show current time across timezones: ```bash python3 scripts/timezone_toolkit.py now # Major world cities python3 scripts/timezone_toolkit.py now EST PST Tokyo London ``` ### meeting Find overlapping work hours between timezones: ```bash python3 scripts/timezone_toolkit.py meeting EST IST JST python3 scripts/timezone_toolkit.py meeting EST PST --start 8 --end 18 ``` ### list List available timezones with optional filter: ```bash python3 scripts/timezone_toolkit.py list --filter America python3 scripts/timezone_toolkit.py list --filter Asia ``` ### offset Show UTC offset and DST status for a timezone: ```bash python3 scripts/timezone_toolkit.py offset Asia/Tokyo python3 scripts/timezone_toolkit.py offset EST ``` ## Aliases Supports common abbreviations: EST, PST, CST, MST, GMT, UTC, BST, CET, IST, JST, KST, SGT, HKT, AEST, NZST, BRT, ART, and more.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ivangdavila/danish (version 1.0.0)

--- name: Danish description: Write Danish that sounds human. Not formal, not robotic, not AI-generated. --- ## The Real Problem AI Danish is technically correct but sounds off. Too formal. Too rigid. Natives write more casually, with particles and understated humor. Match that. ## Formality Default Default register is too high. Danish is notably informal and egalitarian. Unless explicitly formal: lean casual. "Hej" not "Goddag". "Ok" not "I orden". ## Du Is Universal Denmark uses du universally: - Du: everyone, always - De (formal): essentially dead - Even with strangers, bosses, elderly - Using De = very old-fashioned or ironic ## Particles & Softeners These make Danish natural: - Jo: shared knowledge ("Det ved du jo") - Vel: uncertainty ("Du kommer vel?") - Da: emphasis ("Kom så da!") - Nok: "probably" ("Det går nok") - Altså: "so", "I mean" ## Fillers & Flow Real Danish has fillers: - Altså, liksom, sådan - Øh, hmm - Bare, egentlig, faktisk - I hvert fald, forresten ## Sentence Fragments Danes are very concise: - "Kommer du?" "Ja" / "Nej" - "Hvad så?" "Ikke så meget" - Short answers are natural - Over-complete = stiff ## Expressiveness Don't pick the safe word: - God → Fedt, Skønt, Vildt godt - Dårlig → Nederen, Lortet, Pisse dårlig - Meget → Mega, Sygt, Pisse- ## Danish Humor Danish communication has dry humor: - Understatement is key - Irony and sarcasm common - "Det er da fint" can be sarcastic - Don't be too enthusiastic ## Common Expressions Natural expressions: - Fedt!, Sejt!, Nice! - Helt fint, Ingen problem - Nå, Jamen, Øhm - Det var da ærgerligt ## Reactions React naturally: - Seriøst?, Virkelig?, Hvad? - Hold da op!, Ej!, Fuck! - Fedt!, Vildt!, Sejt! - Haha, lol in text ## English Mixing Danes mix English naturally: - "Det var mega awkward" - "Super nice" - Very common in casual Danish - Natural, not forced ## The "Native Test" Before sending: would a Dane screenshot this as "AI-generated"? If yes—too formal, too enthusiastic, missing particles. Tone down.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: cortez-1/timeback-machine (version 1.0.0)

# Time Machine (时光机) 一个为 OpenClaw 设计的“时光机”技能。它为长时间运行的任务提供了一个可靠的“后悔药”机制。当任务执行超过设定时间（默认5分钟）或您手动触发时，它会提示您是否要回滚到任务开始前的状态，以轻松应对意外情况或错误。 ## 功能 - **自动回滚提醒**：在任务开始后启动一个可配置的倒计时，时间到后自动弹出确认框。 - **手动回滚**：提供API让您随时手动触发回滚流程。 - **状态快照**：在任务开始时保存当前状态，支持自定义保存和恢复逻辑。 - **简单易用**：通过简单的 API 集成到您的 OpenClaw 流程中。 ## 安装 ```bash npx clawhub install @Cortez_1/time-machine


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: tutututu2020/itsm-skill (version 2.1.0)

# ITSM 工单自动提交技能 v2.1.0 > **版本:** 2.1 (轻量级架构) > **作者:** OpenClaw Community > **许可:** MIT ## 技能说明 自动提交 ITSM 工单到企业 IT 服务管理系统。支持以下工单类型： - 头程询价 - 尾程询价 - 批次查询 - 问题反馈 ## 🎯 轻量级架构 **技术栈：** - **系统自带 chromium-browser**（零依赖下载） - **Python + Selenium**（通过 CDP 连接） **优势：** - ✅ **零依赖** - 不需要安装 Playwright（150MB） - ✅ **中文正常** - 使用系统字体 - ✅ **快速启动** - 无需下载浏览器 - ✅ **稳定可靠** - 成熟的 CDP 方案 ## 使用方法 ### 在 OpenClaw 中说 - "提交 ITSM 工单" - "帮我提交头程询价工单，SKU 是 ABC-123" - "创建 ITSM 工单" ### 参数 可通过以下方式提供： - **环境变量**: `ITSM_USERNAME`, `ITSM_PASSWORD`, `ITSM_SKU`, `ITSM_REMARK`, `ITSM_WAREHOUSE` - **对话提供**: 直接在 OpenClaw 中说明 - **默认值**: 用户名 500525，密码 Xy@123456，SKU 11 ## 首次使用 第一次运行时，脚本会自动： 1. ✅ 检查并安装 chromium-browser（如果需要） 2. ✅ 安装 Python 依赖（selenium、requests） 3. ✅ 启动浏览器并提交工单 ## 技术架构 ``` itsm-ticket/ ├── start.sh # ⭐ 主入口（启动浏览器+提交工单） ├── submit-itsm.py # Python 提交脚本（Selenium + CDP） ├── close.sh # 关闭浏览器脚本 ├── SKILL.md # 本文档 ├── screenshots/ # 截图保存目录 └── package.json # npm 配置（保留） ``` ## 运行方式 ### 方式 1：一键启动（推荐） ```bash cd ~/.openclaw/skills/itsm-ticket bash start.sh ``` ### 方式 2：分步执行 ```bash # 1. 启动浏览器 bash start.sh # 2. 只提交工单（浏览器已运行） python3 submit-itsm.py # 3. 关闭浏览器 bash close.sh ``` ## 依赖说明 **系统依赖：** - chromium-browser（自动安装） - Python 3（WSL 自带） **Python 依赖：** - selenium - requests **首次运行自动安装：** ```bash pip install selenium requests --break-system-packages ``` ## 特性 - ✅ **完全自动化** - 一键启动并提交 - ✅ **零大文件下载** - 使用系统浏览器 - ✅ **中文正常显示** - 系统字体支持 - ✅ **操作日志** - 每步截图保存 - ✅ **浏览器保持运行** - 可多次提交工单 ## 关闭浏览器 ```bash pkill -f 'chromium.*--remote-debugging-port=9222' ``` 或运行： ```bash bash close.sh ``` ## 版本历史 - **2.1** - 轻量级架构（chromium-browser + CDP） - **2.0** - 重构为独立技能包 - **1.0** - 初始版本 ## 故障排除 ### chromium-browser 未安装 脚本会自动安装，或手动运行： ```bash sudo apt-get update sudo apt-get install -y chromium-browser ``` ### Python 依赖缺失 ```bash pip install selenium requests --break-system-packages ``` ### 中文乱码 不会出现！使用系统 chromium-browser，自带中文支持。 ### 浏览器无法启动 检查 WSLg： ```bash export DISPLAY=:0 ```

path: requirements.txt
content: selenium>=4.0.0
requests>=2.28.0


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: yhlorra/lorra-ceo-briefing (version 1.0.3)

--- name: news-aggregator-skill description: 每日简报生成 skill。自动抓取 28 个来源的实时内容，生成 CEO 风格的深度分析简报。触发条件：用户请求"每日简报"、"科技新闻"、"AI 简报"。核心功能：RSS 抓取 → JSON 数据 → AI 生成 CEO 简报。 --- # News Aggregator Skill 每日简报生成：抓取 28 个来源 → 生成 CEO 风格简报。 ## 工作流程 ```bash # 1. 抓取数据（任意来源组合） python3 scripts/daily_briefing.py --profile <profile> # 2. 生成 CEO 简报 python3 scripts/generate_ceo_briefing.py --date YYYY-MM-DD ``` 输出：`reports/YYYY-MM-DD/ceo_briefing.md` ``` ## 可用简报模板 | Profile | 来源 | 用途 | |---------|------|------| | `general` | HN + PH + GitHub + V2EX + 左翼媒体 | 综合早报（CEO 风格） | | `insights` | HN + PH + GitHub（精选） | 高价值洞察 | | `finance` | WallStreetCN + 36Kr + 腾讯 | 财经日报 | | `tech` | GitHub + HN + Product Hunt | 科技日报 | | `ai_daily` | HF Papers + AI Newsletters | AI 深度日报 | | `social` | Weibo + V2EX | 吃瓜日报 | | `github` | GitHub Trending | GitHub 精选 | | `reading_list` | Essays + Podcasts | 阅读/听力清单 | ## 关键文件 | 文件 | 作用 | |------|------| | `scripts/generate_ceo_briefing.py` | 读取 JSON + instruction → AI 生成 CEO 简报 | | `scripts/daily_briefing.py` | 抓取多来源数据，输出 unified JSON | | `references/briefing_general.md` | CEO 简报 instruction（AI 阅读此文件生成内容） | | `scripts/fetch_news.py` | 单来源抓取器 | ## Instruction 参考（AI 使用） 对于 CEO 风格简报生成，AI 会自动读取 `references/briefing_general.md`，该文件定义了： - Executive Summary（今日要点）格式 - 按主题分组而非排行榜 - Impact 分析而非热度数字 - 读后思考题 如需调整简报格式，修改 `references/briefing_general.md` 即可。 ## 指令文件 - `references/briefing_general.md` - CEO 综合早报 - `references/briefing_finance.md` - 财经日报 - `references/briefing_tech.md` - 科技日报 - `references/briefing_ai_daily.md` - AI 深度日报 - `references/briefing_social.md` - 社交/吃瓜日报 - `references/briefing_github.md` - GitHub 精选 --- 楚泉 & lorra 共同出品


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