chr15m/runprompt

Run LLM prompts from your shell

解決する課題

runprompt を使用すると、ユーザーはシェルから直接 LLM プロンプトを実行できます。これにより、プロンプトをアドホックなチャットボットへのリクエストとしてではなく、第一級のバージョン管理可能なアーティファクトとして扱うことができます。.prompt ファイル(プロンプトテキストと、モデルやスキーマなどのメタデータをバンドルしたもの)をコマンドライン経由で実行する方法を提供することで、プロンプトやデータを Web インターフェースに手動でコピー&ペーストする手間を省きます。

仕組み

このツールは、設定(モデル、出力形式、ツール)のための YAML フロントマター セクションとテンプレート本文を含む .prompt ファイルを使用します。以下の機能をサポートしています:

  • 入力処理: STDIN、コマンドライン引数、または JSON 文字列を介してデータを受け取り、Handlebars/Mustache 構文を使用してプロンプトに補完します。
  • 動的コンテキスト: フロントマターの before: キーにより、プロンプトを LLM に送信する前にシェルコマンドを実行してリアルタイムのデータ(例:git log)を取得できます。
  • 構造化出力: Picoschema を使用して出力形式を定義し、LLM が解析可能な JSON を返せるようにします。
  • 拡張性: Python 関数またはインラインのシェルスクリプトとして定義された「ツール」をサポートしており、LLM は実行中にこれらを呼び出してシステムと対話できます。
  • 実行: スタンドアロンのスクリプトとして実行、pip/uv を介してインストール、または shebang (#!/usr/bin/env runprompt) を介して実行ファイルとして使用できます。

対象ユーザー

AI ワークフローの自動化、LLM 用のカスタム CLI ハーネスの構築、または AI プロンプトのシェルスクリプトや CI/CD パイプラインへの統合を目指す開発者やパワーユーザー。

ハイライト

  • プロンプト アーティファクト: モデル設定、スキーマ、プロンプトテキストを単一の .prompt ファイルにバンドル。
  • シェル統合: プロンプト間のデータパイプライン処理や、プロンプト実行前のシェルコマンド実行をネイティブにサポート。
  • ツールの使用: LLM が呼び出せるカスタム Python ツールやシンプルなシェルツールの定義が可能。
  • インタラクティブ モード: ファイルの読み取りや、特定のファイルへの書き込み権限を LLM に付与するコマンドを備えた組み込みチャットモード。
  • マルチプロバイダー対応: Anthropic、OpenAI、Google AI、OpenRouter、およびあらゆる OpenAI 互換エンドポイント(例:Ollama)に対応。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト