Open Source / laravel-swarm-filament
See what your swarms did.
A read-only Filament panel for Swarm. Every run becomes a topology-aware flow graph you can click through — inputs, outputs, tokens, timing, retries, and memory, step by step. It reads your persisted run data; it never touches it.
Install
composer require builtbyberry/laravel-swarm-filament
At a glance
Companion · MIT
Requires — Filament v5 · PHP 8.5+
Pairs with — laravel-swarm ^0.19
Surface — Read-only observability
Access — Deny-by-default gate
Namespace — BuiltByBerry\LaravelSwarmFilament
Why it exists
Swarm records everything. This gives it a face.
Swarm persists every step, tool call, and retry so agentic work is auditable by default. That data is only as useful as it is legible.
This panel turns the audit trail into something an operator can actually read — inside the Filament admin your team already runs, with no separate dashboard to stand up.
01
Run-centric
Navigation is Runs and Health — nothing else. Durable execution, memory, streaming, audit, and artifacts are facets of a run, not scattered tables.
02
Read-only by design
It observes; it never mutates. Pause, resume, and cancel are deliberately out of scope, so nothing here can change a running workflow.
03
Native to your panel
A Filament v5 plugin — same auth, same panel, same conventions. Register it and the surfaces appear.
What you see
The whole run, from the strip down to the step.
Flow graph
The topology, drawn from the data
A server-computed SVG that follows the run's real shape — route plan, durable branches and child runs, then run history, richest view first. Sequential, parallel, or hierarchical, it renders what actually happened.
Per-node detail
Click any step, see everything
Input to output, tokens, duration, attempts, the tools it called, and the memory it wrote or could see — as chips on the node. The detail is one click from the graph.
Stats strip
Insight before the table
The runs index leads with the numbers that matter — total runs, what needs attention, p50 latency, tokens — so the state of your agents reads at a glance.
Health
Is the system behaving
A second surface for the shape of things across runs — so "are the agents healthy" is a page, not a query you write against the database.
The trust surface
A window, not a lever.
Observability that reads production data has to earn its access. This one is built to. It reads through Swarm's public display contracts — never a mutating call, never the internal cipher.
Reads through contracts
Sources persisted run data through core's public read interfaces only. It cannot write, and it cannot reach the sealed internals.
Deny-by-default access
Every surface sits behind a viewSwarmObservability gate. Nobody sees a run until you say who can.
Sealed values stay masked
Encrypted payloads route through a single display chokepoint that masks ciphertext at any nesting depth — no accidental leak into a view.
Octane-safe
No process-global mutable state. Safe under Octane and concurrent in-process runs, like the core it reads from.
Get started
Three steps to a runs view.
You need a Filament v5 panel and laravel-swarm ^0.19 with database persistence enabled. The plugin reads what Swarm already stores — no tables and no migrations of its own.
Step 01
Install
Pull the package in with Composer.
composer require builtbyberry/laravel-swarm-filament
Step 02
Register the plugin
Add it to your Filament panel provider. The Runs and Health pages appear in the panel.
use BuiltByBerry\LaravelSwarmFilament\SwarmFilamentPlugin;
public function panel(Panel $panel): Panel
{
return $panel->plugin(SwarmFilamentPlugin::make());
}
Step 03
Authorize access
Access is deny-by-default. Grant it with the viewSwarmObservability gate — nobody sees a run until you say who can.
use Illuminate\Support\Facades\Gate;
Gate::define('viewSwarmObservability', fn ($user) => $user->is_admin);
To change the ability or turn the gate off, publish the config with php artisan vendor:publish --tag=swarm-filament-config and edit config/swarm-filament.php. Full setup lives in the README.
Part of Swarm
The first companion to the framework.
laravel-swarm-filament reads what laravel-swarm persists. Start with the framework, add the panel when you want to see it work — and watch this space for the companions that follow.