不忙脚本盒子开源:Windows 多语言脚本图形化运行
开源了一个 Windows 脚本管理器「不忙脚本盒子」:自动配环境,让多语言脚本图形化运行 - 不忙-熊猫
作者开源了 Windows 脚本管理器「不忙脚本盒子」,支持 Python、Node.js、PowerShell、BAT/CMD、AutoHotkey、HTML 和 EXE,内置约 100 个脚本。
开源了一个 Windows 脚本管理器「不忙脚本盒子」:自动配环境,让多语言脚本图形化运行
开源 · 免费 · 无功能限制 · 无需登录 | 仅 Windows 10 / 11
让普通用户可以无痛用上脚本
这句话是我做「不忙脚本盒子」的出发点。本文面向开发者,讲清它是什么、机制怎么设计、以及现有脚本如何零侵入接进来。
目录
- 1. 背景:脚本分发的最后一公里
- 2. 定位:脚本驱动的效率工具箱
- 3. 机制一:声明式接入
- 4. 机制二:运行时与依赖自动部署
- 5. 机制三:参数声明驱动界面生成
- 6. 用户侧能力
- 7. 生态开放、许可与边界
- 8. 常见问题
1. 背景:脚本分发的最后一公里
写脚本和使用脚本是两件事。前者是开发问题,后者是分发问题。现实的断点在于:
- 运行环境(Python/Node、依赖、ffmpeg 等外部二进制)需要用户自己准备;
- 交互只有命令行;
- 分发靠文件系统或 GitHub,没有统一的检索、安装、更新链路。
结果就是:会写脚本的人不需要工具,真正需要的人被挡在门外。能写出脚本,不等于用户能用上脚本。
2. 定位:脚本驱动的效率工具箱
不忙脚本盒子把「环境 + 命令行 + 参数输入」从用户侧移走,把一份脚本变成可点击的工具。它的内核完全由脚本驱动,支持 Python、Node.js、PowerShell、BAT/CMD、AutoHotkey、HTML,甚至编译好的 EXE。
与「统一插件 API」路线相比,脚本驱动路线的差别在于:扩展能力复用现有生态,不需要把已有脚本按平台 API 重写。目前脚本库内置 大约100个脚本,持续扩充。

3. 机制一:声明式接入
接入不改脚本本体,只补一份声明文件 bm-scripts-box-rc.toml,描述运行环境与入参。示意(字段以官方文档为准,完整规范见 https://www.bm-box.cn/help/api ):
# bm-scripts-box-rc.toml
[bmscriptsbox]
[bmscriptsbox.info] ## 脚本基本信息
id = "3aeabd2d-9ee9-4eaf-9cb3-24aa7f5668b9"
name = "脚本名称"
desc = "脚本描述"
version = "1.1.0"
icon = "./imgs/img.png"
[bmscriptsbox.runtime] ## 环境声明
language = "python"
language_version = ">=3.8"
entry = "main.py"
terminal = "always"
binaries = [{name = "pdfcpu"}]
[bmscriptsbox.triggers.context_menu] ## 声明支持右键触发
enabled = true
targets = ["files"]
filters = [".pdf"]
[bmscriptsbox.triggers.shortcut] ## 声明支持快捷键触发
enabled = true
input_type = "files"
filters = [".pdf"]
[[bmscriptsbox.inputs]]
name = "target_paths"
label = "PDF 文件"
type = "list"
exts = [".pdf"]
pick = "files"
description = "输入数据描述"
未声明的参数、未调整的代码逻辑都不受影响,对原脚本零侵入。社区脚本源码托管 GitHub,装到本地仍是源码形态,可审阅、可修改、可交给 AI 助手继续迭代。
怎么把自己的脚本接进盒子(三步)
- 写声明:在脚本目录新建
bm-scripts-box-rc.toml(文件名固定),声明脚本名、语言与入口、触发方式(右键 / 快捷键 / 超级复制 / 定时)与参数,原脚本代码一行不改。 - 本地自测:把目录打成 zip(根目录直接放文件),在盒子「脚本管理 → 安装脚本」里选它;盒子自动下载对应语言的便携运行时、建虚拟环境装依赖。
- 发布社区:提交 GitHub 仓库地址即可发布到脚本社区;配好 Webhook 后,push 一次代码,社区版本自动更新。
一句话机制:盒子把「参数 JSON 文件路径」作为命令行第一个参数传给脚本,脚本读它、干活、退出。没有 SDK、不用 import、不用继承基类。
完整接入规范见开发文档:https://www.bm-box.cn/help/api
4. 机制二:运行时与依赖自动部署
盒子在安装脚本阶段自动完成:
- 运行时识别与安装(Python / Node 等);
- pip / npm 依赖安装;
- 外部二进制下载(ffmpeg、pandoc 等);
- 依赖隔离,避免脚本之间版本冲突。
对开发者的价值:脚本不再需要附带一长串「环境安装说明」。对用户的价值:装工具不需要先成为环境配置工程师。
5. 机制三:参数声明驱动界面生成
脚本声明了哪些参数,盒子就渲染出对应的图形化窗口(目录选择、数字输入、下拉、布尔开关等)。原本只有黑框命令行的脚本,启动后变成可填写的窗口,用户不接触命令行。

6. 用户侧能力
- 脚本社区:分类浏览、关键词搜索、安装量参考、一键安装;
- 一键启动:点卡片即跑;
- 触发方式:鼠标中键 / 双击 Ctrl、系统右键(自动带入文件路径)、自定义全局热键、超级复制(连按两次 Ctrl+C 携带选中文本)、定时任务(一次性 / 每日 / 每周 / 每月);
- 自动更新:社区推送新版本,一键升级,无需重装;
- 可视化治理:安装、启动、管理、卸载如管理手机 App。




7. 生态开放、许可与边界
- 生态开放:盒子本身不托管任何脚本代码,只提供检索与安装服务;所有脚本库源码开源在 GitHub,脚本安装到本地也以源码形态运行,完全没有黑盒。
- 语言与框架不设限:不限定接入语言与接入框架,背靠 Python / Node.js / AutoHotkey / PowerShell 等庞大生态,现有优秀开源项目可低成本接入盒子、在本地使用。开发者提交仓库地址即可发布脚本。
- 安全:数据默认本机处理、不上传;除安装脚本阶段外支持离线运行;开源可审计。
- 许可:MIT + Commons Clause —— 个人与组织内部免费使用;商业用途(售卖、打包收费、对外收费服务等)需经作者书面授权;禁止拿源码卖钱或二次分发。
- 边界:仅支持 Windows 10 / 11;盒子是运行与分发底座,不替代脚本本身质量;社区脚本质量取决于各作者,安装前建议查看源码。
8. 常见问题
Q:需要用户自己装 Python / Node 吗?
不需要,安装阶段自动准备运行时与依赖。
Q:必须改写脚本吗?
不必,补一份 TOML 声明即可,零侵入。
Q:脚本会黑盒运行吗?
不会,社区脚本与本地安装均为源码形态,可自行审阅。
Q:和 uTools / Quicker 是什么关系?
不同答案。它们以「一个入口接通大量现成能力」见长;本项目以「开放脚本生态 + 自动环境」见长,适合把已有 Python / Node 脚本直接变成桌面工具的开发者。
结语
盒子想解决的,是脚本从「能跑」到「用户能用」的最后一公里。如果你手头有补一份声明就能接进来的脚本,欢迎提交社区;项目也欢迎 Star 与反馈。
来源:博客园 · cnblogs.com