终端工具平台

Toolipie —— 代码片段工具箱

一个本地优先的 Python CLI/TUI 平台,把一次性小脚本整理成带 manifest、索引、日志和插件边界的可复用工具。

Toolipie 与其说是代码片段展示页,不如说是一个给个人小工具使用的终端操作面。公开仓库里对它的描述也更接近一个 Python CLI 平台:把零散的一次性脚本集中起来,避免重复重写和遗忘。

所以这篇项目文章不应该只讲“有哪些功能”,而应该讲 registry、manifest、CLI/TUI 执行模型,以及一个小脚本如何变成可以长期复用的工具。

01

工具注册表是中心

Toolipie 先解决发现问题:扫描工具、写入索引,然后让 CLI 和 TUI 读取同一份 registry。

toolipie — registry workflow
$ toolipie scan
 refreshed .toolipie/index.json

$ toolipie list
md-to-docx      Markdown to Word documents
md-to-pdf       Markdown to styled PDFs
pdf-to-png      Render PDFs into image folders
png-prep-ocr    Prepare PNGs for OCR pipelines
md-to-docx coremd-to-pdf corepdf-to-png corepng-prep-ocr corepng-to-avif pluginpng-to-svg plugin
为什么重要

registry 让界面不需要为了展示工具列表就导入每个工具。发现过程保持快速,真正运行时再加载代码。

02

先有 Manifest,再有工具

核心抽象不是一堆 Python 文件,而是一个声明式接口:说明工具是什么、需要什么、应该怎么运行。

Toolipie 把小工具分成 core tools 和 plugin tools,但两者使用同一种 manifest 形状。一个工具会声明 key、标题、摘要、默认 glob、参数和依赖。索引再记录它来自 core 还是 plugin。

schema_version: 1
name: md-to-pdf
title: Markdown to PDF
summary: Render Markdown files into styled PDFs
default_glob: "*.md"
options:
  - name: preset
    type: string
    default: a4_report
Core tools

稳定、轻量、由平台维护的内置工具。

Plugin tools

可以打包、安装、移除的工具,不需要重写平台。

安全边界

发现阶段只验证 manifest,不导入插件代码。

03

执行体验像终端应用

TUI 不是装饰,它给小脚本提供了可重复的运行界面:参数、输出、进度和取消。

仓库文档描述的是一个双栏终端 UI:选择工具、查看说明、打开参数、运行任务,并在 TUI 内部的输出面板里观察结果。运行过程使用 subprocess + PTY,让进度显示和取消行为更稳定。

  • 参数来自 manifest:每个工具的参数由 schema 和通用 input/output 字段生成。
  • 运行日志:工具可以写入 `run.jsonl` 这样的结构化记录。
  • 插件打包:插件可以被打成 zip,再安装回工具平台。
  • 取消模型:TUI 运行可以请求终止,并在进程没有退出时升级处理。
run panel
$ toolipie run pdf-to-png \
  --input input/pdf-to-png \
  --output output/pdf-to-png \
  --param dpi=300
 output/pdf-to-png/report/page-001.png
04

从工具架到 AI 可调用工具

长期方向不是继续堆随机脚本,而是让本地工具既能被人发现,也能被 AI 工作流发现。

当前平台

Core tools、plugin 文件夹、registry、CLI 和 TUI 让本地工具更容易查找和运行。

近期打磨

更好的脚手架、安装流程和文档,可以让添加个人工具的过程更少手工步骤。

之后的 AI 层

仓库愿景里包括 AI 辅助创建工具:生成脚手架、配置参数、生成文档,并可能通过 MCP 类工作流暴露这些工具。

产品判断

Toolipie 成功的标准,是让一个有用的本地动作不再只是被遗忘的文件,而是变成长期可调用的命令。