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)。
相关
- 项目
- 项目
- 项目
- 项目
- 项目