PHPackages                             xuanpablo/filament-palette - 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. xuanpablo/filament-palette

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

xuanpablo/filament-palette
==========================

A Spotlight/CMD+K style command palette for quick navigation and actions across Filament panels.

v2.3.0(yesterday)05↑2900%MITPHPPHP ^8.4CI passing

Since Jun 8Pushed yesterdayCompare

[ Source](https://github.com/xuanpablo/filament-palette)[ Packagist](https://packagist.org/packages/xuanpablo/filament-palette)[ GitHub Sponsors](https://github.com/xuanpablo)[ RSS](/packages/xuanpablo-filament-palette/feed)WikiDiscussions main Synced yesterday

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

Filament Palette
================

[](#filament-palette)

[![Latest Version on Packagist](https://camo.githubusercontent.com/7767ca9b684faa07991d5decf2efddaeb13e290547a471520722b44ab43b3a1f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7875616e7061626c6f2f66696c616d656e742d70616c657474653f7374796c653d666c61742d737175617265)](https://packagist.org/packages/xuanpablo/filament-palette)[![Total Downloads](https://camo.githubusercontent.com/bde0a34ed9bee631737c3ec5202c391606de9fab472392a89fcbfc40247aa9aa/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7875616e7061626c6f2f66696c616d656e742d70616c657474653f7374796c653d666c61742d737175617265)](https://packagist.org/packages/xuanpablo/filament-palette)[![Licence](https://camo.githubusercontent.com/3bd899cb38d15baf276f64c25b73bf073f905dc1d4246967ad39254c7967b843/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7875616e7061626c6f2f66696c616d656e742d70616c657474653f7374796c653d666c61742d737175617265)](https://github.com/xuanpablo/filament-palette/blob/HEAD/LICENSE.md)

[![Filament Palette](public/screenshots/command-palette-light.png)](public/screenshots/command-palette-light.png)

A Spotlight/CMD+K style command palette for quick navigation and actions across Filament panels.

> Fuzzy search with match highlighting, recent commands, and full keyboard navigation — adapts to your panel's primary colour in both light and dark mode.

Features
--------

[](#features)

- **Keyboard shortcut**: Press `Cmd+K` (Mac) or `Ctrl+K` (Windows/Linux) to open
- **Quick navigation**: Jump to any page, resource, or navigation item
- **Fuzzy search**: Results are scored, ranked, and the matched characters are highlighted
- **Recent commands**: Recently used commands are remembered per panel and shown first
- **Keyboard-first**: Arrow keys (with wrap-around), `Home`/`End`, `Enter` to open, `Esc` to close, plus an on-screen hint footer
- **Rich results**: Optional descriptions and extra search keywords per command
- **Authorization-aware**: Only shows pages and resources the current user can actually access (respects `canAccess()` / `canCreate()`)
- **SPA navigation**: Results navigate via Filament's `wire:navigate` for instant transitions
- **Accessible**: Focus trap, scroll lock, focus restoration, and `prefers-reduced-motion` support
- **Translatable**: All UI strings ship through a publishable language file
- **Theme-aware**: Adapts to your panel's primary colour and looks great in light and dark mode
- **Optional topbar button**: Click to open from the topbar

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

[](#installation)

```
composer require xuanpablo/filament-palette
```

Setup
-----

[](#setup)

Register the plugin in your Filament panel provider:

```
use Xuanpablo\CommandPalette\CommandPalettePlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            CommandPalettePlugin::make(),
            // ...
        ]);
}
```

Upgrading from 1.x to 2.0
-------------------------

[](#upgrading-from-1x-to-20)

The package name is unchanged (`xuanpablo/filament-palette`), but the PHP namespace and entry-point classes were renamed. Update your imports:

```
- use Xuanpablo\FilamentPalette\FilamentPalettePlugin;
+ use Xuanpablo\CommandPalette\CommandPalettePlugin;

- ->plugins([FilamentPalettePlugin::make()])
+ ->plugins([CommandPalettePlugin::make()])
```

If you reference other classes (e.g. `CommandItem`), swap the namespace prefix `Xuanpablo\FilamentPalette\` → `Xuanpablo\CommandPalette\`. The config file/key, view namespace, publish tags, and translations are unchanged, so published config and views need no changes.

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

[](#configuration)

Publish the config file (optional):

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

Options in `config/filament-palette.php`:

- `key_bindings`: Keyboard shortcuts (default: `['mod+k']`)
- `show_topbar_button`: Show a trigger affordance in the topbar (default: `true`). When global search is **disabled** this is a full search-style button; when global search is **enabled** it becomes a compact `⌘K` hint embedded in Filament's global-search field.
- `show_topbar_button_when_global_search_enabled`: Show the full standalone button (instead of the compact hint) even when global search is enabled, giving two side-by-side controls (default: `false`)
- `max_results`: Max results shown while searching (default: `10`)
- `placeholder`: Search input placeholder text (default: `null`, falls back to the translatable default)
- `show_footer`: Show the keyboard-hint footer (default: `true`)
- `show_recent`: Remember and surface recently used commands (default: `true`)
- `recent_limit`: How many recent commands to keep (default: `5`)
- `include_global_search_results`: Also show matching records from the panel's global search provider as you type (default: `false`). Adds a debounced server round-trip per search; requires a global search provider. Tune with `global_search_results_limit` (default `10`) and `global_search_debounce_ms` (default `300`).
- `include_publish_views_command`: Show "Publish views" in the command palette (default: `true`)
- `custom_commands`: Array of closures returning `CommandItem[]` for extensibility

Publishing Views
----------------

[](#publishing-views)

You can publish the package views to customize the command palette layout, styling, and behavior. Published views go to `resources/views/vendor/filament-palette/` and can be edited freely.

**From the command palette:** Open the palette (Cmd+K), search for "Publish views", and select it to open a page with a one-click publish button.

**From the terminal:**

```
php artisan filament-palette:publish-views
```

Or using Laravel's vendor publish directly:

```
php artisan vendor:publish --tag=filament-palette-views
```

Use `--force` to overwrite existing published views.

Custom Commands
---------------

[](#custom-commands)

Add custom commands via config:

```
use Xuanpablo\CommandPalette\Support\CommandItem;

'custom_commands' => [
    fn () => [
        CommandItem::make('My Action', '/my-url', 'Custom'),

        // Richer item with a description (second line) and extra search keywords
        CommandItem::make('Billing', '/admin/billing')
            ->group('Finance')
            ->description('Manage invoices and payments')
            ->keywords(['invoices', 'payments', 'subscriptions']),

        // Action command: dispatches a browser event instead of navigating
        CommandItem::action('Toggle dark mode', 'toggle-theme', ['mode' => 'dark']),
    ],
],
```

### Action commands

[](#action-commands)

Use `CommandItem::action()` (or `->dispatch()` on any item) to run something instead of navigating. Selecting it fires a browser `CustomEvent`; the payload arrives as `event.detail`. Listen from JavaScript:

```
window.addEventListener('toggle-theme', (e) => { /* e.detail.mode */ });
```

or, for server-side handling, from a Livewire component:

```
#[\Livewire\Attributes\On('toggle-theme')]
public function toggleTheme(array $detail): void { /* … */ }
```

Available `CommandItem` methods: `->group()`, `->icon()`, `->description()`, `->keywords()`, `->openInNewTab()`, and `->dispatch()`. Factories: `CommandItem::make($label, $url)` for navigation and `CommandItem::action($label, $event, $data)` for actions.

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

[](#authorization)

Auto-discovered pages and resources are filtered by Filament's authorization gates: pages and resources are only shown when `canAccess()` returns `true`, and the "Create" entry only appears when `canCreate()` passes. Gates that throw are treated as denied (fail-closed). Custom commands you add via `custom_commands` are your responsibility to guard.

Translations
------------

[](#translations)

All UI strings live in a publishable language file:

```
php artisan vendor:publish --tag=filament-palette-translations
```

Then edit `lang/vendor/filament-palette/{locale}/filament-palette.php`.

Bundled locales: English (`en`), Chinese Simplified (`zh_CN`), Hindi (`hi`), Spanish (`es`), Portuguese – Brazil (`pt_BR`), Japanese (`ja`), Russian (`ru`), German (`de`), French (`fr`), and Korean (`ko`). Filament picks the active locale from `app()->getLocale()`.

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

[](#requirements)

- PHP 8.4+
- Filament v5
- Laravel 13

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

[](#screenshots)

Searching, with fuzzy match highlighting (light mode):

 [![Command palette searching, light mode](public/screenshots/command-palette-light.png)](public/screenshots/command-palette-light.png)

Recent commands on an empty search (dark mode):

 [![Command palette recent commands, dark mode](public/screenshots/command-palette-dark.png)](public/screenshots/command-palette-dark.png)

License
-------

[](#license)

MIT

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance100

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity57

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

11

Last Release

1d ago

Major Versions

v1.1.2 → v2.0.02026-06-08

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3788045?v=4)[Paul Millar](/maintainers/xuanpablo)[@xuanpablo](https://github.com/xuanpablo)

---

Top Contributors

[![xuanpablo](https://avatars.githubusercontent.com/u/3788045?v=4)](https://github.com/xuanpablo "xuanpablo (18 commits)")

---

Tags

phplaravelcommandfilamentfilamentphppalettecmdspotlightxuanpablo

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/xuanpablo-filament-palette/health.svg)

```
[![Health](https://phpackages.com/badges/xuanpablo-filament-palette/health.svg)](https://phpackages.com/packages/xuanpablo-filament-palette)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3325.1M337](/packages/psalm-plugin-laravel)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3913.7k](/packages/rawilk-profile-filament-plugin)[dotswan/filament-map-picker

Easily pick and retrieve geo-coordinates using a map-based interface in your Filament applications.

127173.7k3](/packages/dotswan-filament-map-picker)[bezhansalleh/filament-google-analytics

Google Analytics integration for FilamentPHP

208175.5k8](/packages/bezhansalleh-filament-google-analytics)[tapp/filament-google-autocomplete-field

Filament plugin that provides a Google Autocomplete field

30122.2k](/packages/tapp-filament-google-autocomplete-field)[stephenjude/filament-jetstream

A Laravel starter kit built with Filament inspired by Jetstream.

17758.9k2](/packages/stephenjude-filament-jetstream)

PHPackages © 2026

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