chr15m/runprompt

Run LLM prompts from your shell

解决的问题

runprompt 允许用户直接从 Shell 运行 LLM 提示词,将提示词视为一等公民、可版本控制的制品,而不是临时的聊天机器人请求。通过提供通过命令行执行 .prompt 文件(封装了提示词文本和模型、Schema 等元数据)的方法,消除了手动将提示词和数据复制粘贴到 Web 界面中的需求。

工作原理

该工具使用 .prompt 文件,其中包含用于配置(模型、输出格式、工具)的 YAML frontmatter 部分和模板正文。它支持:

  • 输入处理:接受通过 STDIN、命令行参数或 JSON 字符串传入的数据,然后使用 Handlebars/Mustache 语法将其插值到提示词中。
  • 动态上下文:frontmatter 中的 before: 键允许在将提示词发送给 LLM 之前执行 Shell 命令以收集实时数据(例如 git log)。
  • 结构化输出:使用 Picoschema 定义输出格式,使 LLM 能够返回可解析的 JSON。
  • 可扩展性:支持定义为 Python 函数或内联 Shell 脚本的“工具”,LLM 可以在执行期间调用这些工具与系统进行交互。
  • 执行:可以作为独立脚本运行,通过 pip/uv 安装,或通过 shebang (#!/usr/bin/env runprompt) 作为可执行文件使用。

适用对象

想要自动化 AI 工作流、构建自定义 LLM CLI 框架,或将 AI 提示词集成到 Shell 脚本和 CI/CD 流水线中的开发人员和高级用户。

亮点

  • 提示词制品:将模型配置、Schema 和提示词文本打包在单个 .prompt 文件中。
  • Shell 集成:原生支持在提示词之间进行数据管道传输,以及执行提示词前的 Shell 命令。
  • 工具使用:能够定义自定义 Python 工具或简单的 Shell 工具供 LLM 调用。
  • 交互模式:内置聊天模式,包含读取文件或授予 LLM 特定文件写入权限的命令。
  • 多供应商支持:支持 Anthropic、OpenAI、Google AI、OpenRouter 以及任何兼容 OpenAI 的端点(例如 Ollama)。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目