---
title: "Artisan commands — Alerts for Laravel | Roundly"
description: "Run a check on demand, list and inspect checks, print status for CI, prune run history and ended silences, and read the about section."
url: https://roundly-consulting.com/open-source/docs/alerts-for-laravel/commands
language: en
---

[All packages](https://roundly-consulting.com/open-source.md)

[Alerts for Laravel](https://roundly-consulting.com/open-source/docs/alerts-for-laravel.md)

# Artisan commands

```bash
php artisan alerts:check disk_usage_check                  # run one check now, pretty-print result
php artisan alerts:check disk_usage_check --notifiable='App\Models\Team:1'  # full side-effect path
php artisan alerts:list --tag=critical                     # inventory: key, name, frequency, last run, status, muted, tags
php artisan alerts:status --tag=db                         # status table, tag-filterable
php artisan alerts:prune-runs --days=30                    # prune run history (also auto-scheduled)
php artisan alerts:prune-silences --days=7                 # prune ended silences (also auto-scheduled)
```

| Command | Options | What it does |
| --- | --- | --- |
| `alerts:perform-health-checks` | — | Calls Health::runDue(): dispatches the configured job for every scheduled check that came due since the previous run (this minute on a first run), and prints how many it queued. A row whose cron cannot be evaluated is skipped and reported. |
| `alerts:check` | key, --notifiable=Model:id | Runs one registered check now and prints status, message, latency and meta. Exit 0 for ok/skipped, 1 for an alertable result or an unknown key. |
| `alerts:list` | \--tag= | Inventory of registered checks: key, name, frequency (or on demand), last run, worst status across owners, muted, tags. |
| `alerts:status` | \--tag= | Status table of every monitored check plus the overall status. Exits non-zero when anything is alertable. |
| `alerts:prune-runs` | \--days= | Calls Health::prune(): deletes runs older than the given days (default history.retention\_days). --days must be a whole number of at least 1 — anything else prints an error, exits non-zero and deletes nothing. Auto-scheduled daily when history is enabled. |
| `alerts:prune-silences` | \--days= | Calls Health::silences()->prune(): deletes silences that ended more than the given days ago (default silence-retention); open-ended, running and future ones are never touched. --days follows the same whole-number rule. Auto-scheduled daily while silence is on. |

## alerts:check

Without --notifiable it runs a pure probe: check() only, no side effects, under the same exception guard as a real run — a throwing check prints as a failed result. With --notifiable='App\\Models\\Team:1' the full alert, notify and history path runs through Health::for($owner)->run() — through that owner’s scheduled row, or an on-demand row that is never scheduled (see Running checks). An unknown key prints the registered keys and exits 1.

## alerts:list

Lists the registered checks, joined with their newest scheduled row, falling back to an on-demand row (shown as on demand). Frequencies are labelled from the check’s frequencies() map where possible. Status is the worst status of the check across every owner it runs for, so one owner’s failure never hides behind another’s healthy row. Muted? is yes when a global silence — one not scoped to an owner — matches the check key, any of its tags (the check’s or the row’s), or \*; a silence scoped to one owner mutes only that owner’s runs, so it doesn’t mark the line.

## php artisan about

The package adds an Alerts section: the four model classes, the number of registered checks, scheduling with its frequency, history and silences with their retention (Silences: ON (7 day retention)), the depth of the default escalation policy, and whether the health endpoint URI is the default. It never prints check classes, group names or the endpoint path.

```bash
php artisan about --only=alerts
```

## Show your open-source love

This package is free and MIT-licensed. If it saves you time, a one-off donation or a Patreon membership keeps it maintained, tested and documented.

[More ways to support, including crypto](https://roundly-consulting.com/support-us.md)

By donating, you agree to our [donation terms](https://roundly-consulting.com/donation-terms.md).

[Support our open source work (opens in a new tab)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Join us on Patreon (opens in a new tab)](https://www.patreon.com/cw/roundly)

## Want this built into your product?

We integrate our packages into custom Laravel and AI builds. Tell us what you're working on and we'll reply within 48 hours.

[Get a quote in 48 hours](https://roundly-consulting.com/contact.md) [Browse all packages](https://roundly-consulting.com/open-source/docs/alerts-for-laravel.md)
