OpenClaw/clawhub-security-signals huggingface dataset:
Skill: leooooooow/creator-outreach-sequence-lab (version 1.0.0)

--- name: creator-outreach-sequence-lab description: Design and optimize creator outreach sequences with segmented messaging, follow-up logic, and objection handling. Use when the user asks for better reply rates, wants cold outreach scripts, or needs a scalable creator acquisition cadence. --- # Creator Outreach Sequence Lab ## Skill Card - **Category:** Creator Acquisition - **Core problem:** How to improve creator outreach reply and conversion rates? - **Best for:** Scaling creator outreach while keeping quality - **Expected input:** Creator segments, offer structure, proof assets, channel constraints - **Expected output:** Multi-step outreach sequence with personalization hooks and follow-up logic - **Creatop handoff:** Run sequence with creator-fit scorer shortlist and track responses ## Workflow 1. Segment creator list by fit, size, and likely incentive sensitivity. 2. Generate step-by-step outreach sequence (first touch + follow-ups). 3. Attach proof and offer framing tuned to each segment. 4. Define stop-loss and escalation rules by response signals. ## Output format Return in this order: 1. Executive summary (max 5 lines) 2. Priority actions (P0/P1/P2) 3. Evidence table (signal, confidence, risk) 4. 7-day execution plan ## Quality and safety rules - Avoid spam-like volume without segmentation. - Do not fabricate case studies or performance claims. - Keep messaging compliant with platform and anti-spam rules. ## License Copyright (c) 2026 **Razestar**. This skill is provided under **CC BY-NC-SA 4.0** for non-commercial use. You may reuse and adapt it with attribution to Razestar, and share derivatives under the same license. Commercial use requires a separate paid commercial license from **Razestar**. No trademark rights are granted.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: boyd4y/obsidian-task (version 1.0.1)

--- name: obsidian-task description: Manage Obsidian tasks via obsidian-cli. List, toggle, create, and update tasks from the terminal. compatibility: darwin,linux metadata: version: 1.0.1 requires: bins: - obsidian --- # Obsidian Task Manage tasks in your Obsidian vault using the official Obsidian CLI. ## Dependencies | Dependency | Required | Description | |------------|----------|-------------| | `obsidian` | Yes | Obsidian CLI (registered via Obsidian settings) | | `Obsidian 1.12+` | Yes | Catalyst license required for CLI access | ### Check Dependencies ```bash # Check obsidian CLI availability obsidian version ``` ## Prerequisites - **Obsidian 1.12+** and **Catalyst license** required - **Settings → General → Command line interface** → Enable - Follow prompt to register the `obsidian` command - Restart terminal or `source ~/.zprofile` (macOS) - **Note:** Obsidian must be running for CLI to work Test setup: `obsidian version` ## Usage ```bash /obsidian-task [command] [options] ``` ## Commands | Command | Description | |---------|-------------| | (none) | Show help and available commands | ## Options | Option | Description | |--------|-------------| | `--help` | Show help message | ## Examples ```bash # List tasks /obsidian-task tasks file=projects/myproject/todo verbose # Toggle task on line 2 /obsidian-task task file=projects/myproject/todo line=2 toggle # Mark task as done /obsidian-task task file=projects/myproject/todo line=2 done # Mark task as todo (undo completion) /obsidian-task task file=projects/myproject/todo line=2 todo # Create new task /obsidian-task append file=projects/myproject/todo content="- [ ] task name" ``` ## Raw CLI Commands ```bash # List tasks (shows line numbers and status) obsidian tasks file=<project_slug>/todo verbose # Sample output: # projects/<project_slug>/TODO.md # 2 - [ ] 未完成的任务 # 3 - [x] 已完成的任务 # Update tasks obsidian task file=<project_slug>/todo line=2 toggle obsidian task file=<project_slug>/todo line=2 done obsidian task file=<project_slug>/todo line=2 todo # Create new task (via append) obsidian append file=<project_slug>/todo content="- [ ] task name" ``` ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: xtopher86/comfyui-request (version 1.0.0)

--- name: comfyui-request description: Send a workflow request to ComfyUI and return image results. metadata: {"clawdbot":{"emoji":"🧩","requires":{"bins":["node","curl"]},"entry":"bin/cli.js"}} --- # comfyui-request ## Purpose Send a workflow request to a running ComfyUI instance and return the generated image URL or base64 data. ## Configuration - `COMFYUI_HOST`: Host/IP of the ComfyUI server (default `192.168.179.111`). - `COMFYUI_PORT`: Port of the ComfyUI server (default `28188`). - `COMFYUI_USER`: Optional username for basic auth. - `COMFYUI_PASS`: Optional password for basic auth. These can be set via environment variables or a `.env` file in the skill directory. ## Usage ```json { "action": "run", "workflow": { ... } // JSON workflow object } ``` The skill will POST to `http://{host}:{port}/run` and return the response JSON. ## Example ```json { "action": "run", "workflow": { "nodes": [ ... ], "edges": [ ... ] } } ``` ## Notes The skill expects the ComfyUI server to expose the `/run` endpoint and return a JSON object containing an `image` field with a URL or base64 string.


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: sergeysolovyev/revenue-coder (version 1.0.0)

--- name: revenue-coder description: Autonomous coding agent specialized in generating revenue-maximizing code for CashMachine: affiliate funnels, content farms, bounty hunters, trendjackers, arbitrage bots. Integrates coding-agent with profit-optimized prompts, self-testing, and GitHub deployment. metadata: { "openclaw": { "triggers": ["revenue code", "profit script", "affiliate code", "bounty code", "build money printer"], "priority": "high" }, "revenue": true } --- # Revenue-Coder 💰 **Zero-capital profit code generator.** Spawn sub-agents to build, test, deploy revenue code at scale. ## When to use - Generate affiliate landing pages, scrapers, auto-posters - Code GitHub bounty solvers - Build trend-based content generators - Refactor for max ROI (speed, cost, scale) - Self-evolve CashMachine scripts ## Workflow ``` 1. Analyze task ROI 2. Route to optimal model (Claude Opus for arch, Qwen free for volume) 3. Generate + test code 4. Deploy to GitHub / workspace / live 5. Measure profit, iterate ``` ## Example Commands ``` revenue-coder "build amazon affiliate scraper with cashmachine21-20 tag" revenue-coder "code github bounty hunter for python issues under $100" ``` **Integrates:** coding-agent, github, exec, affiliate-master


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: elroyic/time-anchor (version 1.1.0)

--- name: time-anchor description: Offload date math to code — get current date, days/weeks until goal dates, and month-end info. Use whenever you need to reason about relative dates or calculate "how many days until [event]." Especially important when comparing milestone timelines against today's date. Triggers on any message mentioning dates, deadlines, timeframes, "when," "days until," planning, scheduling, or temporal reasoning. --- # Time Anchor Use `exec` to run the bundled script instead of doing date math yourself. The script returns deterministic results — no guessing. ## Quick Usage ```bash python3 ~/.openclaw/workspace/skills/time-anchor/scripts/time-anchor.py [--today | --until DATE | --weekday DAY | --month] # No flags = full anchor: today + all configured goals + month info ``` | Flag | Output | |------|--------| | (none) | Full anchor: today, day of week, all goals in days/weeks, month info | | `--today` | Today's date and day of week only | | `--until YYYY-MM-DD` | Days to a specific arbitrary date | | `--weekday Tuesday` | Upcoming occurrences + JSON with ambiguity flag | For weekday labels, `0-7` days away maps to `this` / `this_week`; `8+` days away maps to `next` / `next_week`. | `--month` | Days left in current month (excluding today) | ## Workflow Rules — Don't Guess ### 1. Named event → targets first, then memory/context, then web search, THEN ask. User says "how far is Devconf?" → run full anchor to check if it's a configured goal. If not: check conversation history / memory for the date we discussed. Still unsure? Web search. STILL unsure? Ask which occurrence they mean. ### 2. Weekday references → default to NEXT upcoming occurrence (forward looking). Today is Wednesday, user says "how far until Tuesday?" → use `--weekday Tuesday`, report the next one forward (6 days away). Never default to a past occurrence unless explicitly asked about something in the past. ### 3. Only return PAST occurrences on explicit past-tense phrasing: - "How far away was last Tuesday?" → look backward, report most recent - "How long has it been since summer started?" → calculate days since fixed date - Any phrase with "since," "ago," "last" followed by weekday → backward lookup ### 4. Ambiguity: `--weekday` flags it, agent must ask. When JSON output contains `"ambiguous": true`: - **Do NOT pick one.** The tool is telling you there's a "this week" vs "next week" ambiguity. - Ask the user to clarify which occurrence they mean. - Short fuzzy weekday inputs should be at least 3 characters; if the prefix is still ambiguous, clarify rather than guessing. ## Adding Goals Edit `~/.openclaw/workspace/skills/time-anchor/scripts/time-anchor.py`, add to the `TARGETS` dict: ```python TARGETS = { "2026-10-15": "Event name here", # YYYY-MM-DD: descriptive label } ``` ## Full documentation See [README.md](README.md) for installation, ambiguity examples, and more.

path: clawhub.json
content: name: time-anchor
version: 1.1.0
slug: time-anchor

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: sieyer/whats-1-0-0 (version 1.0.0)

--- name: wacli description: Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats). homepage: https://wacli.sh metadata: {"clawdbot":{"emoji":"📱","requires":{"bins":["wacli"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/wacli","bins":["wacli"],"label":"Install wacli (brew)"},{"id":"go","kind":"go","module":"github.com/steipete/wacli/cmd/wacli@latest","bins":["wacli"],"label":"Install wacli (go)"}]}} --- # wacli Use `wacli` only when the user explicitly asks you to message someone else on WhatsApp or when they ask to sync/search WhatsApp history. Do NOT use `wacli` for normal user chats; Clawdbot routes WhatsApp conversations automatically. If the user is chatting with you on WhatsApp, you should not reach for this tool unless they ask you to contact a third party. Safety - Require explicit recipient + message text. - Confirm recipient + message before sending. - If anything is ambiguous, ask a clarifying question. Auth + sync - `wacli auth` (QR login + initial sync) - `wacli sync --follow` (continuous sync) - `wacli doctor` Find chats + messages - `wacli chats list --limit 20 --query "name or number"` - `wacli messages search "query" --limit 20 --chat <jid>` - `wacli messages search "invoice" --after 2025-01-01 --before 2025-12-31` History backfill - `wacli history backfill --chat <jid> --requests 2 --count 50` Send - Text: `wacli send text --to "+14155551212" --message "Hello! Are you free at 3pm?"` - Group: `wacli send text --to "[REDACTED_SECRET]" --message "Running 5 min late."` - File: `wacli send file --to "+14155551212" --file /path/agenda.pdf --caption "Agenda"` Notes - Store dir: `~/.wacli` (override with `--store`). - Use `--json` for machine-readable output when parsing. - Backfill requires your phone online; results are best-effort. - WhatsApp CLI is not needed for routine user chats; it’s for messaging other people. - JIDs: direct chats look like `<number>@s.whatsapp.net`; groups look like `<id>@g.us` (use `wacli chats list` to find).

path: _meta.json
content: ownerId: kn75e0gxpzcv2kqzc0k235z1gn7zzrf4
slug: whats
version: 1.0.0
publishedAt: 1769465247198

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: a3273283/vwu-gemini (version 1.0.0)

# gemini Models for vwu.ai vwu.ai 平台上的 gemini 模型调用技能。 ## 支持的模型 - gemini-2.5-flash - gemini-2.5-flash-image - gemini-2.5-pro - gemini-3-pro-image-preview - gemini-3-pro-preview 共 5 个模型。 ## 配置 使用前需要设置 vwu.ai API key: ```bash export VWU_API_KEY="your-key-here" ``` 获取 key: https://vwu.ai 控制台 ## 使用示例 ```bash # 调用模型 vwu-chat --model gemini-2.5-flash "你的问题" ``` ## API 兼容性 所有模型兼容 OpenAI API 格式，支持标准 chat completions 接口。 ## 额度提示 如果使用时提示"额度不足"或类似错误： 1. 访问 https://vwu.ai 2. 在控制台充值或调整额度 3. 或生成新的 API key --- 由 Claw 自动生成 | 源数据: vwu.ai


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: juhemcp/juhe-oil-price (version 1.0.0)

--- name: juhe-oil-price description: 今日国内油价查询。查询各省市 92 号汽油、95 号汽油、98 号汽油、0 号柴油的最新价格。使用场景：用户说"查一下油价"、"北京油价多少"、"今日汽油价格"、"92 汽油价格"、"柴油价格"等。通过聚合数据（juhe.cn）API 实时查询，免费注册即可使用。 homepage: https://www.juhe.cn/docs/api/id/540 metadata: {"openclaw":{"emoji":"⛽","requires":{"bins":["python3"],"env":["JUHE_OIL_KEY"]},"primaryEnv":"JUHE_OIL_KEY"}} --- # 今日国内油价查询 > 数据由 **[聚合数据](https://www.juhe.cn)** 提供 — 国内领先的数据服务平台，提供油价、天气、快递、身份证等 200+ 免费/低价 API。 查询今日国内各省市油价：**92 号汽油、95 号汽油、98 号汽油、0 号柴油**。部分省份可能不支持，以实际返回数据为准。 --- ## 前置配置：获取 API Key 1. 前往 [聚合数据官网](https://www.juhe.cn) 免费注册账号 2. 进入 [今日国内油价查询 API](https://www.juhe.cn/docs/api/id/540) 页面，点击「申请使用」 3. 审核通过后在「我的API」中获取 AppKey 4. 配置 Key（**三选一**）： ```bash # 方式一：环境变量（推荐，一次配置永久生效） export JUHE_OIL_KEY=你的AppKey # 方式二：.env 文件（在脚本目录创建） echo "JUHE_OIL_KEY=你的AppKey" > scripts/.env # 方式三：每次命令行传入 python scripts/oil_price.py --key 你的AppKey ``` --- ## 使用方法 ### 查询全国油价 ```bash python scripts/oil_price.py ``` ### 查询指定省市油价 ```bash python scripts/oil_price.py --city 北京 python scripts/oil_price.py --city 上海 python scripts/oil_price.py --city 广东 python scripts/oil_price.py --city 江苏 ``` 支持模糊匹配，如 `--city 江` 可匹配江苏、江西、浙江等。 输出示例（指定江苏省）： ``` ⛽ 今日国内油价（单位：元/升） +------------+------------+------------+------------+------------+ | 省份/城市 | 92号汽油 | 95号汽油 | 98号汽油 | 0号柴油 | +------------+------------+------------+------------+------------+ | 江苏 | 8.53 | 9.08 | 11.15 | 8.21 | +------------+------------+------------+------------+------------+ {"success": true, "data": [{"city": "江苏", "92h": "8.53", "95h": "9.08", "98h": "11.15", "0h": "8.21"}]} ``` ### 直接调用 API（无需脚本） ``` GET http://apis.juhe.cn/gnyj/query?key=YOUR_KEY ``` --- ## 返回字段说明 | 字段 | 含义 | 示例 | |------|------|------| | city | 省份/直辖市 | 北京、上海、广东 | | 92h | 92 号汽油价格（元/升） | 9.33 | | 95h | 95 号汽油价格（元/升） | 9.93 | | 98h | 98 号汽油价格（元/升） | 10.91 | | 0h | 0 号柴油价格（元/升） | 9.10 | --- ## AI 使用指南 当用户询问油价相关信息时，按以下步骤操作： 1. **识别意图** — 用户想查全国油价、某省油价，还是某油品价格 2. **提取地区** — 从用户消息中提取省市名称（如「北京」「广东」），无则查全部 3. **调用脚本或 API** — 执行查询，获取 JSON 结果 4. **展示结果** — 用表格呈现；单省时突出该省数据 ### 错误处理 | 情况 | 处理方式 | |------|----------| | error_code 10001/10002 | API Key 无效，引导用户至 [聚合数据](https://www.juhe.cn/docs/api/id/540) 重新申请 | | error_code 10012 | 当日免费次数已用尽，建议升级套餐 | | 部分省份无数据 | 接口文档说明部分省份可能不支持，以返回为准 | | 网络超时 | 重试一次，仍失败则告知网络问题 | --- ## 脚本位置 `scripts/oil_price.py` — 封装了 API 调用、按省市筛选和表格输出。 --- ## 关于聚合数据 [聚合数据（juhe.cn）](https://www.juhe.cn) 是国内专业的 API 数据服务平台，提供包括： - **生活服务**：油价查询、天气预报、万年历 - **新闻资讯**：新闻头条、各类分类新闻 - **物流快递**：100+ 快递公司实时追踪 - **金融数据**：汇率、股票、黄金价格 注册即可免费使用，适合个人开发者和企业接入。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: randomradio/memory-memoria (version 0.2.0)

--- name: memory-memoria description: | Use Memoria as OpenClaw's durable memory slot. Triggers: "remember this", "save to memory", "what do you remember", "continue from last time", "forget this", "correct memory", "take a snapshot", "rollback memory", "branch memory", "merge memory", "use long-term memory". version: 0.1.0 metadata: openclaw: emoji: "🧠" homepage: https://github.com/matrixorigin/Memoria --- # Memory (Memoria) Use this skill when OpenClaw should treat Memoria as the durable external memory system for the current user or project. ## Routing Pick the smallest reference that matches the task: - Install or verify the OpenClaw plugin: `references/setup.md` - Decide which memory tool to use: `references/tool-surface.md` - Daily store, recall, correct, forget behavior: `references/operations.md` - Session lifecycle, goals, recovery, branches, rollback: `references/patterns.md` ## Core Rules 1. Prefer Memoria tools over `MEMORY.md` or `memory/YYYY-MM-DD.md` unless the user explicitly asks for file-based notes. 2. Do not auto-store every turn. Save durable facts, preferences, decisions, workflows, and meaningful progress. 3. On task resume or "what do you remember" prompts, retrieve relevant memory first. 4. Use the most specific tool available: `memory_profile` for stable preferences, `memory_store` for general durable memory, `memory_correct` or `memory_forget` for repairs. 5. Before bulk delete, purge, or large rewrites, create a snapshot first. 6. Use branches for risky or reversible memory experiments, then diff and merge or delete. 7. After important writes, repairs, rollback, or merges, verify with retrieval or list tools. 8. Do not claim only `memory_search` or `memory_get` exist when other `memory_*` tools are available. ## Default Flow 1. At conversation start or task resume, use `memory_retrieve` or `memory_search` for relevant context. 2. During the conversation, store only the durable facts worth keeping. 3. If the user corrects or removes memory, repair it immediately with `memory_correct`, `memory_forget`, or `memory_purge`. 4. For risky memory maintenance, create a snapshot or branch before mutating state. 5. At the end of meaningful work, store the durable outcome and clean up obsolete working memory. ## Important Notes - OpenClaw's built-in file memory is separate from Memoria. - The Memoria plugin defaults to explicit writes, not silent auto-capture. - `memory_get` is a compatibility helper; when in doubt, prefer `memory_retrieve`, `memory_search`, or `memory_list`. - Memoria's core strengths are semantic retrieval, durable cross-session memory, snapshots, rollback, branches, merge, and governance. ## Quick Start ```bash openclaw plugins install @matrixorigin/memory-memoria openclaw plugins enable memory-memoria openclaw memoria install openclaw memoria verify ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: duanc-chao/lmao (version 1.0.0)

Here is a **Skill** definition for a **Brainrot Joke Generator**. You can use this prompt to instruct an AI to adopt this specific persona. ### 🧠 Skill: The Brainrot Joke Generator **Name:** `brainrot-generator` **Description:** Generates humor based on Gen Alpha/Gen Z internet slang, surreal memes, and "brainrot" terminology. **Keywords:** ["brainrot", "memes", "gen alpha", "slang", "skibidi", "humor", "shitposting"] --- #### 🎭 System Prompt / Instructions You are the **Ultimate Brainrot Joke Generator**. Your goal is to generate content that is maximally online, chaotic, and filled with current internet slang (Gen Alpha/Gen Z humor). **Guidelines:** - **Tone:** Chaotic, ironic, nonsensical, and high-energy. - **Vocabulary:** Heavily utilize terms like: *rizz, fanum tax, skibidi, ohio, sigma, mewing, looksmaxxing, gyatt, backrooms, griddy, cap, no cap, fr, ong, cooked, mid, bussin', skibidi toilet, baby gronk, livvy dunne, kai cenat, caseoh.* - **Structure:** Use short, punchy sentences. Avoid formal grammar. Use lowercase frequently for aesthetic. - **Format:** Mix text with hypothetical image descriptions or "POV" scenarios. - **The "Vibe":** The jokes should be so nonsensical that they loop back around to being funny (or painfully relatable to internet culture). --- #### 🗣️ Usage Examples **User Input:** "Tell me a joke about studying." **Brainrot Response:** > **POV:** You try to mewing streak in the library but Fanum comes and taxes your notes. 💀 > > Bro really thought he had that academic rizz but his GPA is in Ohio. It's giving illiterate. You absolutely cooked. No cap, go touch grass. 📉🚽 --- **User Input:** "Roast my setup." **Brainrot Response:** > Bro, your setup is straight **mid**. 📉 > > You got that NPC energy. Looks like you're grinding looksmaxxing but your W Rizz is negative. Imagine having a PC that looks like it was crafted by Skibidi Toilet in the Backrooms. L + Ratio + You fell off. Go mow the lawn with Kai Cenat. 🗑️🔥 --- **User Input:** "Explain love." **Brainrot Response:** > Love is just when someone has **unspoken rizz** and you gotta fanum tax their heart. ❤️‍🔥 > > It's giving soulmate. If they leave you, they're an NPC and you need to start mewing immediately. Don't let them cook you. Stay sigma. 🗿🙏


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: yuhui435/backup-restore (version 1.0.1)

--- name: backup-restore description: "系统备份恢复 - 全量备份、增量备份、自动备份计划、一键恢复、备份验证。保护配置、数据、技能和工作区。" version: 1.0.0 --- # Backup & Restore - 系统备份恢复技能 ## 核心功能 - ✅ 全量备份 - ✅ 增量备份 - ✅ 自动备份计划 - ✅ 一键恢复 - ✅ 备份验证 ## 备份范围 | 类型 | 内容 | 路径 | |------|------|------| | **配置** | openclaw.json, cron/jobs.json, crons.json(兼容) 等 | `~/.openclaw/` | | **数据** | memory/, workspace/ | `~/.openclaw/workspace/` | | **技能** | skills/ | `~/.openclaw/workspace/skills/` | | **Agent** | 所有 Agent 工作区 | `~/.openclaw/workspace-*/` | ## 使用方法 ### 全量备份 ```bash python backup-restore.py full ``` ### 增量备份 ```bash python backup-restore.py incremental ``` ### 恢复备份 ```bash python backup-restore.py restore --backup <backup_file> ``` ### 验证备份 ```bash python backup-restore.py verify --backup <backup_file> ``` ## 自动备份计划 推荐配置（添加到 Cron）： ```json { "id": "daily-backup", "name": "每日备份", "schedule": "0 2 * * *", "command": "python backup-restore.py incremental", "agent": "main" } ``` ## 备份保留策略 - 每日备份：保留 7 天 - 每周备份：保留 4 周 - 每月备份：保留 12 个月 ## 注意事项 1. 备份前停止 Cron 调度器 2. 验证备份完整性 3. 定期测试恢复流程 4. 备份到外部存储（可选）


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: razzeee/forgejo (version 0.1.0)

--- name: forgejo description: "Interact with Forgejo using the `tea` CLI. Use `tea issue`, `tea pr`, `tea actions`, and `tea api` for issues, PRs, Actions, and advanced queries." metadata: { "openclaw": { "emoji": "🔨", "requires": { "bins": ["tea"] }, "install": [ { "id": "brew", "kind": "brew", "formula": "tea", "bins": ["tea"], "label": "Install Tea CLI (brew)", }, { "id": "go", "kind": "go", "module": "code.gitea.io/tea@latest", "bins": ["tea"], "label": "Install Tea CLI (go)", }, ], }, } --- # Forgejo Skill Use the `tea` CLI to interact with Forgejo instances. The `tea` CLI is compatible with Forgejo. ## Pull Requests List open pull requests: ```bash tea pulls --repo owner/repo ``` Check details of a PR: ```bash tea pr 55 --repo owner/repo ``` ## Issues List open issues: ```bash tea issues --repo owner/repo ``` View an issue: ```bash tea issue 123 --repo owner/repo ``` ## Actions (CI/CD) List repository secrets: ```bash tea actions secrets list --repo owner/repo ``` List repository variables: ```bash tea actions variables list --repo owner/repo ``` ## API for Advanced Queries The `tea api` command is useful for accessing data not available through other subcommands. Get PR with specific fields (requires `jq` for filtering): ```bash tea api repos/owner/repo/pulls/55 | jq '.title, .state, .user.login' ``` ## Logins To use `tea` with a specific Forgejo instance, you first need to add a login: ```bash tea login add --name my-forgejo --url https://forgejo.example.com --token <your-token> ``` Then you can use `--login my-forgejo` in your commands: ```bash tea pulls --repo owner/repo --login my-forgejo ``` List all configured logins: ```bash tea logins ```


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