devvit-logs について
devvit-logs は、インストール済みの Devvit アプリをデバッグするスキルです。`devvit logs` の出力を取得し、最初の出力後または5秒後に終了するため、subreddit のログを時間制限付きで確認できます。
主な機能
- 01`devvit logs` を実行してログを取得
- 02対象の subreddit を必須指定
- 03アプリ名と期間を任意指定
- 04最初の出力後または5秒後に終了
- 05取得結果を JSON で返却
活用シーン
- 01subreddit にインストールされたアプリのログをすぐに確認
- 02指定した期間の過去ログを確認
- 03ログストリームのコマンドが終了しない状態を回避
- 04ログがない場合にアプリの操作後に再試行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ reddit/ devvit-skills --skill devvit-logsインストール後、Claude Code で/devvit-logsを入力して読み込まれたか確認します。
同梱ファイルscripts/devvit-logs.cjs
詳細
Devvit のログ
インストール済みの Devvit アプリからログイベントをストリーミングし、すばやくデバッグできます。このスキルは devvit logs をラップし、ストリーミングコマンドが終了せずに実行され続けるのを防ぐため、短い時間(5 秒)後に自動終了します。
動作の仕組み
- 対象のサブレディットをユーザーに尋ねます(必須)。
- アプリ名と
--since=...フラグを任意で受け付けます。 devvit logsを実行して出力を取得します。- 最初の出力があった時点、または5秒経過した時点のいずれか早い方で自動終了します。
使用方法
node ./scripts/devvit-logs.cjs <subreddit> [app-name] [--since=1h]
スクリプトのパスは、このスキルのディレクトリからの相対パスです。
引数:
subreddit- 必須。ログをストリーミングするサブレディットです。app-name- 任意。別のフォルダーからログをストリーミングする場合のアプリ名です。--since=Xd- 任意。過去のログを取得する期間です(例:--since=30m、--since=1d)。
例:
node ./scripts/devvit-logs.cjs my-subreddit
node ./scripts/devvit-logs.cjs my-subreddit my-app --since=1h
出力
{
"ok": true,
"reason": "timeout",
"exitCode": null,
"signal": null,
"stdout": "=============================== streaming logs for my-app on my-subreddit ================================\n[DEBUG] Dec 8 15:55:23 Action called!",
"stderr": ""
}
結果をユーザーに提示する
- ユーザーがサブレディットを指定していない場合は、明示的に尋ねます。
- 取得したログ(ある場合)を要約し、取得時間が5秒であることを伝えます。
- ログが取得されなかった場合は、その旨を伝え、アクティビティが発生している状態で再試行するか、
--since=...を指定するよう提案します。
トラブルシューティング
- Devvit CLI が見つからない:
devvitをインストールするか、PATH に含まれていることを確認します。 - ログインしていない:
devvit loginを実行して、もう一度試します。 - ログがない:アプリでアクションを実行するか、
--since=...を使用します。 - 権限エラー:アプリがサブレディットにインストールされていること、およびアクセス権があることを確認します。
コメント
Markdown 対応