Download the PHP package ifsware/filament-omnisearch without Composer

On this page you can find all versions of the php package ifsware/filament-omnisearch. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package filament-omnisearch

Filament Omnisearch

A keyboard-first command palette for Filament v5. Press ⌘K / Ctrl+K from anywhere in your panel to instantly search navigation items, database records, resource actions, and custom commands — without leaving your current page.

Think of it as Spotlight or VS Code's command palette, built specifically for Filament. It replaces (or complements) Filament's native global search with a unified interface that covers everything: navigation, records, panel switching, page-specific actions, and any custom scope you register.

Preview

Features

Requirements

Installation

Register the plugin in your Filament panel provider:

Publish the config file:


What Works Out of the Box

After installation and registration, opening the omnisearch palette (⌘K / Ctrl+K) gives you five built-in scopes automatically.

1. Navigation Scope

Searches all visible navigation items registered in the current panel. No configuration needed — every item in your sidebar is immediately searchable.

2. Resource Scope

Searches records across all resources that have Filament's global search enabled. A resource is searchable only when it declares at least one of:

Minimal example — make a resource record searchable:

With detail fields shown in the preview panel:

If $recordTitleAttribute is not set and getGlobalSearchResultDetails() is not implemented, the resource will not appear in omnisearch results.

Scoping Resource Search Results

OmnisearchResourceScope uses Filament's built-in global search under the hood. For each searchable resource it calls getGlobalSearchEloquentQuery(), which by default delegates to getEloquentQuery().

This means your existing getEloquentQuery() scope is inherited by omnisearch — but only if it is always applied. If the scope is conditional (e.g. based on user role), omnisearch may bypass it when the condition is not met.

The safest approach is to override getGlobalSearchEloquentQuery() explicitly in your resource:

With this setup:

Multi-panel apps — if the same model is exposed in multiple panels (e.g. an admin panel and a customer portal), each panel's Resource class is independent. Apply scoping only in the portal resource; leave the admin resource untouched.

3. Panel Scope

Lists other Filament panels the authenticated user has access to. Useful in multi-panel applications (e.g. admin + customer portal). Results appear even without a search query, so users can switch panels from the palette.

Panel visibility requires FilamentUser. The panel scope checks access by calling canAccessPanel() on the authenticated user. This method is only available when your User model implements Filament\Models\Contracts\FilamentUser. Without it, the scope falls back to app()->environment('local') — meaning all panels are visible to all users in local development regardless of their role.

To correctly restrict panel visibility, implement FilamentUser and define canAccessPanel():

4. Action Scope

Shows global actions registered on the plugin (see Global Actions below). Actions appear without a search query so they are always discoverable.

5. Page Actions Scope

Automatically discovers Create and List actions for every resource whose pages use the HasOmnisearchPageActions trait. Unlike the per-page chip, these results appear in search results from any page — not only when the user is currently on that resource's page.


Global Actions

Register application-level actions on the plugin using OmnisearchAction. Actions appear in the Actions group and can run any PHP callable.

OmnisearchAction fluent API:

Method Description
title(string) Display title in the palette
subtitle(string) Secondary text below the title
icon(string) Heroicon name, e.g. heroicon-o-bolt
keywords(array) Extra words used for fuzzy matching
shortcut(string) Keyboard shortcut — shown as a badge in the result and registered as an active hotkey (see Keyboard Shortcuts)
action(callable) PHP callable invoked when the action is executed

Page Actions

Add HasOmnisearchPageActions to a resource page to expose Create and List actions in two places:

  1. Topbar chip — shown while the user is on that page, for quick one-click access
  2. Search results — available from any page via OmnisearchPageActionsScope (see built-in scopes)

You only need to add the trait to one page per resource (typically the list page). The OmnisearchPageActionsScope scans all resource pages automatically, so Create/List actions will appear in search results regardless of which page the user is currently on.

When the page is active, omnisearch will show in the topbar:

Adding Custom Page Actions

Override getOmnisearchActions() to inject page-specific actions alongside the auto-detected ones. A shortcut key registers an active keyboard hotkey — but only while the user is on that page:

For a shortcut that works from every page, register the action via OmnisearchPlugin::make()->actions([...]) instead — global actions are always mounted.


Custom Scopes

Implement OmnisearchScope to add any results you want. Each item must have a type of url, action, or modal.

URL item — navigates to a page

Action item — runs a PHP callable server-side

Modal item — opens a Livewire modal

Clipboard item — copies text to the clipboard

When selected, the value in text is written to the clipboard via the browser's Clipboard API. The item icon briefly changes to a checkmark, then the palette closes automatically.

OmnisearchAction also supports clipboard via the fluent API:

Register the scope

Add it to config/omnisearch.php:


Configuration

Plugin options


Multilingual Support

Filament Omnisearch ships with built-in translations for English (default), Indonesian, and Dutch. All UI strings — including placeholders, group labels, empty state messages, and footer shortcuts — are translatable.

Publish translations

This copies the language files to resources/lang/vendor/omnisearch/{en,id,nl}/. Edit them to customize wording or add new locales.

Override via config

You can still override specific strings globally via config/omnisearch.php. When a config value is set to a non-empty string, it takes precedence over the translation file.

Adding a new language

  1. Copy resources/lang/en/omnisearch.php
  2. Place it under resources/lang/vendor/omnisearch/{locale}/omnisearch.php
  3. Translate the values

No code changes are required — Laravel's localization system will pick up the new locale automatically.


Keyboard Shortcuts

Built-in

Key Action
⌘K / Ctrl+K Open omnisearch
Escape Close omnisearch
↑ / ↓ Navigate results
↵ Execute selected result

Custom action shortcuts

Shortcuts defined via ->shortcut() or the shortcut key in an item array are active hotkeys — pressing them executes the action directly without opening the palette first.

Scope of custom shortcuts:

Where defined Active
OmnisearchPlugin::make()->actions([...]) All pages, always
getOmnisearchActions() on a page Only while on that page

Shortcut format — use +-separated modifiers followed by a key:

mod resolves to Cmd on Mac and Ctrl on Windows/Linux. Other modifiers: ctrl, meta, shift, alt.

Avoid browser-reserved shortcuts. Common conflicts: mod+shift+n (new incognito, Chrome), mod+shift+p (private window, Firefox), mod+shift+j (DevTools console), mod+shift+i (DevTools). Browser UI shortcuts are captured before the page sees them and cannot be overridden with preventDefault().


Testing

License

MIT


All versions of filament-omnisearch with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
filament/filament Version ^5.0
livewire/livewire Version ^4.0
spatie/laravel-package-tools Version ^1.16
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package ifsware/filament-omnisearch contains the following files

Loading the files please wait ...