Awesome Claude Skills - 让Claude连接千款应用的实用技能库

0 阅读8分钟

Awesome Claude Skills

Awesome PRs Welcome License: Apache-2.0

项目简介

Awesome Claude Skills 是一个精心策划的实用Claude技能集合,旨在为Claude.ai、Claude Code和Claude API用户提供增强生产力的解决方案。这个项目不仅包含了丰富的技能库,还通过connect-apps插件让Claude能够连接到1000多个应用程序并执行真实操作——发送邮件、创建工单、发布到Slack等,真正将AI从文本生成器升级为强大的自动化助手。

核心价值:让Claude不仅会对话,更能行动。

功能特性

  • 多平台兼容:技能适用于Claude.ai、Claude Code和Claude API,确保无缝体验
  • 真实世界操作:通过Composio平台连接1000+应用,执行实际任务而非仅生成文本
  • 模块化技能设计:每个技能解决特定问题,包含清晰的使用说明和示例
  • 自动化工作流:支持复杂的多步骤自动化,从数据提取到结果输出
  • 视觉与创意工具:包含canvas-design、artifacts-builder等创意技能,可生成精美视觉作品和HTML组件

核心技能概览

自动化类技能

项目包含大量自动化技能,通过Rube MCP连接各类应用:

技能名称功能描述
Apollo Automation自动化销售勘探,搜索企业、发现联系人、管理销售管道
Ashby Automation自动化招聘流程,管理候选人、职位、面试和申请
Attio Automation自动化CRM操作,模糊搜索联系人、查询记录、管理笔记
Ahrefs Automation自动化SEO研究,分析反向链接、关键词、域名指标
Apify Automation自动化网络爬虫,运行Actor、管理数据集、获取结构化数据

创意与设计类技能

  • artifacts-builder:创建复杂的多组件HTML组件,支持React、TypeScript、Tailwind CSS和shadcn/ui,包含完整的初始化和打包脚本
  • brand-guidelines:应用Anthropic官方品牌色彩和字体(主色:Dark #141413,Light #faf9f5,强调色:橙#d97757、蓝#6a9bcc、绿#788c5d)
  • canvas-design:基于设计哲学创建视觉艺术作品,输出PNG和PDF格式

生产力类技能

  • changelog-generator:从Git提交记录自动生成用户友好的更新日志,将技术提交转化为客户语言
  • competitive-ads-extractor:从广告库(Facebook、LinkedIn等)提取竞争对手广告,分析有效文案和创意模式
  • 文档处理:包含api2pdf、bannerbear、basin等自动化工具

安装指南

系统要求

  • Node.js 18 或更高版本
  • pnpm 包管理器
  • Git(用于克隆仓库)

安装步骤

  1. 克隆仓库
git clone https://github.com/composio/awesome-claude-skills.git
cd awesome-claude-skills
  1. 安装Rube MCP(用于自动化技能)

Rube MCP是连接Claude与外部应用的桥梁。在Claude Code配置中添加以下MCP服务器:

https://rube.app/mcp

无需API密钥,只需添加端点即可工作。

  1. 安装特定技能依赖

对于需要前端构建的技能(如artifacts-builder),需要安装额外依赖:

# 安装pnpm(如未安装)
npm install -g pnpm

# 初始化项目
bash scripts/init-artifact.sh <project-name>
cd <project-name>
pnpm install
  1. 连接应用账号

使用Rube MCP的技能时,需要通过RUBE_MANAGE_CONNECTIONS连接相应的应用账号:

RUBE_MANAGE_CONNECTIONS
toolkits: ["apollo", "attio", "ahrefs"]  # 根据需要的应用填写

使用说明

基础使用

技能启用:在Claude对话中直接描述你的需求,Claude会自动匹配相关技能:

创建一个过去一周的更新日志,从git提交中生成用户友好的版本说明

手动调用技能:如果技能未自动激活,可以明确提及技能名称:

使用competitive-ads-extractor技能,提取Notion在Facebook广告库中的所有广告

典型使用场景

场景一:生成版本更新日志
创建从v2.4.0到当前版本的更新日志,按照功能、改进、修复分类

输出示例:

# 更新 - 2024年3月10日

## ✨ 新功能
- **团队工作区**:为不同项目创建独立工作区,邀请团队成员协作

## 🔧 改进
- **更快的同步**:文件同步速度提升2倍

## 🐛 修复
- 修复大图片无法上传的问题
场景二:构建复杂HTML组件
# 1. 初始化React项目
bash scripts/init-artifact.sh my-dashboard

# 2. 开发组件
cd my-dashboard
# 编辑src/App.tsx,添加你的组件代码

# 3. 打包为单文件HTML
bash scripts/bundle-artifact.sh
# 输出:bundle.html
场景三:自动化销售勘探
在Apollo中搜索德克萨斯州50-500人的SaaS公司

Claude会自动调用Apollo技能,执行APOLLO_ORGANIZATION_SEARCH工具并返回结果。

场景四:竞争对手广告分析
提取Notion在Facebook广告库中的所有广告,分析它们的消息定位和痛点

输出将包含:

  • 广告截图
  • 主要消息主题
  • 使用场景分析
  • 有效文案模式识别

Rube MCP核心工作流

对于所有自动化技能,遵循统一的工作流模式:

# 1. 发现可用工具
RUBE_SEARCH_TOOLS
queries: [{use_case: "你的具体任务"}]
session: {generate_id: true}

# 2. 检查连接状态
RUBE_MANAGE_CONNECTIONS
toolkits: ["应用名称"]
session_id: "会话ID"

# 3. 执行工具
RUBE_MULTI_EXECUTE_TOOL
tools: [{
  tool_slug: "发现到的工具slug",
  arguments: {"参数名": "参数值"}
}]
memory: {}
session_id: "会话ID"

重要准则

  • 始终先调用RUBE_SEARCH_TOOLS获取最新的工具模式
  • 验证连接状态为ACTIVE后再执行操作
  • 使用发现的工具slug和参数模式,不要硬编码
  • 复用会话ID以保持上下文

核心代码示例

1. Artifacts Builder 初始化脚本 (init-artifact.sh)

这个Bash脚本用于创建React + TypeScript + Tailwind + shadcn/ui项目环境,支持Node版本检测和自动适配。

#!/bin/bash

# 退出时返回错误
set -e

# 检测Node版本
NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)

echo "🔍 检测到Node.js版本: $NODE_VERSION"

if [ "$NODE_VERSION" -lt 18 ]; then
  echo "❌ 错误: 需要Node.js 18或更高版本"
  exit 1
fi

# 根据Node版本设置Vite版本
if [ "$NODE_VERSION" -ge 20 ]; then
  VITE_VERSION="latest"
else
  VITE_VERSION="5.4.11"
  echo "✅ 使用Vite $VITE_VERSION (Node 18兼容)"
fi

# 检查pnpm
if ! command -v pnpm &> /dev/null; then
  echo "📦 未找到pnpm,正在安装..."
  npm install -g pnpm
fi

# 创建项目
echo "🚀 创建React + Vite项目: $1"
pnpm create vite "$1" --template react-ts
cd "$1"
pnpm install

# 固定Vite版本(Node 18兼容)
if [ "$NODE_VERSION" -lt 20 ]; then
  pnpm add -D vite@$VITE_VERSION
fi

# 安装Tailwind CSS和shadcn/ui
pnpm add -D tailwindcss postcss autoprefixer
npx tailwindcss init -p

# 配置tailwind.config.js
cat > tailwind.config.js << 'EOF'
/** @type {import('tailwindcss').Config} */
module.exports = {
  darkMode: ["class"],
  content: ["./index.html", "./src/**/*.{ts,tsx,js,jsx}"],
  theme: { extend: {} },
  plugins: [],
}
EOF

# 安装shadcn/ui组件
pnpm add -D @types/node
npx shadcn-ui@latest init -d
npx shadcn-ui@latest add button card dialog input

echo "✅ 项目初始化完成!"

2. Artifacts Builder 打包脚本 (bundle-artifact.sh)

将React应用打包为单文件HTML,便于在Claude对话中作为工件使用。

#!/bin/bash
set -e

echo "📦 打包React应用到单个HTML工件..."

# 检查package.json
if [ ! -f "package.json" ]; then
  echo "❌ 错误: 未找到package.json。请从项目根目录运行此脚本。"
  exit 1
fi

# 检查index.html
if [ ! -f "index.html" ]; then
  echo "❌ 错误: 项目根目录未找到index.html。"
  exit 1
fi

# 安装打包依赖
echo "📦 安装打包依赖..."
pnpm add -D parcel @parcel/config-default parcel-resolver-tspaths html-inline

# 创建Parcel配置
if [ ! -f ".parcelrc" ]; then
  echo "🔧 创建Parcel配置,支持路径别名..."
  cat > .parcelrc << 'EOF'
{
  "extends": "@parcel/config-default",
  "resolvers": ["parcel-resolver-tspaths", "..."]
}
EOF
fi

# 清理之前的构建
echo "🧹 清理之前的构建..."
rm -rf dist bundle.html

# 使用Parcel构建
echo "🔨 使用Parcel构建..."
pnpm exec parcel build index.html --dist-dir dist --no-source-maps

# 内联所有资源到单个HTML
echo "🎯 内联所有资源到单个HTML文件..."
pnpm exec html-inline dist/index.html > bundle.html

FILE_SIZE=$(du -h bundle.html | cut -f1)

echo ""
echo "✅ 打包完成!"
echo "📄 输出文件: bundle.html ($FILE_SIZE)"
echo ""
echo "现在可以在Claude对话中使用此HTML文件作为工件。"

3. Rube MCP自动化工作流示例

Apollo Automation为例,展示完整的自动化工作流:

# 步骤1: 发现Apollo工具
RUBE_SEARCH_TOOLS
queries: [
  {
    use_case: "搜索企业组织和联系人",
    known_fields: "q_organization_name, organization_locations, person_titles"
  }
]
session: {generate_id: true}

# 返回示例工具列表:
# - APOLLO_ORGANIZATION_SEARCH: 根据名称、地点、员工数搜索企业
# - APOLLO_PEOPLE_SEARCH: 根据职位、公司搜索联系人
# - APOLLO_ENRICH_PERSON: 通过邮箱或LinkedIn丰富联系人数据

# 步骤2: 连接Apollo账号
RUBE_MANAGE_CONNECTIONS
toolkits: ["apollo"]
session_id: "session_abc123"

# 响应:连接状态 ACTIVE

# 步骤3: 搜索企业
RUBE_MULTI_EXECUTE_TOOL
tools: [{
  tool_slug: "APOLLO_ORGANIZATION_SEARCH",
  arguments: {
    q_organization_name: "SaaS company",
    organization_locations: ["texas"],
    organization_num_employees_ranges: ["50,500"],
    per_page: 20
  }
}]
memory: {}
session_id: "session_abc123"

# 步骤4: 对搜索到的企业,查找联系人
RUBE_MULTI_EXECUTE_TOOL
tools: [{
  tool_slug: "APOLLO_PEOPLE_SEARCH",
  arguments: {
    q_organization_domains: ["example.com", "sample.io"],
    person_titles: ["VP of Sales", "Sales Director"]
  }
}]
memory: {}
session_id: "session_abc123"

4. Changelog Generator 核心逻辑

def generate_changelog(commits, style_guide):
    """
    从Git提交生成用户友好的更新日志
    
    Args:
        commits: Git提交列表
        style_guide: 格式指南(可选)
    
    Returns:
        Markdown格式的更新日志
    """
    categories = {
        "features": ["feat", "feature", "new"],
        "improvements": ["improve", "refactor", "perf", "enhance"],
        "fixes": ["fix", "bug", "hotfix"],
        "breaking": ["breaking", "major"],
        "security": ["security", "vulnerability"]
    }
    
    changelog = {
        "features": [],
        "improvements": [],
        "fixes": [],
        "breaking": [],
        "security": []
    }
    
    for commit in commits:
        # 过滤内部提交
        if any(word in commit.message.lower() for word in ["test", "chore", "docs"]):
            continue
        
        # 分类
        for category, keywords in categories.items():
            if any(keyword in commit.message.lower() for keyword in keywords):
                # 转换为用户友好语言
                user_message = translate_to_user_friendly(commit.message)
                changelog[category].append(user_message)
                break
    
    # 生成Markdown
    markdown = []
    for category, items in changelog.items():
        if items:
            markdown.append(f"## {category.title()}\n")
            for item in items:
                markdown.append(f"- {item}\n")
            markdown.append("\n")
    
    return "\n".join(markdown)

def translate_to_user_friendly(commit_message):
    """
    将技术提交消息转换为用户友好语言

    """
    # 移除常见前缀
    message = commit_message.split(":", 1)[-1].strip()
    
    # 简化表述
    replacements = {

        "improve performance of": "优化",
        "add support for": "新增",
        "implement": "实现"
    }
    
    for tech, user in replacements.items():
        if tech in message.lower():
            message = message.lower().replace(tech, user)
    
    return message.capitalize()

项目优势

  1. 实用性优先:所有技能基于真实用例,解决实际问题而非理论应用
  2. 平台集成:深度集成Composio平台,连接1000+应用生态
  3. 文档完善:每个技能包含详细的使用说明、示例和最佳实践
  4. 社区驱动:欢迎PR贡献,鼓励共享实用工作流
  5. 开箱即用:提供完整的脚本和配置文件,快速上手

Composio 提供技术支持 7HECMmqrgMFQ9BCTiZ/HoFlQ+MkfncilATvJ4s0TwCPyYrSw1/Qo0jAAS5GHRIQb