Search Your Workspace

Find anything you can read across every Dotabase: open the command palette, narrow with scope and lens, jump straight to a row by its id, and run the same search from the terminal.

Universal search spans every Dotabase you can read — rows, conversations, memories, code symbols, documents — in one query. This is the golden path through it: opening it, narrowing it, and getting from a result to the thing you actually wanted.

Access is resolved before the query runs, so results never include rows you are not allowed to read. There is no separate "search permissions" to configure.

Open The Palette

Press the platform modifier with KCmd+K on macOS, Ctrl+K elsewhere — from anywhere in the app. You can also click the search field in the top bar; that field is a launcher rather than a search box, so your first keystroke is carried into the palette and the bar resets behind you.

The palette opens in two panes: ranked results on the left, a live preview of the highlighted result on the right. Arrow keys move the highlight and the preview follows; Enter opens. With no query, the palette shows recently opened rows only instead of an empty box.

Each result is three lines — the title, a metadata line naming the it lives in and when it was last edited, and a short snippet with your matched terms emphasized. Emphasis is literal: a result that matched on meaning rather than wording shows no highlight rather than a fabricated one.

Narrow With Scope And Lens

Two bands sit above the results.

Scope is a single-select chip strip that limits the search to one Dotabase. All is the default; the foundational Dotabases sit inline and the rest are grouped by Space under More.

Lens is everything else:

  • DIIICE chipsData, Intelligence, Instructions, Ideas, Context, Examples. These are multi-select, so you can ask for instructions and examples together. Dotabases explains what the six knowledge types mean.
  • Filter — date range, tags, domains, and connector source, each showing a live count of how many results it would leave, plus lifecycle (active, archived, or all) and verification state.
  • Sort — relevance, recently updated, or recently created.

The whole strip resets when the palette closes, so a narrow search you ran once does not quietly constrain the next one.

Jump Straight To A Row By Its id

Type a human id — MEM-7, CONVO-12, FEAT-30 — and if the row exists and you can read it, it is pinned above the ranked list in its own Exact match group. Case does not matter; mem-7 works. If no such row exists or you cannot read it, there is no pin and no error — you simply get ordinary ranked results.

The pin does not cost you a result. Pagination is re-keyed so the row it displaced turns up on the next page.

Act On A Result

Opening a result gives you a peek in the right drawer by default, so you can read it without leaving the page you were on. Each result also offers Copy link and Ask AI about this, and two actions sit beside the search input:

  • Ask AI hands your query to Chat. The floating chat panel opens with the query already in the composer, and if you had scoped the search to one Dotabase, that Dotabase is carried across as the turn's grounding source.
  • Show in graph appears once there are results and highlights the whole result set's neighborhood on the home knowledge graph.

Search Inside One Dotabase

Universal search and in-Dotabase search are different surfaces. When you are looking at a Dotabase, the magnifying glass in its toolbar expands into an inline box that searches only that Dotabase's rows and composes with the view's existing filters, grouping, and tags. The query is written into the URL, so a filtered search is a shareable link.

Use the palette to find something when you do not know where it lives; use the toolbar when you are already in the right place and want to narrow the rows in front of you.

From The Terminal

The same engine is on the CLI. Install the CLI covers getting set up.

CODE
dots search "onboarding rehearsal"

Search is a survey read, so it answers at the summary disclosure level rather than handing back whole rows. Each hit carries its id, its title, and its DIIICE type — enough to decide what is worth opening — and the output closes with a footer naming the tier it used. Read the row you chose in full with rows get, widen the hits themselves with --level full, or narrow to identity alone with --level scan.

The flags mirror the palette's bands, and a few go further:

CODE
dots search "retry policy" --dotabase memory-bank --diiice instructions --limit 10
dots search "contract drift" --domain architecture --domain contracts
dots search "pricing" --recency last_week --sort updated

--dotabase takes a UUID, a slug, or a canonical human id. --diiice, --domain, --tag, and --source are repeatable and OR together; the DIIICE type a --diiice filter selects on is rendered at the summary default, so a narrowed result still shows you the band each hit matched. --playbook narrows to a Power-Up Playbook's curated rows and has no equivalent in the palette. Results page at 20 by default, 50 at most, and --cursor walks further pages. dots search and dots tags is the full command reference.

What Affects Ranking

Five behaviors explain most cases where a row you expected does not appear.

Titles outrank bodies. The ranking index weights a row's title highest and only the first stretch of its body below that. Words buried deep in a long body still match, but they contribute little to the score, so distinctive words belong in row titles.

Your phrasing shifts the blend. Keyword and semantic search run in parallel and are fused. A precise "find X" query leans keyword; an open-ended "everything about X" query leans semantic.

Recency is a filter, not a ranking signal. Nothing decays with age. If you want newest-first, sort by it.

Sorting by date changes the result set, not just its order. A date sort is resolved in the database over full-text matches, so results that matched only semantically drop out. Relevance is the only sort that sees them.

Semantic search can be switched off. If the embedding provider is unavailable, the palette shows a persistent notice reading that keyword search only is in effect, with a link to the workspace AI settings. It only appears on a confirmed degradation — the palette never guesses.

Search Your Workspace · This page in the graph

Connected Records24

Documented by
Mentions
DIIICE
DOT
References
Relevant to
24 connections.

Where To Go Next

Reading this as an agent?For Agents
Something wrong on this page?Dots On GitHub