Try it yourself
Interactive AI Presenterを試す
このデモではCodexを使いました。必要なローカルCLI実行とファイル読み込みを許可した外部エージェントで、次の手順とプロンプトを試せます。すべてのエージェントやモデルとの互換性を保証するものではありません。
1. GUIとCLIを準備
OSに合うQuick Presenter v2.5.0をインストールし、同じパッケージのGUIとCLIを使用してください。WindowsのMicrosoft Store版、Mac App Store版、macOSのDMG版、Debianパッケージで利用できます。v2.0.0で導入したexportインターフェースは、引き続きControl Protocol v1として利用できます。
Mac App Store v2.5.0は/Applications/Quick Presenter.app/Contents/Helpers/ControlCLI.app/Contents/MacOS/qpを同梱しています(Apple silicon・M1以降、macOS 14.4以降)。Developer ID / DMG版は/Applications/Quick Presenter.app/Contents/MacOS/qp、Windows Store版はqp.exeの実行エイリアス、Debianは/usr/bin/qpを使います。macOSではCLIをインストール済みアプリ内に置いたまま使用してください。以下はqpがPATHにある場合の例です。インストール手順に従ってユーザー用リンクを作成するか、qpを引用符付きのフルパスに置き換えてください。
2. サンプルPDFと全ページを取得
下のサンプルをinteractive-ai-sample.pdfとして作業フォルダに保存します。これはv2.0.0リリースのdocs/samples/quick-presenter-demo.pdfから取得した、ノート付きの12ページPDFです。GUIとCLIは同じパッケージを使い、XDG_RUNTIME_DIRを設定している場合は両方で同じ値にしてください。
Mac App Store版では、qp openが必要に応じてGUIを起動します。まだアクセスを許可していないPDFは、表示されるファイル選択画面で120秒以内に指定されたファイルを選んでください。キャンセルや別ファイルの選択では、現在のプレゼンテーションを維持します。次回以降は保存された読み取り専用のアクセス許可を再利用します。
qp --version --json
qp open interactive-ai-sample.pdf --json
qp status --json
qp export --json > deck-context.json
qp context --full --jsonstatusのopening: false、render_state: "ready"、notes_state: "ready"を確認してからexportします。NOTES_LOADINGなら準備を待って読み込みを再試行してください。失敗時は空の出力を資料として渡さず、エラーを確認します。exportは表示ページを移動せず、全ページの本文とノートをJSON配列で返します。
Python 3があれば、次の確認で全ページのノートの有無を表示できます。空のノートはノートなしを意味します。exportには画像、図の解釈、OCRは含まれません。
python3 - <<'PYCODE'
import json
from pathlib import Path
pages = json.loads(Path("deck-context.json").read_text())
print("Pages:", len(pages))
for entry in pages:
page = entry["current"]
print(page["page"], "notes:", bool(page["notes"].strip()))
PYCODE3. 質問し、指示して戻る
質問例:「なぜElectronではなくRustを使ったのですか?」。取得した資料全体から関連ページを判断し、必要な場合だけqp goto N --jsonを実行します。Nはエージェントが資料から選んだ1始まりのページ番号です。「元の位置へ戻って」と指示したら、同じ資料・セッションであることを確認して保存したページへ復帰します。毎回の移動や自動復帰を前提にしません。
JSONの各項目はcurrent.page、current.text、current.notesです。presentation.pageはexport開始時の表示ページであり、各ページの番号ではありません。
4. エージェント向けプロンプト
ローカルCLIを実行できるエージェントに渡してください。PDFのパスとqpの実行パスは環境に合わせて設定します。
You are an external interactive presenter for Quick Presenter.
Use the configured qp CLI; do not simulate application actions.
1. Read qp status --json and save session_id, document_revision, and page.
2. Read qp export --json once for the whole deck. Use current.page,
current.text, and current.notes in each entry. presentation.page is the
initial live page, not the exported page number. Confirm notes are available.
3. Answer the user's questions using this deck. Distinguish source facts from
your interpretation. Say when the deck does not support an answer.
4. Select a relevant page from the exported material. Use qp goto N --json
only when showing that page helps. Confirm state with qp status --json.
5. Return to the saved page only when the user asks. Check that session_id and
document_revision still match before restoring. Do not reopen an old PDF or
restore a page into a different document. Confirm the result.
6. Refresh the export if the document changes. If notes are loading, wait for
notes_state ready and retry the read. Report failures; check status before
retrying an action whose outcome is uncertain. Do not invent successful
actions, missing notes, image contents, or claims absent from the deck.
Do not narrate automatically or advance continuously unless explicitly asked.