Skip to main content

Command palette

The fastest way to anything: markets, teams, tags, your positions and commands. Budget: open any market with Mod+K, typing and Enter. Search must answer in under 300 ms (Phase 1 exit gate).

Content and ranking

  • Result kinds: market or event, team (@), tag (#), your positions, commands (>).
  • Prefixes: @ restricts to teams and events, # to tags, > to commands. With no prefix, markets, teams, positions and commands are mixed.
  • Ranking, applied within two text-match tiers:
    1. Strong match: every query word matches the start of a word in the title, team or alias (lak cel → Lakers v Celtics).
    2. Weak match: substring or typo-tolerant.
    Inside each tier: pinned, then held, then live, then volume (PLAN §4). A pinned weak match never beats an unpinned strong match. (Open question 12 in README.md: PLAN lists only the pinned/held/live/volume order.)
  • Empty query: Recent (last 5 opened), then Pinned, then Held, then Live now. Five rows per group at most.
  • Results update on every keystroke. The previous list stays until the new one arrives (no blank list, no skeleton). A Searching… hint shows in the footer if a query takes over 150 ms.

Keys

Commands (>)

Desktop

  • Panel: 640 px wide, top at 96 px, --popover, --radius-lg, --shadow-lg, over a backdrop of --background at 60% opacity.
  • Input: 52 px, body text 16 px, no border, --muted-foreground placeholder Search markets, teams, #tags, > commands.
  • Rows: command palette row component (components.md), 40 px. Right side shows the score or clock for games and bid/ask for markets (not clickable: the palette navigates, it does not trade).
  • Mouse: hover selects, click opens, Shift+click pins.
  • The palette is cmdk. Filtering is server-side (FTS5) for markets, teams and tags; commands and recent items filter locally.

Mobile (Search tab)

  • Opens with the input focused and the keyboard up. The app header stays, so Safe/Armed and Cancel all remain reachable.
  • Prefix chips insert @, # or > (typing symbols is slow on phone keyboards).
  • Tap a row: open. Tap the [star] pin button: pin or unpin. Long-press a row: action sheet with Open ladder, Pin, Set alert….
  • Close clears and returns to the previous tab. (Cancel is reserved for orders.)
  • Budget on mobile: tap Search, type, tap the result (2 taps + typing).