Open Markdown text in a new tab

Global search

Global search covers two different kinds of thing from one input. Live records come from the server, which is where models, plugins, hardware devices, conversations, prompts, and files come from, while fixed destinations inside the WebUI are assembled in your browser out of the pages, configuration paths, help sections, dialogs, and power actions your account is allowed to reach. Everything you see is filtered to what you may read or run, and the two halves arrive at slightly different moments, so a result list can grow for a second after the first matches appear.

Search from the header

The search control sits in the header of every page except the Search page, which hides it because that page has its own. Select it to expand the input and start typing. SoAI does nothing until you have entered 2 characters, then waits 300 ms after your last keystroke before it searches, so the panel settles instead of flickering. The dropdown holds up to 10 catalog matches and adds up to 10 file matches when the file search returns, which runs separately and usually lands a moment later.

The button's label tracks its state: Open search while collapsed, Close search once expanded and empty, and Search as soon as the input holds a query, so selecting it with a query submits rather than closes.

Use ArrowDown and ArrowUp to move through the suggestions and Enter to open the highlighted one. Pressing Enter with nothing highlighted opens the Search page carrying the query instead, and Escape closes the panel and clears the input. There is no keyboard shortcut that opens the search control itself.

On a small screen, meaning a viewport 900 px wide or narrower or shorter than 640 px, the header search does not expand at all. Selecting it opens a browser prompt titled Search..., submitting a query goes straight to the Search page, and cancelling leaves the current page untouched.

The Search page

The page opens on All results and offers 11 further tabs: Models, Plugins, Hardware, Files, Conversations, Prompts, Configuration, Help, Modals, Power actions, and Recent searches. All of them are always present, and each carries a count for the current query, so an empty tab tells you the query found nothing in that category rather than that the category is unavailable to you. Page results such as Chat, Models, or Settings have no tab of their own and appear only under All results.

The page does not trim the merged list the way the dropdown does, and it asks for up to 200 file matches rather than 10, so it is the place to go when the suggestion panel cut something off.

Recent searches

SoAI keeps your last 50 queries and stores them with your account preferences rather than in the browser, so the list follows you to another browser or device. Select one to run it again, or Clear all to empty it. Personal preferences covers the rest of what travels with an account.

What a result opens

A model opens its detail page and a plugin opens the Plugins page. A hardware result opens Hardware focused on that component, including the GPU index or the disk and network interface it names. A configuration result opens Settings, either on the tab it belongs to or scrolled to the exact path when the result is one. Help opens that section of Help, and a dialog result opens the owning page with the dialog already up, so Add model, Add plugin, Create automation, Add server for MCP, and Chat configuration are each one selection away from anywhere. A power action opens Power with that action chosen. A conversation opens in Chat, a prompt opens its preview, and a file opens its content preview, falling back to File explorer with the entry highlighted when the preview cannot open.

Results are navigation, not copies of the resource, so opening one still enforces the destination's permissions and its current state.

Search by identifier

A configuration path is searchable as itself, so pasting TOOLS.RAG.DEFAULT_TOP_K goes straight to that setting. Dots and underscores are treated as separators rather than characters to match, which means the tail of a path finds it as well: DEFAULT_TOP_K or default top k both reach the same entry, and a fragment such as DEFAULT_TOP brings back every path containing it. An exact path outranks a tail, and a tail outranks a fragment, so the more of the path you type the closer the setting moves to the top. These entries exist only for an Administrator who can change configuration, which the next section covers.

Two pasted forms are handled on their own rather than ranked among everything else. A conversation identifier by itself returns that conversation and skips every other category, and a SoAI link token by itself resolves to the file or folder it points at, returning nothing when that path no longer exists.

File results match names, not contents, and the search walks the whole workspace from its root rather than the folder you happen to be viewing. Case is ignored. A query containing *, ?, or [abc] is treated as a glob pattern, and anything else is matched as a substring of the name.

What each category needs

The Search page itself only requires a signed-in session. Internal search access (SEARCH_READ) gates the endpoint behind models, plugins, hardware, conversations, and prompts, and Standard user accounts hold it by default. Without it those categories come back empty while pages, configuration, help, dialogs, and power actions keep working, because the browser builds them from what you can already reach.

Each family then applies its own permission. Models need Model read access (MODEL_READ), plugins need Plugin read access (PLUGIN_READ), hardware needs Hardware read access (HARDWARE_READ), and files need Files reading (FILE_EXPLORER_READ). Conversations and prompts are scoped to your own account and are returned only for a browser session. Configuration results list the Settings tabs you can open, while the individual configuration paths are added only for an Administrator with Configuration changes (CONFIG_PATCH). Power actions require an Administrator with System power control (SYSTEM_POWER), and a dialog appears only when you can reach both its page and its action, so Add plugin needs Plugin administration (PLUGIN_ADMIN).

One limit is worth knowing because it fails quietly: the search endpoint accepts at most 50 characters, and a longer query returns no live records at all while the browser-built categories still answer. Shorten the query if models or conversations you expected are missing.

Related documentation