PHPackages                             builtbyberry/laravel-swarm-filament - 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. [Admin Panels](/categories/admin)
4. /
5. builtbyberry/laravel-swarm-filament

ActiveLibrary[Admin Panels](/categories/admin)

builtbyberry/laravel-swarm-filament
===================================

Free, read-only Filament observability panel for Laravel Swarm — inspect swarm runs, steps, durable state, memory, streaming, and audit health from your app's Filament panel.

v0.2.1(1mo ago)321↓80%1MITPHPPHP ^8.5CI passing

Since Jul 10Pushed 1mo agoCompare

[ Source](https://github.com/builtbyberry/laravel-swarm-filament)[ Packagist](https://packagist.org/packages/builtbyberry/laravel-swarm-filament)[ Docs](https://swarm.builtbyberry.com)[ RSS](/packages/builtbyberry-laravel-swarm-filament/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (3)Dependencies (30)Versions (4)Used By (0)

Laravel Swarm — Filament
========================

[](#laravel-swarm--filament)

Free, read-only [Filament](https://filamentphp.com) observability panel for [Laravel Swarm](https://github.com/builtbyberry/laravel-swarm) — inspect swarm runs, steps, durable state, memory, streaming, and audit-outbox health directly from your app's Filament panel.

> **View-only by design.** This package surfaces run data through Swarm's public read-only contracts (`InspectsDurableRuns`, `ReadableRunHistoryStore`, `ReadableAuditOutbox`, added in laravel-swarm v0.19). Every sealed field is display-decrypted per row — honoring `swarm.persistence.decrypt_failure_policy`, degrading an undecryptable value to a marked "unavailable" rather than throwing or leaking ciphertext — and no read ever mutates state. Operator control (pause/resume/cancel) lives in the separate paid operator console.

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

[](#requirements)

- PHP 8.5+
- Filament 5.x
- `builtbyberry/laravel-swarm` ^0.19 || ^0.20

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

[](#installation)

```
composer require builtbyberry/laravel-swarm-filament
```

Add the plugin to a Filament panel:

```
use BuiltByBerry\LaravelSwarmFilament\SwarmFilamentPlugin;

public function panel(Panel $panel): Panel
{
    return $panel->plugin(SwarmFilamentPlugin::make());
}
```

Optionally publish the config to customize the navigation group/sort and the authorization ability:

```
php artisan vendor:publish --tag=swarm-filament-config
```

Authorization
-------------

[](#authorization)

Access is **deny-by-default**. Every surface — resources, pages, and widgets — authorizes against a configurable [Gate](https://laravel.com/docs/authorization#gates)ability before it renders or appears in navigation:

```
// config/swarm-filament.php
'authorization' => [
    'ability' => 'viewSwarmObservability',
],
```

**You must define that Gate in your application to grant access.** Absent a Gate definition (or an authenticated user), the ability is denied and the surfaces stay hidden:

```
use Illuminate\Support\Facades\Gate;

Gate::define('viewSwarmObservability', fn ($user) => $user->is_admin);
```

To turn the package gate off entirely, set the ability to `null` (or `''`). Every surface then becomes visible to **any user who can reach the Filament panel** — these hooks *are* the resource's authorization, so this grants access rather than deferring to a per-resource policy. Use it only when the panel itself is already suitably locked down:

```
'authorization' => ['ability' => null],
```

The gate is applied in exactly one place per surface kind — resources through `SwarmResource`, pages through `SwarmPage`, widgets through `SwarmWidget` — so authorization cannot drift surface-to-surface.

Surfaces
--------

[](#surfaces)

The information architecture is run-centric: the run is the hero object, so the navigation has just two destinations, both read-only and grouped under the configured navigation group (default `Swarm`):

- **Runs** — a filterable/sortable index of swarm runs with a per-run detail view. The detail view tells the whole story of one run: status, topology, context, output, and the step timeline, with durable execution, memory, streaming, and audit folded in as facets of that run rather than separate destinations:
    - **Durable execution** — lifecycle markers, parallel branches, child runs, hierarchical node outputs, waits, signals, progress, and run history.
    - **Memory** — agent memory snapshots (policy-filtered at freeze time), with redacted values shown as a clear marker.
    - **Streaming** — the per-node timeline of the append-only causal log, with void-edge markers.
    - **Audit** — the per-run audit trace, plus payload detail decrypted on demand (with a clean empty-state when no readable audit sink is bound).
- **Health** — a pass/fail/degraded readiness view of the durable and audit persistence lanes (a page plus a companion widget), including a non-consuming outbox health check that coexists with the `swarm:relay` drainer.

Sealed payloads are display-decrypted per field by laravel-swarm core; an undecryptable value renders as `unavailable`, never as `sw0:` ciphertext.

License
-------

[](#license)

MIT © [Daniel Berry / Built by Berry](https://builtbyberry.com)

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance92

Actively maintained with recent releases

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity43

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 ~4 days

Total

3

Last Release

39d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1000887?v=4)[Daniel Berry](/maintainers/dberry37388)[@dberry37388](https://github.com/dberry37388)

---

Top Contributors

[![dberry37388](https://avatars.githubusercontent.com/u/1000887?v=4)](https://github.com/dberry37388 "dberry37388 (75 commits)")

---

Tags

agentsaifilamentfilament-pluginlaravellaravel-swarmobservabilityswarmlaravelaifilamentagentsobservabilityswarm

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/builtbyberry-laravel-swarm-filament/health.svg)

```
[![Health](https://phpackages.com/badges/builtbyberry-laravel-swarm-filament/health.svg)](https://phpackages.com/packages/builtbyberry-laravel-swarm-filament)
```

###  Alternatives

[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3915.5k](/packages/rawilk-profile-filament-plugin)[defstudio/telegraph

A laravel facade to interact with Telegram Bots

818355.4k3](/packages/defstudio-telegraph)[harris21/laravel-fuse

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

46273.9k](/packages/harris21-laravel-fuse)[mradder/filament-logger

Audit logging, activity tracking, exports, alerts, and dashboards for Filament admin panels.

2324.4k1](/packages/mradder-filament-logger)[finity-labs/fin-mail

A powerful email template manager and composer for Filament with dynamic token replacement, template versioning, and inline email sending.

316.8k2](/packages/finity-labs-fin-mail)[stephenjude/filament-jetstream

A Laravel starter kit built with Filament inspired by Jetstream.

17861.9k3](/packages/stephenjude-filament-jetstream)

PHPackages © 2026

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