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)。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案