VisuaLeaf Command Palette
The Command Palette is VisuaLeaf's global, keyboard-first launcher. Press Ctrl+K on Windows/Linux or Cmd+K on macOS, start typing, and hit Enter to run the top match. It searches every action, every collection or table across your live connections, every saved item, and every navigation destination in one flat, virtualized list.
Three steps to reach anything in VisuaLeaf:
The palette merges several source lists into a single search surface, so anything you would normally hunt for in a menu, a sidebar, or a tab is one keystroke away:
Rows are grouped under category headers. The order the palette ships with is:
| Category | What it contains |
|---|---|
| Collections / Tables | Every MongoDB collection and SQL table across your live connections. Description shows connection • database so you can disambiguate collections with the same name. Promoted to the top of the palette so the most common navigation lands first. |
| Create | New Tab, New Connection, Create Database, Create Collection, Edit & Query Data, New Shell Script, Create Aggregation, Create Chart, Manage Indexes, DB Schema, JSON Schema, Task Manager. Each item is gated by the matching license feature and shown only when available. |
| Navigation | Top-icon destinations from the side bar — Connection Manager, My Files, Web User Management, User Files (admin), Group Management, User Management, Compare, Mongo Sync, DB Schema, JSON Schema, Query Profiler. |
| Saved Items | Saved Queries, Saved Scripts, Saved Charts, Saved Dashboards — the same four entries you get from the sidebar's saved-items three-dot menu. |
| Workspace | Manage Workspaces (when at least one workspace exists) and Clear Recent Activities (only when there is something to clear). |
| Settings | Open Settings, Switch to Light / Dark Mode, See Keyboard Shortcuts. |
| Account | Sign In when signed out, Logout when signed in. |
A host can hand the palette per-category soft caps via inputCategoryLimits. When no query is typed, categories over their cap render a "Show N more" button at the end; expanding a category toggles to "Show less". Typing anything turns collapse off — every match is shown so users never miss a hit behind the cap.
Collection and table rows show a horizontal strip of quick-nav chips on the right. Instead of running the row's default action (open the collection), each chip jumps to a specific view of that same collection.
db.getCollection("<name>").find({}) ready to run.SELECT * FROM <table>;.Each chip strip is independently scrollable. The palette remembers the horizontal scroll position of every strip per row id via the PaletteScrollMemoDirective, so a row you scrolled into and back out of comes back at the same chip — even after CDK virtual scrolling has recycled its DOM node.
Every row in the results list has a fixed height (44 px) so the CDK virtual scroll viewport can position thousands of rows without measuring each one. There are five row kinds:
| Row kind | Purpose |
|---|---|
header |
Small uppercase category label sitting above its items. |
item |
A regular result row: icon tile, label, optional description, optional shortcut hint, optional sub-action chips. |
more |
"Show N more" button emitted only when a category is over its soft cap and no query is active. |
less |
"Show less" button emitted after a category has been expanded. |
empty |
Rendered when no rows match the current query. Shows No commands match "<query>". |
Every palette item carries the same shape:
id — stable key used for tracking and for the sub-action scroll memo.label — the primary text.category — which header the row appears under.description — optional subtitle rendered under the label.icon — a Font Awesome class, paired with iconBg and iconColor (Tailwind classes) for the icon tile.shortcut — display-only hint on the right of the row, e.g. ⌘+N.keywords — extra search terms so a query can hit an item that doesn't include the query in its label. For example, "New Connection" also matches "mongo", "sql", "postgres", "cluster", or "uri".action — the function run when the row is selected.actions — optional list of sub-action chips (see above).Typing filters against the item's label, category, description, and its keywords array. Because keywords are curated per item, you can find things by intent instead of by exact wording — "night" and "day" both find the theme toggle, "cheatsheet" finds the keyboard-shortcuts modal, "etl" finds Task Manager.
The same component runs in two contexts. In modal mode (Ctrl+K) it renders inside a full-screen backdrop that closes on Esc or click-outside. When mounted with [embedded]="true", the backdrop is stripped and the palette becomes a plain block a host can drop into any layout — that is how the Blank Activity page reuses the palette body for its inline results dropdown. In embedded mode:
[inputItems], per-category caps via [inputCategoryLimits], and the placeholder via [inputPlaceholder].(run) to the host instead of closing a modal — the host decides what to do with the tab or panel.The results list uses the Angular CDK cdk-virtual-scroll-viewport with a fixed itemSize of 44 px. Only the rows currently visible are mounted in the DOM, so the palette stays smooth even in workspaces with thousands of collections and tables. The palette keeps a derived, memoized row stream so it doesn't rebuild every button on hover or on every change-detection pass.
| Key | Action |
|---|---|
| Ctrl+K / Cmd+K | Open the Command Palette. |
| Enter | Run the highlighted row. |
| ↑ / ↓ | Move the selection up or down (wraps around). |
| Esc | Close the palette (modal mode) or clear the query (embedded mode). |
keywords array too — typing "erd", "diagram", or "relations" all find DB Schema.⌘+N) and Open Settings (⌘+,) display their global shortcut on the right of the row.⌘+, from the palette.Download and start managing your MongoDB databases with ease.
Download Free Trial