slides について
slides は、トピック、URL、テキストからスライドを生成する ListenHub スキルです。音声ナレーションも任意で追加でき、プレゼンテーションや要約、ビジュアルストーリーテリングに利用できます。
主な機能
- 01トピック、URL、テキストからスライドを作成
- 02AI ビジュアルを生成
- 03音声ナレーションを任意で追加
- 04中国語、英語、日本語に対応
- 05オンライン表示とファイル保存に対応
活用シーン
- 01トピックをプレゼンテーションにまとめる
- 02URL の内容をスライドに変換
- 03ナレーション付きのスライド解説を作成
- 04ビジュアル要約やストーリーを制作
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ marswaveai/ skills --skill slidesインストール後、Claude Code で/slidesを入力して読み込まれたか確認します。
詳細
使用する場面
- ユーザーがスライドデッキやプレゼンテーションを作成したい場合
- ユーザーが「slides」、「幻灯片」、「PPT」、または「presentation」と尋ねた場合
- ユーザーがトピックや URL をもとに、ビジュアルコンテンツをスライドにまとめたい場合
使用しない場面
- ユーザーがスライドのないナレーション付き動画を作成したい場合(
/explainerを使用) - ユーザーが音声のみのコンテンツを作成したい場合(
/speechまたは/podcastを使用) - ユーザーがポッドキャスト形式のディスカッションを作成したい場合(
/podcastを使用) - ユーザーが単体の画像を生成したい場合(
/image-genを使用)
目的
トピック、URL、またはテキストから、AI 生成ビジュアルを使ったスライドデッキを作成します。デフォルトでは、音声ナレーションなしでスライドを生成します。ナレーションは任意で有効にできます。プレゼンテーション、要約、ビジュアルストーリーテリングに最適です。
厳守事項
- 対話を始める前に、必ず
shared/config-pattern.mdに従って設定を読み込んでください - 実行モード、エラー処理、対話パターンについては
shared/cli-patterns.mdに従ってください - 認証チェックについては、必ず
shared/cli-authentication.mdに従ってください - ナレーションが有効な場合は、
shared/speaker-selection.mdに従ってください - 話者 ID をハードコードしないでください。ユーザーが音声の変更を希望した場合は、必ず speakers CLI から取得してください
~/Downloads/または.listenhub/にファイルを保存しないでください。成果物は、わかりやすいトピックベースの名前を付けて現在の作業ディレクトリに保存してください(shared/config-pattern.md§ Artifact Naming を参照)- モードは常に
slidesにしてください。infoやstoryは使用しないでください(これらは/explainer用です) - スライドのナレーションでサポートされる話者は 1 人のみです
- デフォルトの動作では、音声を省略します(ナレーションなし)。ユーザーが
--no-skip-audioで明示的に要求した場合にのみ、ナレーションを追加してください
Step -1: CLI 認証チェック
shared/cli-authentication.md に従ってください。CLI がインストールされていない場合、またはユーザーがログインしていない場合は、自動でインストールしてログインしてください。ユーザーに手動でコマンドを実行するよう求めてはいけません。
Step 0: 設定のセットアップ
shared/config-pattern.md の Step 0(Zero-Question Boot)に従ってください。
ファイルが存在しない場合 — デフォルト値を使って無言で作成し、そのまま進めてください:
mkdir -p ".listenhub/slides"
echo '{"outputMode":"inline","language":null,"defaultSpeakers":{}}' > ".listenhub/slides/config.json"
CONFIG_PATH=".listenhub/slides/config.json"
CONFIG=$(cat "$CONFIG_PATH")
セットアップに関する質問はしないでください。 そのまま対話フローに進んでください。
ファイルが存在する場合 — 設定を無言で読み込み、そのまま進めてください:
CONFIG_PATH=".listenhub/slides/config.json"
[ ! -f "$CONFIG_PATH" ] && CONFIG_PATH="$HOME/.listenhub/slides/config.json"
CONFIG=$(cat "$CONFIG_PATH")
セットアップフロー(ユーザーが再設定を依頼した場合のみ)
ユーザーが明示的に再設定を依頼した場合にのみ実行してください。現在の設定を表示します:
当前配置 (slides):
输出方式:{inline / download / both}
语言偏好:{zh / en / 未设置}
默认主播:{speakerName / 使用内置默认}
次に、以下を質問します:
-
outputMode:
shared/output-mode.md§ Setup Flow Question に従ってください。 -
Language(任意):「デフォルトの言語は何ですか?」
- 「中文 (zh)」
- 「English (en)」
- 「毎回手動で選択」→
nullのままにする
回答をすべて収集したら、すぐに保存してください:
NEW_CONFIG=$(echo "$CONFIG" | jq --arg m "$OUTPUT_MODE" '. + {"outputMode": $m}')
echo "$NEW_CONFIG" > "$CONFIG_PATH"
CONFIG=$(cat "$CONFIG_PATH")
対話フロー
Step 1: トピック/コンテンツ
自由入力。ユーザーに次のように尋ねてください:
何についてスライドを作成しますか?
受け付ける内容:トピックの説明、テキストコンテンツ、URL(複数可)、またはこれらの組み合わせ。
Step 2: 言語
config.language が設定されている場合は、あらかじめ入力して要約に表示し、この質問を省略してください。
設定されていない場合は、次のように尋ねてください:
Question: "What language?"
Options:
- "Chinese (zh)" — Content in Mandarin Chinese
- "English (en)" — Content in English
- "Japanese (ja)" — Content in Japanese
Step 3: ナレーション
次のように尋ねてください:
Question: "需要语音旁白吗?(默认否)"
Options:
- "不需要" — Slides only, no narration
- "需要" — Add voice narration to slides
デフォルトではナレーションなしです。ユーザーが希望した場合は Step 4 に進んでください。希望しない場合は Step 5 に進んでください。
Step 4: 話者の選択(ナレーションが有効な場合のみ)
ナレーションが有効でない場合は、この手順全体を省略してください。
shared/speaker-selection.md に従ってください:
config.defaultSpeakers.{language}が設定されている場合 → 保存済みの話者を無言で使用する- 設定されていない場合 → その言語の
shared/speaker-selection.mdに記載された組み込みのデフォルトを使用する - 確認の要約(Step 5)に話者を表示する。必要に応じて、ユーザーはそこで変更できます
- 話者の一覧全体を表示するのは、ユーザーが音声の変更を明示的に希望した場合のみです
スライドのナレーションでサポートされる話者は 1 人のみです。
ステップ 5:確認して生成
すべての選択内容をまとめます。
ナレーションなし:
Ready to generate slides:
Topic: {topic}
Language: {language}
Narration: No
Proceed?
ナレーションあり:
Ready to generate slides:
Topic: {topic}
Language: {language}
Narration: Yes
Speaker: {speaker name}
Proceed?
CLI コマンドを実行する前に、明示的な確認を待ちます。
ワークフロー
-
送信(バックグラウンド):
run_in_background: trueとtimeout: 660000を指定して CLI コマンドを実行します。ナレーションなし(デフォルト):
listenhub slides create \ --query "{topic}" \ --lang {en|zh|ja} \ --image-size 2K \ --aspect-ratio 16:9 \ --timeout 600 \ --jsonナレーションあり:
listenhub slides create \ --query "{topic}" \ --lang {en|zh|ja} \ --image-size 2K \ --aspect-ratio 16:9 \ --no-skip-audio \ --speaker "{name}" \ --timeout 600 \ --jsonユーザーがソース URL を指定した場合は、
--source-url "{url}"を追加します。CLI がポーリングを内部で処理し、生成が完了すると最終結果を返します。
-
タスクが送信されたことと、完了時に通知されることをユーザーに伝えます。
-
完了通知を受け取ったら、結果を解析して提示します。
CLI の JSON 出力から主要なフィールドを解析します。
EPISODE_ID=$(echo "$RESULT" | jq -r '.episodeId') AUDIO_URL=$(echo "$RESULT" | jq -r '.audioUrl // empty') CREDITS=$(echo "$RESULT" | jq -r '.credits // empty')設定から
OUTPUT_MODEを読み込みます。動作についてはshared/output-mode.mdに従います。ナレーションなし:
inlineまたはboth:オンラインリンクを提示します。幻灯片已生成! 在线查看:https://listenhub.ai/app/slides/{episodeId} 消耗积分:{credits}downloadまたはboth:スクリプトファイルも保存します。shared/config-pattern.md§ Artifact Naming に従ってトピックのスラッグを生成します。- cwd に
{slug}-slides.mdとして保存します(存在する場合は重複を避けます)。 - 上記の概要に加えて保存先のパスも提示します。
ナレーションあり:
inlineまたはboth:音声 URL をクリック可能なリンクとして表示します。幻灯片已生成! 在线查看:https://listenhub.ai/app/slides/{episodeId} 音频链接:{audioUrl} 消耗积分:{credits}downloadまたはboth:ファイルも保存します。shared/config-pattern.md§ Artifact Naming に従ってトピックのスラッグを生成します。{slug}-slides/フォルダーを作成します(存在する場合は重複を避けます)。- 中に
script.mdを書き込みます。 - 音声をダウンロードします。
curl -sS -o "{slug}-slides/audio.mp3" "{audioUrl}" - 次のように提示します。
已保存到当前目录: {slug}-slides/ script.md audio.mp3
- cwd に
生成成功後
このセッションで選択した内容で設定を更新します。
NEW_CONFIG=$(echo "$CONFIG" | jq \
--arg lang "{language}" \
'. + {"language": $lang}')
echo "$NEW_CONFIG" > "$CONFIG_PATH"
ナレーションを使用した場合は、話者も保存します。
NEW_CONFIG=$(echo "$CONFIG" | jq \
--arg lang "{language}" \
--arg speakerId "{speakerId}" \
'. + {"language": $lang, "defaultSpeakers": (.defaultSpeakers + {($lang): [$speakerId]})}')
echo "$NEW_CONFIG" > "$CONFIG_PATH"
所要時間の目安:
- ナレーションなしのスライド:2~4 分
- ナレーションありのスライド:4~8 分
リソース
- CLI 認証:
shared/cli-authentication.md - CLI パターン:
shared/cli-patterns.md - 話者の照会:
shared/cli-speakers.md - 話者選択ガイド:
shared/speaker-selection.md - 設定パターン:
shared/config-pattern.md - 出力モード:
shared/output-mode.md
組み合わせ
- 呼び出すもの:speakers CLI(ナレーション有効時の話者選択用)
- 呼び出し元:content-planner(フェーズ 3)
例
ユーザー:「量子計算についてのスライドを作って」
エージェントのワークフロー:
- トピック:「量子計算」
- 言語:設定から事前入力するか尋ねる → 「zh」
- ナレーション:尋ねる → 「不要」
- 確認して生成
listenhub slides create \
--query "量子计算" \
--lang zh \
--image-size 2K \
--aspect-ratio 16:9 \
--timeout 600 \
--json
CLI から結果が返るまで待ち、その後オンラインリンクを提示します。
ユーザー:「ナレーション付きで React hooks のスライドを作成して」
エージェントのワークフロー:
- トピック:「React hooks」
- 言語:尋ねる → 「en」
- ナレーション:尋ねる → 「必要」
- 話者:英語用の組み込みデフォルトを使用
- 確認して生成
listenhub slides create \
--query "React hooks" \
--lang en \
--image-size 2K \
--aspect-ratio 16:9 \
--no-skip-audio \
--speaker "Mars" \
--timeout 600 \
--json
CLI から結果が返るまで待ち、その後オンラインリンクと音声リンクを提示します。