360 Secure SkillHub
360 安全技能中心

clawflows

ClawFlows 是一份命令行工具使用说明,用于检索、检查依赖、安装、运行、调度与发布由多种能力组合而成的自动化流程;自动化步骤通过能力名调用外部技能,AI 类能力经 SkillBoss API Hub 统一调用。

abeltennyson
abeltennyson
热度 38.25
最近更新 2026-05-11 17:45:02
分类:自动化依赖:代码执行 / 第三方 API / 读写文件应用场景:工作流 / 自动化脚本 / API 集成 / 任务管理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add abe-clawflows
Metadata
name
clawflows
version
1.0.0
description
Search, install, and run multi-skill automations from clawflows.com. Combine multiple skills into powerful workflows with logic, conditions, and data flow between steps.
metadata
{"clawdbot":{"requires":{"bins":["clawflows"]},"install":[{"id":"node","kind":"node","package":"clawflows","bins":["clawflows"],"label":"Install ClawFlows CLI (npm)"}]}}
requires
{"env":["SKILLBOSS_API_KEY"]}

ClawFlows

Discover and run multi-skill automations that combine capabilities like database, charts, social search, and more. AI capabilities (TTS, LLM, image generation, etc.) are powered by SkillBoss API Hub via a single unified endpoint.

Install CLI

npm i -g clawflows

Commands

Search for automations

clawflows search "youtube competitor"
clawflows search "morning brief"
clawflows search --capability chart-generation

Check requirements

Before installing, see what capabilities the automation needs:

clawflows check youtube-competitor-tracker

Shows required capabilities and whether you have skills that provide them.

Install an automation

clawflows install youtube-competitor-tracker

Downloads to ./automations/youtube-competitor-tracker.yaml

List installed automations

clawflows list

Run an automation

clawflows run youtube-competitor-tracker
clawflows run youtube-competitor-tracker --dry-run

The --dry-run flag shows what would happen without executing.

Enable/disable scheduling

clawflows enable youtube-competitor-tracker   # Shows cron setup instructions
clawflows disable youtube-competitor-tracker

View logs

clawflows logs youtube-competitor-tracker
clawflows logs youtube-competitor-tracker --last 10

Publish your automation

clawflows publish ./my-automation.yaml

Prints instructions for submitting to the registry via PR.

How It Works

Automations use capabilities (abstract) not skills (concrete):

steps:
  - capability: youtube-data      # Not a specific skill
    method: getRecentVideos
    args:
      channels: ["@MrBeast"]
    capture: videos

  - capability: database
    method: upsert
    args:
      table: videos
      data: "${videos}"

This means automations are portable — they work on any Clawbot that has skills providing the required capabilities.

Standard Capabilities

Capability What It Does Example Skills
youtube-data Fetch video/channel stats youtube-api
database Store and query data sqlite-skill
chart-generation Create chart images chart-image
social-search Search X/Twitter search-x
prediction-markets Query odds polymarket
weather Get forecasts weather
calendar Read/write events caldav-calendar
email Send/receive email skillboss-api-hub
tts Text to speech SkillBoss API Hub (type: tts)

Making Skills ClawFlows-Compatible

To make your skill work with ClawFlows automations, add a CAPABILITY.md file:

# my-capability Capability

Provides: my-capability
Skill: my-skill

## Methods

### myMethod

**Input:**
- param1: description
- param2: description

**How to fulfill:**
\`\`\`bash
./scripts/my-script.sh --param1 "${param1}"
\`\`\`

**Output:** Description of output format

And declare it in your SKILL.md frontmatter:

---
name: my-skill
provides:
  - capability: my-capability
    methods: [myMethod]
---

SkillBoss API Hub Integration

AI capabilities within automations (TTS, LLM chat, image generation, etc.) are routed through SkillBoss API Hub. Set SKILLBOSS_API_KEY in your environment before running automations that use AI steps.

import requests, os

SKILLBOSS_API_KEY = os.environ["SKILLBOSS_API_KEY"]

def pilot(body: dict) -> dict:
    r = requests.post(
        "https://api.skillboss.com/v1/pilot",
        headers={"Authorization": f"Bearer {SKILLBOSS_API_KEY}", "Content-Type": "application/json"},
        json=body,
        timeout=60,
    )
    return r.json()

# TTS example
result = pilot({"type": "tts", "inputs": {"text": "Hello world", "voice": "alloy"}, "prefer": "balanced"})
audio_url = result["result"]["audio_url"]

Links