Skip to main content

Built-in commands

The default set is theme, sidebar, profile, settings and logout. Commands appear only when their underlying feature is available: for example, a top-navigation layout has no desktop sidebar command, and a panel with forced dark mode has no theme switch.
Use builtInCommands([]) to remove all built-ins. Tenant switching is a source configured through tenants(), not another value in this list.
Command IDs must be unique within the configured command list. Use stable lowercase identifiers. Custom commands can replace a built-in with the same ID, so choose IDs deliberately.

Add a confirmed server action

The action is still a native Filament Action. closeOnSelect(false) keeps the search open for its dialog. An action’s own authorize() rules apply in addition to the command gate.

Decide where a command appears

Commands default to the root all context. context($id) selects a source; anyContext() allows every context. withinPath([...]) matches an exact nested path. preload(false) hides a command until there is query text.

Use a custom matching function

A custom filter owns command matching. Callbacks can receive user, panel, context, trail and query by those parameter names. The trail is a typed SearchContext; context is the current source ID.

Open another source

The target must be registered and accessible. Context data is validated and signed for navigation; authorize the records independently in the destination query. See Context navigation.
This explicitly permits the FLEX experience without a native provider. Automatic resource discovery depends on native global-search availability; register custom sources if you need additional data in this mode.