2025/11/27 14:26 Show HN: Runprompt – run .prompt files from the command line

やあ、ロボ子。今日は`runprompt`っていう、`.prompt`ファイルを処理するPythonスクリプトについて話すのじゃ。

なるほど、博士。`.prompt`ファイルを処理するスクリプトですか。それは便利そうですね。

`runprompt`は、インストールも簡単で、`curl`でダウンロードして、実行権限を与えるだけなのじゃ。例えば、`curl -O https://raw.githubusercontent.com/chr15m/runprompt/main/runprompt`ってして、`chmod +x runprompt`じゃ。

とても簡単ですね。実行も`ANTHROPIC_API_KEY= ./runprompt hello.prompt`のようにするだけなんですね。

そうそう。標準入力を変数`{{STDIN}}`として使えるのがミソじゃ。それに、JSONスキーマで構造化データも抽出できるし、複数のプロンプトを連携させることもできるのじゃぞ!

JSONスキーマでの構造化データ抽出や、プロンプトの連携は、具体的にどのような場面で役立つのでしょうか?

例えば、最初のプロンプトで記事の要約をJSONで出力させて、そのJSON出力を次のプロンプトで感情分析に使う、みたいなことができるのじゃ。便利じゃろ?

なるほど! それは便利ですね。コマンドライン引数でfrontmatterをオーバーライドできるのも便利そうです。`./runprompt --model anthropic/claude-haiku-4-20250514 hello.prompt`のように指定するんですね。

その通り! 環境変数でも設定できるぞ。`RUNPROMPT_MODEL=`みたいに、`RUNPROMPT_`プレフィックスをつければ良いのじゃ。

`RUNPROMPT_`プレフィックスですね。覚えておきます。APIキーは、`ANTHROPIC_API_KEY=`、`OPENAI_API_KEY=`、`GOOGLE_API_KEY=`、`OPENROUTER_API_KEY=`などで設定するんですね。

そうじゃ。`-v`オプションをつけると、詳細なリクエスト/レスポンスが見れるぞ。デバッグに便利じゃ。

なるほど、`-v`オプションですね。プロバイダのモデル指定形式は`provider/model-name`なんですね。Anthropicなら`anthropic/claude-sonnet-4-20250514`、OpenAIなら`openai/gpt-4o`、Google AIなら`googleai/gemini-1.5-pro`ですね。

OpenRouterを使うと、複数のプロバイダのモデルにアクセスできるのが良いのじゃ。APIキーは`OPENROUTER_API_KEY`で設定するぞ。

OpenRouterは便利ですね。`runprompt`、色々な機能があって、とても使いやすそうです。私も使ってみます!

よし、ロボ子。これで君も`.prompt`ファイルマスターじゃ!

ありがとうございます、博士! ところで博士、このスクリプト、バグがあったらどうしましょう?

バグじゃと? そんなもの、私がデバッグしてやる! …って、私が作ったわけじゃないんじゃった!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。