PHPackages                             michal78/laravel-sms-catcher - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. michal78/laravel-sms-catcher

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

michal78/laravel-sms-catcher
============================

A development-only inbox for inspecting Laravel SMS notifications.

v1.2.0(1mo ago)17841↑223.1%MITBladePHP ^8.2

Since Oct 28Pushed 1mo agoCompare

[ Source](https://github.com/michal78/laravel-sms-catcher)[ Packagist](https://packagist.org/packages/michal78/laravel-sms-catcher)[ Docs](https://github.com/michal78/laravel-sms-catcher)[ RSS](/packages/michal78-laravel-sms-catcher/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (10)Dependencies (8)Versions (37)Used By (0)

[![Latest Stable Version](https://camo.githubusercontent.com/7f1d2b7c777552716342ffcc2a7bea3df13cf9da460d64e22e845952994d3690/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d696368616c37382f6c61726176656c2d736d732d636174636865722e737667)](https://packagist.org/packages/michal78/laravel-sms-catcher)[![Total Downloads](https://camo.githubusercontent.com/f85be3c8d94c42808a435a7e9e4385fd0c05df04fe022fa74d3082e69f6baa50/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d696368616c37382f6c61726176656c2d736d732d636174636865722e737667)](https://packagist.org/packages/michal78/laravel-sms-catcher)[![License](https://camo.githubusercontent.com/370536ba880f6318d1c736854a69372ff98bfb4cad1f756f4589fd508de7d5c5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6d696368616c37382f6c61726176656c2d736d732d636174636865722e737667)](https://packagist.org/packages/michal78/laravel-sms-catcher)[![Tests](https://github.com/michal78/laravel-sms-catcher/actions/workflows/tests.yml/badge.svg)](https://github.com/michal78/laravel-sms-catcher/actions/workflows/tests.yml)

Laravel SMS Catcher
===================

[](#laravel-sms-catcher)

A development-only Laravel package that captures SMS notifications and displays them in a beautiful, phone-inspired inbox – think Mailpit, but for your `sms` notification channel.

Screenshots
-----------

[](#screenshots)

### SMS Inbox Dashboard

[](#sms-inbox-dashboard)

[![SMS Catcher inbox showing a list of captured messages, light mode](docs/screenshots/inbox-light.png)](docs/screenshots/inbox-light.png)

[![SMS Catcher inbox showing a list of captured messages, dark mode](docs/screenshots/inbox-dark.png)](docs/screenshots/inbox-dark.png)

*The main inbox view displays all captured SMS messages with sender, recipient, and timestamp information, and supports light/dark themes.*

### Message Detail View

[](#message-detail-view)

[![SMS message detail view with phone-style preview](docs/screenshots/message-detail.png)](docs/screenshots/message-detail.png)

*Click any message to see the full details alongside a phone-style preview (with a device selector), making it easy to verify how your SMS will appear to recipients.*

Requirements
------------

[](#requirements)

- PHP 8.2+
- Laravel (`illuminate/support` and `illuminate/notifications`) 10.x, 11.x, 12.x, or 13.x

Installation
------------

[](#installation)

Require the package in your application as a dev dependency. Until a tagged release is published you will need to target the `dev-main` branch explicitly:

```
composer require --dev michal78/laravel-sms-catcher
```

The package is auto-discovered by Laravel, but you can manually register the service provider if you have discovery disabled:

```
// config/app.php
'providers' => [
    // ...
    SmsCatcher\SmsCatcherServiceProvider::class,
];
```

Configuration
-------------

[](#configuration)

By default the dashboard is only enabled when your application is running in the `local` environment or when `APP_DEBUG=true`. You can override this behaviour via the `SMS_CATCHER_ENABLED` environment variable.

Publish the configuration file if you would like to customise the dashboard path or storage location:

```
php artisan vendor:publish --tag=sms-catcher-config
```

This will create `config/sms-catcher.php` with the following options:

- `enabled`: Toggle the catcher on/off.
- `route.prefix`: URL prefix for the dashboard (defaults to `/sms-catcher`).
- `route.middleware`: Middleware stack wrapping the dashboard routes.
- `storage_path`: File that stores captured messages.

Usage
-----

[](#usage)

Trigger any Laravel notification that uses the `sms` channel and the payload will be recorded automatically. Visit the dashboard (default at `http://your-app.test/sms-catcher`) to see the inbox:

- Inbox view summarises each message.
- Click a message to view details and a phone-style preview.
- Clear individual messages or wipe the entire inbox.

Messages are stored as JSON within your application's storage folder (`storage/logs/sms-catcher.json`). The file is safe to delete; it will be recreated as new messages arrive. Since the `storage/logs` directory is typically excluded from version control in Laravel applications, the captured messages will not be committed to your repository.

> **Note**: The catcher inspects notifications by invoking their `toSms` method. Ensure your notifications implement this method and return either a string, array, or object containing the text body.

Security
--------

[](#security)

This package is intended for local development only. Do not enable it in production environments.

Development
-----------

[](#development)

Install dependencies and run the test suite, code style checks, and static analysis locally:

```
composer install
composer test          # PHPUnit
composer format:test   # Laravel Pint (--test)
composer format         # Laravel Pint (auto-fix)
composer analyse        # PHPStan / Larastan
```

These same checks run automatically on every push and pull request via GitHub Actions (see `.github/workflows`).

Changelog
---------

[](#changelog)

Please see [CHANGELOG.md](CHANGELOG.md) for recent changes.

Contributing
------------

[](#contributing)

Issues and pull requests are welcome. Please run `composer test`, `composer format:test`, and `composer analyse` before submitting a PR.

License
-------

[](#license)

The MIT License (MIT). Please see [LICENSE](LICENSE) for more information.

###  Health Score

50

—

FairBetter than 95% of packages

Maintenance90

Actively maintained with recent releases

Popularity27

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 60.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~18 days

Recently: every ~58 days

Total

15

Last Release

47d ago

PHP version history (2 changes)v1.0.0PHP ^8.1

v1.1.3PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/27c8fa2ab59c3e8cbaf0c8d4638b6f2b16cf6104ad54e568824eeab753bd0d59?d=identicon)[michal78](/maintainers/michal78)

---

Top Contributors

[![michal78](https://avatars.githubusercontent.com/u/239061?v=4)](https://github.com/michal78 "michal78 (37 commits)")[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (24 commits)")

---

Tags

laraveldebuggingnotificationssmsdevelopmentmailpit

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/michal78-laravel-sms-catcher/health.svg)

```
[![Health](https://phpackages.com/badges/michal78-laravel-sms-catcher/health.svg)](https://phpackages.com/packages/michal78-laravel-sms-catcher)
```

###  Alternatives

[laravel/cashier

Laravel Cashier provides an expressive, fluent interface to Stripe's subscription billing services.

2.6k31.8M161](/packages/laravel-cashier)[spatie/laravel-health

Monitor the health of a Laravel application

88212.7M188](/packages/spatie-laravel-health)[emargareten/inertia-modal

Inertia Modal is a Laravel package that lets you implement backend-driven modal dialogs for Inertia apps.

90157.6k](/packages/emargareten-inertia-modal)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1239.7k25](/packages/fleetbase-core-api)[forjedio/inertia-table

Backend-driven dynamic tables for Laravel + Inertia.js

272.0k](/packages/forjedio-inertia-table)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.8k](/packages/tomshaw-electricgrid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
