UStackUStack
Ray icon

Ray

Rayはデスクトップアプリで、コードのデバッグ出力を整理・検査・フィルタ・アーカイブ。アプリを煩雑にせず値を確認。

Ray

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の使い方

  1. Rayをダウンロードし、必要に応じてライセンスを購入(サイトに$49 USD、Spatie管理の1年ライセンス記載)。
  2. デバッグ出力をRayに送信。サイト記載のray(...)構文を使用(ラベル、テーブル、色付け、呼び出し属性フィルタの例あり)。
  3. Ray内でメッセージを検査・管理: 検索・フィルタで絞り込み、後で出力比較時にメッセージをアーカイブ。
  4. (オプション) リモートデバッグを設定: SSHでサーバーに接続し、リモート実行のデバッグ出力をRayにストリーミング。
  5. (オプション) 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ジャンプワークフローを提供しない場合があります。