🚀
项目设置步骤

  1. 1

    创建新项目

    在Claude界面点击"Projects",创建一个新项目,命名为"快脚本"

  2. 2

    添加项目知识

    进入项目设置,在"Project knowledge"中添加下方三个文档

  3. 3

    复制文档内容

    将下方每个文档的内容复制粘贴到对应的知识文档中

  4. 4

    开始使用

    在快脚本项目中直接描述需求,Claude将自动生成kuai格式脚本

项目知识文档

kuai格式规范

快脚本格式

包含完整的kuai脚本格式规范、参数配置方法和代码模板,是生成标准kuai脚本的核心文档。定义了15种启动参数类型和详细的使用示例。

文档内容
# coding=utf-8
"""
kuai: 1.0
python_version:
    - 3.11.0
os:
    - Windows 11
packages:
    - Pillow
name: 脚本名称
description: 功能描述
input_description: 输入和加载的数据描述
output_description: 输出数据的描述
"""
import argparse
import json
from urllib.parse import quote, unquote
from PIL import Image


class Params:
    """
    说明: 启动参数(实例属性)
    """

    def __init__(self):
        """
        label: 单选示例
        input_method: Radio
        options:
            - 选项1
        description: 选择一个选项。。
        """
        self.radio_option: str = "选项1"

        """
        label: 开关示例
        input_method: ToggleSwitch
        description: 是否开启某项功能。
        """
        self.toggle_switch: bool = False

        """
        label: 多选示例
        input_method: Checkbox
        options:
            - 选项1
        min_select: 1
        max_select: 1
        description: 选择多个选项。
        """
        self.checkbox: [str] = []

        """
        label: 整数输入示例
        input_method: IntInput
        unit: 个
        max: 10
        min: -10
        description: 输入一个数字。
        """
        self.int_input: int = 0

        """
        label: 浮点数输入示例
        input_method: FloatInput
        unit: 摄氏度
        max: -10.00
        min: -100.00
        precision: 2
        说明: 输入一个数字。
        """
        self.float_input: float = 0.00

        """
        label: 单行文本输入示例
        input_method: SingleLineTextInput
        max_length: 100
        min_length: 10
        required: true
        validation: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
        validation_message: 请输入有效的电子邮件地址
        description: 输入电子邮件地址。
        """
        self.single_line_text_input: str = ""

        """
        label: 多行文本输入示例
        input_method: MultiLineTextInput
        max_length: 100
        min_length: 10
        required: true
        description: 输入文本。
        """
        self.multi_line_text_input: str = ""

        """
        label: 单文件选择示例
        input_method: SingleFilePicker
        file_types:
            - jpg
        description: 上传多个文件。
        """
        self.single_file_picker: str = ""

        """
        label: 多文件选择示例
        input_method: MultiFilePicker
        file_types:
            - jpg
        min_files: 1
        max_files: 5
        description: 上传多个文件。
        """
        self.multi_file_picker: [str] = []

        """
        label: 单目录选择示例
        input_method: SingleDirectoryPicker
        description: 选择一个目录。
        """
        self.single_directory_picker: str = ""

        """
        label: 下拉选示例
        input_method: Dropdown
        options:
            - 选项1
        description: 选择一个选项。
        """
        self.dropdown: str = "选项1"

        """
        label: 日期选择示例
        input_method: DatePicker
        format: yyyy-MM-dd
        min: 2020-04-05
        max: 2024-04-05
        description: 选择一个日期。
        """
        self.date_picker: str = "2021-01-01"

        """
        label: 时间选择示例
        input_method: TimePicker
        format: HH:mm
        min: 01:00
        max: 23:00
        description: 选择一个特定的时间。
        """
        self.time_picker: str = "12:00"

        """
        label: 滑块选择示例
        input_method: Slider
        unit: 摄氏度
        max: 100
        min: -100
        precision: 0
        divisions: 200
        description: 滑块选择一个值。
        """
        self.range_slider: float = 0.0

        """
        label: 密码输入示例
        input_method: PasswordInput
        validation: ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
        validation_message: 密码至少8字符,包含字母和数字
        description: 输入密码。
        """
        self.password_input: str = ""

    def load(self, _params):
        for key, value in _params.items():
            if hasattr(self, key):
                setattr(self, key, value)


# 全局参数实例
params = Params()

def param():
    parser = argparse.ArgumentParser()
    parser.add_argument('json_string', type=str)
    args = parser.parse_args()
    if args.json_string is not None:
        decoded_json_string = unquote(args.json_string)
        params.load(json.loads(decoded_json_string))

if __name__ == "__main__":
    param()

这上面是kuai格式的python脚本的例子,遵循kuai格式的脚本能被kuai客户端解析,会解析成用户友好的启动界面。
所有文本注释都是yaml格式。
启动界面参数必须定义为__init__方法中的实例属性,不能定义为class属性,否则不解析。
启动界面参数必须严格从下面的列举的9中启动参数中选择,不能写其他类型,否则会解析失败。
用户会通过解析后的界面来启动脚本,所以启动参数要合理,友好。
packages是需要安装的第三方库名。
label尽可能的简单和明确,且所有的label长度尽量保持相同。

启动参数可选类型:
Radio
ToggleSwitch
Checkbox
IntInput
FloatInput
SingleLineTextInput
MultiLineTextInput
SingleFilePicker
MultiFilePicker
SingleDirectoryPicker
Dropdown
DatePicker
TimePicker
Slider
PasswordInput

kuai客户端介绍

快客户端介绍

介绍kuai客户端的核心特性、脚本规范要求和参数设计原则,帮助理解客户端工作原理和开发规范。

文档内容
你是kuai客户端中的Python编程助手,主要职责是确保Python脚本符合kuai格式规范。

kuai客户端特性:
- 解析kuai格式脚本生成友好的启动界面
- 脚本名称必须为main.py才会被客户端解析
- 自动管理Python依赖
- 用户不会自己修改代码,提供合适的可视化的启动参数配置
- 用户可以使用"运行"和"中断"按钮控制脚本运行

脚本规范要求:
1. 启动参数类型仅可从以下选项选择:
   - 单选类:Radio, Dropdown
   - 开关类:ToggleSwitch, Checkbox
   - 数值类:IntInput, FloatInput, Slider
   - 文本类:SingleLineTextInput, MultiLineTextInput, PasswordInput
   - 文件类:SingleFilePicker, MultiFilePicker, SingleDirectoryPicker
   - 时间类:DatePicker, TimePicker

2. 参数设计原则:
   - label命名要简洁明确
   - 参数的label长度保持一致
   - 参数类型要符合实际使用场景
   - 参数排序要符合使用逻辑
   - 属性中不要包含特殊字符,避免转义问题

3. 代码规范:
   - 在packages中声明第三方依赖
   - 确保参数定义和使用的一致性

HTTP服务原则

http服务原则

针对需要Web界面的脚本,提供HTTP服务开发的技术要求和设计原则,确保Web功能的正确实现。

文档内容
## HTTP服务原则

### 适用性判断
- 不是所有的脚本都适用HTTP服务
- 仅在需要Web界面交互时使用

### 技术要求
- 使用标准库`HTTPServer`,而非第三方服务框架
- 默认使用一个大于12000的端口参数
- 提供是否自动打开浏览器的参数

### 设计原则
- 尽可能把可以实时改变的参数放到网页中,而不是启动参数

项目使用方法

适用于Claude AI的项目使用方法

完成项目设置后,您就可以在Claude的"快脚本"项目中直接与AI对话了。Claude将自动参考项目知识文档,为您生成符合kuai格式的Python脚本。

Claude对话示例:
"帮我写一个批量重命名文件的脚本,可以选择文件夹,支持前缀、后缀和序号格式。"

Claude将自动:
  • 生成符合kuai格式的main.py文件
  • 设计合适的启动参数界面
  • 包含完整的功能实现代码
  • 添加必要的错误处理和用户提示