MantaRay app icon

free · native · macOS

Every ray() call,
on your desktop. Free.

MantaRay is a free, native macOS alternative to myray.app. It speaks the same port and protocol as the official Ray app — your existing ray() calls from Laravel, Drupal, WordPress, or plain PHP just work. No account, no license key.

Download for macOS

Version 0.1.0 · universal, Apple Silicon and Intel · requires macOS 14 or newer

Not signed with an Apple Developer certificate yet, so the first launch is blocked — macOS will call it damaged. It isn't. Drag it to Applications, then run this once:

xattr -cr /Applications/MantaRay.app

How MantaRay works

Your code calls ray(). The client posts the payload to localhost:23517. MantaRay is the window on the other end.

CheckoutController.php
ray('Hello MantaRay')->green()->label('boot');
ray()->table(['customer' => 'Ada Lovelace', 'total' => '€149.00']);
ray($webhookError)->red()->label('stripe');
The MantaRay window on macOS showing five incoming ray() entries: a green 'Hello MantaRay' log labelled boot, a timing log, an order table, an expanded Stripe webhook array, and a CardException with its stack frames — each with a clickable file:line origin.

MantaRay is the receiving end. The ray() function itself comes from spatie/ray, added to the project you're debugging:

composer require spatie/ray --dev

Framework packages add helpers for their stack: spatie/laravel-ray, spatie/wordpress-ray, and Ray Debugger for Drupal, which reaches Twig templates and JavaScript too.

Built for everyday ray() debugging

Drop-in compatible

Listens on localhost:23517 with the spatie/ray protocol. Close the official app, open MantaRay — nothing else changes.

Expandable dumps

Arrays and objects arrive as Symfony VarDumper output and fold in and out, exactly as you'd expect.

Colors & labels

->green(), ->label('checkout') and friends render as colored edges and chips, so you can scan a busy stream.

Jump to source

Every entry carries its origin. Click file:line and your editor opens at that exact line — PhpStorm, VS Code, Cursor, Zed, Sublime, TextMate and more, or any editor with a URL scheme.

Nothing lost at boot

Payloads that arrive while the window is still starting are buffered and replayed, so early calls never vanish.

Made yours

Configurable global shortcuts, light and dark themes, adjustable type size. It's a tool you keep open all day — it should fit.

MantaRay vs. the official Ray app

Both windows receive the same ray() calls. MantaRay covers the everyday debugging loop for free; Ray is the fuller, cross-platform commercial product.

  MantaRay Ray (myray.app)
Price Free, personal and commercial Paid license
Account or license key None Required
ray() protocol on localhost:23517 Yes Yes
spatie/ray, Laravel, WordPress, Drupal clients Yes Yes
Expandable dumps, colors, labels, jump to source Yes Yes
macOS Yes, universal, macOS 14+ Yes
Windows and Linux Not yet Yes
Query, job and mail watchers, remote debugging Not yet Yes

If you live in those advanced watchers or debug from Windows, buy Ray — it's worth the money. If you mostly want a fast window for ray() output on a Mac, MantaRay is enough.

Free to use

MantaRay is free for personal and commercial use. No account, no license key, no trial, no upsell. It's built and maintained by one person who wanted a lighter window for ray() output.

If MantaRay saved you a license fee, consider passing a slice of it on. Sponsorship keeps the project maintained and the releases coming.

Frequently asked questions

Is MantaRay really free?

Yes. MantaRay is free for personal and commercial use — no account, no license key, no trial period and no paid tier. If it saved you a license fee, sponsoring the project is the way to say thanks.

Is MantaRay a drop-in replacement for myray.app?

For everyday ray() debugging, yes. MantaRay listens on localhost:23517 and reads the same payload format the spatie/ray client sends, so you quit the official Ray app, open MantaRay, and your existing calls arrive in the new window. Nothing changes in your code.

Do I need a Ray license to use the ray() function?

No. The ray() function comes from spatie/ray, an open-source Composer package you install with composer require spatie/ray --dev. Only the desktop app that displays the output is commercial — and that is the part MantaRay replaces.

Which frameworks and languages does MantaRay work with?

Anything that speaks the Ray protocol. In PHP that means plain projects via spatie/ray, Laravel via spatie/laravel-ray, WordPress via spatie/wordpress-ray, and Drupal via the Ray Debugger module, which also reaches Twig templates and JavaScript.

Why does macOS say MantaRay is damaged?

MantaRay is not signed with an Apple Developer certificate yet, so Gatekeeper blocks the first launch and reports the app as damaged. It isn't. Drag it to Applications and run xattr -cr /Applications/MantaRay.app once in Terminal.

Is there a Windows or Linux version of MantaRay?

Not yet. MantaRay 0.1.0 is a native macOS app and needs macOS 14 or newer. It runs universally on both Apple Silicon and Intel Macs.

Does MantaRay send my debug data anywhere?

No. ray() payloads are posted to localhost:23517 on your own machine and MantaRay displays them there. Your variables, queries and stack traces never leave your computer.