PHPackages                             a-pb/horizon-ui - 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. [Queues &amp; Workers](/categories/queues)
4. /
5. a-pb/horizon-ui

ActiveLibrary[Queues &amp; Workers](/categories/queues)

a-pb/horizon-ui
===============

Enhanced UI for Laravel Horizon - adds job name search/filter to Pending, Completed, and Failed tabs.

v1.0.1(1mo ago)02↑2900%MITVuePHP ^8.2

Since Mar 24Pushed 1mo agoCompare

[ Source](https://github.com/a-pb/horizon-ui)[ Packagist](https://packagist.org/packages/a-pb/horizon-ui)[ Docs](https://github.com/a-pb/horizon-ui)[ RSS](/packages/a-pb-horizon-ui/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (2)Versions (3)Used By (0)

a-pb/horizon-ui
===============

[](#a-pbhorizon-ui)

Enhanced UI for Laravel Horizon — adds job name search/filter to **Pending**, **Completed**, and **Failed** job tabs.

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

[](#installation)

```
composer require a-pb/horizon-ui
```

The package auto-discovers its service provider. No additional configuration needed.

What it does
------------

[](#what-it-does)

This package extends the official `laravel/horizon` dashboard with job name filtering:

- **Pending Jobs** — search input to filter by job class name
- **Completed Jobs** — search input to filter by job class name
- **Failed Jobs** — search input to filter by job class name (alongside the existing tag search)

The search is case-insensitive and matches partial phrases. Results are debounced (500ms) for a smooth experience.

How it works
------------

[](#how-it-works)

1. **Controller overrides** — Registers enhanced versions of `PendingJobsController`, `CompletedJobsController`, and `FailedJobsController` that accept a `query` parameter and scan Redis for matching job names. When no `query` parameter is present, the original Horizon logic is used via `parent::index()`.
2. **Middleware JS swap** — A `SwapHorizonAssets` middleware (appended to the `horizon` middleware group) replaces the inlined `` block in Horizon's HTML response with our enhanced JS bundle that includes search UI components. No Blade views are overridden — Horizon's `layout.blade.php` is used as-is.
3. **Zero config** — Routes are registered with the same names as Horizon's originals, so Laravel's last-registered-wins behavior ensures our enhanced controllers handle the requests.

What is NOT overridden
----------------------

[](#what-is-not-overridden)

- Horizon's Blade views (layout, etc.)
- Horizon's CSS styles
- All other Horizon API routes (dashboard, metrics, batches, monitoring, etc.)
- Horizon's authentication and authorization logic

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

[](#requirements)

- PHP ^8.2
- Laravel ^11.0 | ^12.0
- Laravel Horizon ^5.0

Development — rebuilding the frontend
-------------------------------------

[](#development--rebuilding-the-frontend)

The `dist/app.js` bundle is pre-built and committed to the repository. To rebuild it after modifying files in `patches/`:

```
# Provide the path to the installed laravel/horizon package
HORIZON_PATH=/path/to/vendor/laravel/horizon ./build.sh
```

The build script:

1. Copies all JS sources from Horizon's vendor directory
2. Overlays modified Vue components from `patches/`
3. Runs Vite to produce `dist/app.js`
4. Cleans up the temporary source files

License
-------

[](#license)

MIT

###  Health Score

40

—

FairBetter than 87% of packages

Maintenance98

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~0 days

Total

2

Last Release

45d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2bb6bab11f6fec83c666b5f2841d35936ccbfd55a53ee3aa6c12b6b344f5d0e5?d=identicon)[a-pb](/maintainers/a-pb)

---

Top Contributors

[![a-pb](https://avatars.githubusercontent.com/u/72490717?v=4)](https://github.com/a-pb "a-pb (4 commits)")

---

Tags

searchlaraveluiqueuefilterdashboardjobshorizon

### Embed Badge

![Health badge](/badges/a-pb-horizon-ui/health.svg)

```
[![Health](https://phpackages.com/badges/a-pb-horizon-ui/health.svg)](https://phpackages.com/packages/a-pb-horizon-ui)
```

###  Alternatives

[croustibat/filament-jobs-monitor

Background Jobs monitoring like Horizon for all drivers for FilamentPHP

254255.2k6](/packages/croustibat-filament-jobs-monitor)[mpbarlow/laravel-queue-debouncer

A wrapper job for debouncing other queue jobs.

63714.4k1](/packages/mpbarlow-laravel-queue-debouncer)[harris21/laravel-fuse

Circuit breaker for Laravel queue jobs. Protect your workers from cascading failures.

3786.5k](/packages/harris21-laravel-fuse)[renoki-co/horizon-exporter

Export Laravel Horizon metrics using this Prometheus exporter.

24152.7k](/packages/renoki-co-horizon-exporter)[convenia/pigeon

3233.0k](/packages/convenia-pigeon)[mateffy/laravel-job-progress

Track and show progress of your background jobs (for progress bar UIs etc.)

451.2k](/packages/mateffy-laravel-job-progress)

PHPackages © 2026

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