Rayとは?
Rayは、アプリケーションの実行環境外でデバッグ出力を整理・検査するための専用デスクトップアプリです。ray(...)という一貫した構文で値(文字列、配列、オブジェクトなど)を送信し、Ray内で結果を閲覧・フィルタ・再確認できます。
主な目的は、デバッグ出力を読みやすく構造化し、アプリに追加のログコードを散らかさずに済むようにすることです。RayはSSH経由のリモートデバッグをサポートし、PHP/Laravel環境での実行一時停止と計測ツールも備えています。
主な機能
- デバッグ出力専用のデスクトップビュー: 専用アプリでデバッグ出力を管理し、ブラウザコンソールに頼らず結果を検査。
- 多様なデータ型のフォーマット表示: 文字列、配列、オブジェクト、テーブルなどの値を送信し、きれいに整形して検査可能。
- メッセージのフィルタ・ラベル・検索: タイプ、送信元、カスタムラベルでフィルタし、検索で過去の出力を探す。
- アーカイブとクリア制御: 画面をクリアしたり、メッセージをアーカイブして後で参照。出力比較や再現しにくい問題調査に。
- SSH経由のリモートデバッグ: SSHでサーバーに接続し、リモートコードのデバッグ出力をRayにストリーミング。
- IDEへのジャンプ: ダンプ出力からエディタの該当箇所へジャンプ(サイト記載の複数IDE対応)。
- 言語/フレームワーク横断のデバッグ構文: サイト記載の
dumpスタイルを各種言語・フレームワークで統一使用。 - Ray 3.0のPHP/Laravel実行ツール: PHP/Laravelコードを一時停止し、呼び出し間の時間を計測。
- ランタイム出力の自動受信 (Ray 3.0): サイト記載の通り、コードに明示呼び出しを追加せずクエリ、ジョブ、例外などを自動受信。
- 拡張性とカスタマイズ: テーマ変更、マクロ拡張、未対応言語/フレームワーク用の独自クライアント作成。
- AI機能 (Ray 3.0): Ray内でAI出力と直接やり取り。AI生成HTMLコンポーネント/プロトタイプや、Mermaid/ERDダイアグラムの構造化説明をビルトイン.viewerで閲覧。
- AIエージェント用MCPサーバー: サイト記載の通り、MCPサーバーでAIエージェントがウィンドウ/ツールにアクセスし、コンテンツの読み取り・生成・出力。
Rayの使い方
- Rayをダウンロードし、必要に応じてライセンスを購入(サイトに$49 USD、Spatie管理の1年ライセンス記載)。
- デバッグ出力をRayに送信。サイト記載の
ray(...)構文を使用(ラベル、テーブル、色付け、呼び出し属性フィルタの例あり)。 - Ray内でメッセージを検査・管理: 検索・フィルタで絞り込み、後で出力比較時にメッセージをアーカイブ。
- (オプション) リモートデバッグを設定: SSHでサーバーに接続し、リモート実行のデバッグ出力をRayにストリーミング。
- (オプション) IDEナビゲーションと実行ツールを使用: Ray出力からソース箇所へジャンプ、PHP/Laravel用の実行一時停止・計測ツール活用。
ユースケース
- アプリを散らかさず複雑な値を検査: ラベル・整形付きで文字列、配列、オブジェクト、テーブルをRayに送信。コンソール出力に頼らず開発中の状態を把握。
- フィルタで特定リクエストやコードパスをデバッグ:
ray(...)呼び出しに色/ラベルを付け、Rayでタイプ/送信元/ラベルでフィルタして関連メッセージを抽出。 - 試行ごとの出力比較: コード変更前後のメッセージをアーカイブし、断続的な問題トラブルシューティングで過去出力を再確認。
- SSH経由のリモートサーバーデバッグ: リモートサーバー実行コードのデバッグ出力をRayにストリーミング、手動ログコピーなしで検査。
- PHP/Laravelのパフォーマンス・フローデバッグ: 実行一時停止と呼び出し間時間計測、Ray 3.0記載のクエリ・ジョブ・例外を自動受信。
- AI経由のデータベースダイアグラム・スキーマ説明: Ray 3.0機能でAIがデータベーススキーマを説明、Mermaid/ERD形式で構造化出力を閲覧。
FAQ
-
Rayはブラウザベースのデバッグ専用ですか? いいえ。サイトではRayを専用のデスクトップアプリと説明しており、アプリのランタイム外でデバッグ出力を整理して保持します。
-
Rayは出力フォーマットに何をサポートしていますか? サイトによると、Rayは受信した出力(例: 文字列、配列、オブジェクト)をフォーマットし、テーブルを表示可能。また、クエリ、メール、イベント、スタックトレースのダンプも記載されています。
-
Rayはリモートサーバーで動作するコードをデバッグできますか? はい。サイトではSSH経由で接続し、デバッグ出力をRayにストリーミングすると説明されています。
-
Rayはdd()や他のデバッガを置き換えますか? ページではRayはddやxdebugの置き換えではなく、クイックダンプと構造化デバッグの間のギャップを埋める第3のツールと説明されています。
-
Ray 3.0の新機能は何ですか? ページでは実行の一時停止・計測、AIインタラクション(HTMLコンポーネントやMermaid/ERDビューアを含む)、AIエージェント向けMCPサーバーを強調しています。
代替案
- ブラウザ内ログとコンソール出力(例:
console.log、ブラウザ開発ツール): クイックチェックに便利ですが、結果はブラウザ環境に縛られ、専用で検索可能なデスクトップタイムラインでは提示されません。 - アプリフレームワークの「ダンプ」ヘルパー(例:
dd()スタイルのデバッグ): 高速で直接的ですが、通常出力はアプリ/ブラウザ応答内に留まり、フィルタ/検索・アーカイブ付きの別デスクトップアプリにはなりません。 - リモートログ/オブザーバビリティツール: リモート環境からのログ収集代替で、主にログ集約と監視に焦点を当て、Rayの構造化メッセージベース検査ワークフローとは異なります。
- ターミナルベースREPL/デバッグツール: 開発中に値を検査可能ですが、Rayサイトで言及される整理されたデスクトップUI、フィルタ、IDEジャンプワークフローを提供しない場合があります。
代替品
OpenFlags
OpenFlagsはオープンソースのセルフホスト型フィーチャーフラグ管理。アプリSDKでローカル評価し、制御プレーンで安全に段階展開。
Rectify
RectifyはSaaS向けオペレーション統合プラットフォーム。監視・分析・サポート・ロードマップ/変更履歴・エージェント管理を会話で一元操作。
PingPulse
PingPulseはAIエージェントのワークフローをリアルタイムで可視化し、引き継ぎの追跡と失敗・停止・順序違いを検知。アラート設定も対応。
KIT.domains
KIT.domainsはドメインの期限とSSLを自動監視し、DNS整合性(MX/NS)変更を通知。共有ダッシュボードと更新カレンダーで可視化。
Sleek Analytics
Sleek Analyticsは軽量でプライバシーに配慮した分析ツール。リアルタイム訪問者追跡で流入元・閲覧・滞在時間を可視化。
Falconer
Falconerは、スピード重視のチーム向けの自己更新ナレッジ基盤。社内ドキュメントとコード文脈を一元化して共有・検索できます。