🚀 安装使用
3 分钟上手快脚本 —— 从下载安装到运行你的第一个脚本。
下载安装
下载安装包
在 首页 下载 Windows 安装包(.msi),双击安装即可。
启动快脚本
安装后双击桌面图标启动。首次启动会自动配置 Python 环境。
添加脚本
从脚本广场安装,或将 .zip 脚本包拖入窗口导入。
| 系统要求 | 最低配置 |
|---|---|
| 操作系统 | Windows 10 (64位) 或更高 |
| Python | 无需预装(自动管理) |
| 内存 | ≥ 2 GB |
| 网络 | 首次安装依赖时需要联网 |
导入脚本
从脚本广场安装
在客户端内浏览脚本广场,一键安装并运行。
拖拽导入
将 .zip 脚本包直接拖入快脚本窗口,自动识别和导入。
AI 生成
使用快脚本内置 AI 对话功能,用自然语言描述需求,自动生成脚本。
运行脚本
- 在侧边栏选择要运行的脚本
- 填写参数表单(由快格式自动生成 GUI)
- 点击「运行脚本」按钮
- 在下方控制台查看运行日志和结果
🏗️ 架构说明
了解快脚本的脚本类型、文件结构和运行时环境。
脚本类型
| 类型 | 文件组成 | 适用场景 |
|---|---|---|
| 纯后端脚本 | main.py | 数据处理、文件操作、批量任务 |
| HTTP 服务脚本 | main.py + index.html | 需要 Web 界面的交互应用 |
# 纯后端脚本
my-script/
├── main.py # 主脚本(必须)
├── readme.md # 使用说明(推荐)
└── data.csv # 附带的数据文件(可选)
# HTTP 服务脚本
my-web-app/
├── main.py # 后端逻辑(必须)
├── index.html # 前端页面(必须)
└── readme.md # 使用说明(推荐) 运行时环境
快脚本为每个脚本提供隔离的运行时环境:
| 环境变量 | 含义 | 用途 |
|---|---|---|
KUAI_SCRIPT_DIR | 脚本目录 | 读取脚本附带的资源文件 |
KUAI_RUN_DIR | 运行目录 | 写入临时文件、日志、输出结果 |
文件读写规范
import os, json
# ✅ 读取脚本附带的文件(CWD = 脚本目录)
with open('data.csv', encoding='utf-8') as f:
data = f.read()
# ✅ 将输出写到运行目录
run_dir = os.environ['KUAI_RUN_DIR']
with open(os.path.join(run_dir, 'result.json'), 'w', encoding='utf-8') as f:
json.dump(result, f, ensure_ascii=False)
# ❌ 不要假设系统编码(Windows 可能是 GBK)
# ❌ 不要使用 Flask/FastAPI(用内置 SDK)
# ❌ 不要将 HTML 内嵌到 Python 字符串中 💡 快格式规范
快格式(kuai format)是快脚本的核心设计 —— 通过 Python 类定义,让脚本「自我描述」,客户端自动生成参数配置界面。
脚本结构总览
一个标准快脚本包含以下部分:
- 导入 SDK —
from kuai import * - Script 子类 — 定义脚本名称、图标、描述、依赖等元信息
- Params 子类 — 使用控件函数定义参数和表单控件
- main 函数 — 业务逻辑入口
- 入口点 —
kuai.run(main)
脚本元信息
通过继承 Script 类声明脚本信息:
from kuai import *
class MyScript(Script):
name = "图片批量压缩"
icon = "🖼️"
description = "批量压缩指定目录下的所有图片"
packages = ["Pillow", "requests"]
os = ["Windows", "macOS"]
python_version = ["3.11.0"]
run_as_admin = True
input_description = "包含图片的目录"
output_description = "压缩后的图片" | 字段 | 必须 | 说明 |
|---|---|---|
name | ✅ | 脚本名称 |
description | ✅ | 功能描述 |
icon | ✅ | 单个 emoji(如 🔐📊🌐) |
packages | 按需 | 第三方依赖列表(pip 包名) |
os | 推荐 | 支持的操作系统("Windows"、"macOS"、"Linux") |
python_version | 推荐 | 兼容的 Python 版本列表(如 "3.11.0") |
run_as_admin | 按需 | 是否需要管理员权限运行(默认 False) |
input_description | 推荐 | 输入说明 |
output_description | 推荐 | 输出说明 |
Params 参数定义
继承 Params 类,使用控件函数定义每个参数。客户端自动生成对应的图形界面控件:
class MyParams(Params):
input_dir = SingleDirectoryPicker(
label="输入目录",
description="选择包含图片的文件夹。",
)
quality = Slider(
label="压缩质量",
default=80,
min=1,
max=100,
unit="%",
description="图片压缩质量,数值越高质量越好。",
)
output_format = Radio(
label="输出格式",
default="JPEG",
options=["JPEG", "PNG", "WebP"],
description="选择输出格式。",
) 条件联动 (visible_if)
参数可以根据其他参数的值动态显示/隐藏。使用 J() 函数构建条件:
class MyParams(Params):
mode = Radio(
label="模式",
options=["压缩", "裁剪"],
)
# 仅当 mode == "压缩" 时显示
quality = Slider(
label="压缩质量",
default=80, min=1, max=100,
visible_if=J("mode") == "压缩",
)
# 支持 AND / OR 组合
advanced = ToggleSwitch(label="高级选项")
threads = IntInput(
label="线程数",
default=4,
visible_if=(J("mode") == "压缩") & (J("advanced") == True),
) | 操作 | 语法 | 说明 |
|---|---|---|
| 等于 | J("field") == "value" | 字段等于某值时显示 |
| 不等于 | J("field") != "value" | 字段不等于某值时显示 |
| AND | 条件A & 条件B | 所有条件都满足时显示 |
| OR | 条件A | 条件B | 任一条件满足时显示 |
主函数与入口
在 main() 中编写业务逻辑,通过全局 params 实例访问用户填写的参数:
params = MyParams()
def main():
print(f"输入目录: {params.input_dir}")
print(f"压缩质量: {params.quality}")
print(f"输出格式: {params.output_format}")
# 你的业务逻辑...
print("✅ 处理完成!")
if __name__ == "__main__":
kuai.run(main) 🎛️ 控件类型完整参考
快格式支持 16 种控件类型,覆盖选择、输入、文件、日期等常见交互。每个参数使用对应的控件函数声明。
| 控件 | 函数名 | 值类型 | 额外属性 |
|---|---|---|---|
| 单选 | Radio | str | options |
| 下拉选 | Dropdown | str | options |
| 多选 | Checkbox | [str] | options, min_select, max_select |
| 开关 | ToggleSwitch | bool | — |
| 整数 | IntInput | int | min, max, unit |
| 浮点 | FloatInput | float | min, max, precision, unit |
| 滑块 | Slider | int/float | min, max, precision, divisions, unit |
| 单行文本 | SingleLineTextInput | str | max_length, min_length, validation, validation_message |
| 多行文本 | MultiLineTextInput | str | max_length, min_length |
| 密码 | PasswordInput | str | validation, validation_message |
| 邮箱 | EmailInput | str | validation, validation_message |
| 单文件 | SingleFilePicker | str | file_types |
| 多文件 | MultiFilePicker | [str] | file_types, min_files, max_files |
| 单目录 | SingleDirectoryPicker | str | — |
| 多目录 | MultiDirectoryPicker | [str] | min_folders, max_folders |
| 日期 | DatePicker | str | format, min, max |
| 时间 | TimePicker | str | format, min, max |
| 日期时间 | DateTimePicker | str | format, min, max |
| 颜色 | ColorPicker | str | — |
选择类控件
output_format = Radio(
label="输出格式",
default="JPEG",
options=["JPEG", "PNG", "WebP"],
description="选择输出图片格式。",
)
language = Dropdown(
label="语言",
default="中文",
options=["中文", "English", "日本語"],
)
features = Checkbox(
label="功能选择",
default=["压缩"],
options=["压缩", "裁剪", "水印", "格式转换"],
min_select=1,
max_select=3,
) 开关控件
overwrite = ToggleSwitch(
label="覆盖原文件",
default=False,
description="是否覆盖原文件,关闭则输出到新目录。",
) 数值类控件
threads = IntInput(
label="线程数",
default=4,
min=1,
max=16,
unit="个",
description="并发线程数量。",
)
threshold = FloatInput(
label="匹配阈值",
default=0.85,
min=0.0,
max=1.0,
precision=2,
)
quality = Slider(
label="压缩质量",
default=80,
min=1,
max=100,
unit="%",
precision=0,
description="图片压缩质量,数值越高质量越好。",
) 文本类控件
keyword = SingleLineTextInput(
label="搜索关键词",
default="",
max_length=100,
description="输入搜索关键词。",
)
prompt = MultiLineTextInput(
label="提示内容",
default="",
max_length=2000,
)
api_key = PasswordInput(
label="API 密钥",
validation="^[A-Za-z0-9]{32,}$",
validation_message="密钥至少32个字符",
)
email = EmailInput(
label="邮箱地址",
description="用于接收通知。",
) 文件/目录控件
source = SingleFilePicker(
label="源文件",
file_types=["jpg", "png", "webp"],
description="选择要处理的图片。",
)
excel_files = MultiFilePicker(
label="Excel 文件",
file_types=["xlsx", "csv"],
min_files=1,
max_files=10,
)
output_dir = SingleDirectoryPicker(
label="输出目录",
description="选择输出文件保存位置。",
) 日期/时间/颜色控件
start_date = DatePicker(
label="开始日期",
default="2024-01-01",
format="yyyy-MM-dd",
)
schedule_time = TimePicker(
label="提醒时间",
default="09:00",
format="HH:mm",
)
watermark_color = ColorPicker(
label="水印颜色",
default="#FF0000",
) 🌐 HTTP 服务脚本
当脚本需要提供 Web 界面时,使用内置 SDK 的 HTTP 服务模式。
完整模板
from kuai import *
class WebApp(Script):
name = "Web 应用示例"
icon = "🌐"
description = "带网页界面的示例脚本"
class MyParams(HttpParams):
# HttpParams 自动包含 server_port 和 auto_open_browser
# 只需定义你的自定义参数
theme = Radio(
label="主题",
default="深色",
options=["深色", "浅色"],
)
params = MyParams()
class Handler(kuai.KuaiHandler):
def do_GET(self):
if self.path == '/':
self.serve_index()
elif self.path == '/api/data':
self.json_response({"message": "Hello"})
else:
self.send_error(404)
def do_POST(self):
if self.path == '/api/submit':
body = self.read_json()
self.json_response({"received": body})
else:
self.send_error(404)
if __name__ == "__main__":
kuai.run(lambda: kuai.serve(params, Handler)) 前端页面
<kuai-moniter/> <!-- 必须:放在最前面 -->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Web 应用示例</title>
</head>
<body>
<h1>Hello KuaiScript</h1>
<div id="result"></div>
<script>
fetch('/api/data')
.then(r => r.json())
.then(data => {
document.getElementById('result')
.textContent = data.message;
});
</script>
</body>
</html> HttpParams 内置字段
继承 HttpParams 会自动包含以下两个字段,无需手动定义:
| 字段名 | 控件类型 | 默认值 | 说明 |
|---|---|---|---|
server_port | IntInput(12000~65535) | 12345 | HTTP 服务端口 |
auto_open_browser | ToggleSwitch | True | 启动后自动打开浏览器 |
HTTP 服务规范
- 必须使用 SDK —
kuai.KuaiHandler+kuai.serve(),禁止 Flask/FastAPI - 继承 HttpParams — 端口和浏览器参数自动包含
- index.html 标记 — 最前面添加
<kuai-moniter/> - HTML 独立文件 — 前端代码放
index.html,禁止内嵌到 Python 字符串中
📦 SDK 参考
from kuai import * 提供脚本定义基类和所有控件函数。import kuai 提供运行时 API。
基类
| 类 | 说明 |
|---|---|
Script | 脚本信息基类,定义 name、icon、description、packages 等 |
Params | 纯后端脚本参数基类 |
HttpParams | HTTP 服务参数基类,自动包含 server_port、auto_open_browser |
运行时 API
| 方法 | 说明 | 适用类型 |
|---|---|---|
kuai.run(main) | 加载参数并执行 main 函数(统一入口) | 所有脚本 |
kuai.serve(params, Handler) | 启动 HTTP 服务 | HTTP 服务脚本 |
kuai.KuaiHandler | HTTP 请求处理基类 | HTTP 服务脚本 |
KuaiHandler 方法
| 方法 | 说明 |
|---|---|
self.serve_index() | 返回 KUAI_SCRIPT_DIR/index.html 文件 |
self.json_response(data) | 返回 JSON 响应(自动设置 Content-Type) |
self.read_json() | 读取 POST 请求体的 JSON 数据 |
条件联动函数
| 函数 | 说明 |
|---|---|
J("field_name") | 引用其他参数的值,配合 ==、!=、&、| 使用 |
- 文件读写时记得指定
encoding='utf-8',避免中文乱码 - HTTP 服务必须使用内置 SDK,不需要安装其他 Web 框架
- 不确定怎么写?让 AI 助手帮你生成,它已经熟悉快格式规范
❓ 常见问题
快脚本免费吗?
是的,快脚本完全免费。不需要注册,不需要付费,所有功能均可免费使用。
需要懂编程才能用吗?
不需要。你可以直接从脚本广场安装别人写好的脚本来使用。如果你想自己写脚本,需要基础的 Python 知识。也可以用快脚本内置 AI 来生成脚本。
可以用 AI 来帮我写快脚本吗?
最简单的方式是使用快脚本内置的 AI 对话功能,它已预置快格式规范。也可以将 格式规范 作为上下文提供给任何 AI 助手。
脚本运行出错怎么办?
查看下方控制台的错误信息。常见问题包括:依赖未安装(点击「安装依赖」按钮)、文件路径不存在、编码错误(确保使用 UTF-8)。
脚本的数据和文件保存在哪里?
脚本运行产生的日志和临时文件保存在运行目录中。你可以在脚本详情页查看运行记录和输出文件。
快脚本可以用来对外提供服务吗?
不建议。快脚本专为个人本地使用而设计,用于运行你自己的自动化工具。请勿将脚本或 HTTP 服务部署到公网。请在安全可信的环境中使用,只运行你了解或信任来源的脚本。