Skip to content

[HDX-3968] Add Ctrl+K spotlight UI for quick navigation between pages#2099

Draft
wrn14897 wants to merge 1 commit intomainfrom
cursor/HDX-3968-ctrl-k-spotlight-afce
Draft

[HDX-3968] Add Ctrl+K spotlight UI for quick navigation between pages#2099
wrn14897 wants to merge 1 commit intomainfrom
cursor/HDX-3968-ctrl-k-spotlight-afce

Conversation

@wrn14897
Copy link
Copy Markdown
Member

Summary

Add a Ctrl+K spotlight / command palette overlay to the TUI for quick navigation between sources, saved searches, and pages (Alerts). This follows the common Ctrl+K pattern used in web apps for fast navigation without leaving the keyboard.

The spotlight shows all available navigation targets with type labels (Source/Search/Page), supports real-time text filtering, and keyboard navigation (arrow keys + Enter/Esc).

Screenshots or video

Before After
Tab/Shift+Tab to cycle through sources sequentially Ctrl+K opens filterable spotlight with all navigation targets

Spotlight overlay opened:
Spotlight overlay with all items

Filtering with "Alert":
07_spotlight_alerts_filter.txt

Alerts page reached via spotlight:
Alerts page after navigation

How to test locally or on Vercel

  1. cd packages/cli && yarn dev auth login -s http://localhost:8000 (authenticate)
  2. yarn dev tui -s http://localhost:8000 (start TUI)
  3. Press Ctrl+K to open spotlight from either the source picker or event viewer
  4. Type to filter items (e.g. "log", "trace", "alert")
  5. Use arrow keys to navigate, Enter to select, Esc to close
  6. Verify navigation works: selecting a source switches to it, selecting Alerts opens alerts page

References

  • Related PRs: N/A

Changes

  • New: packages/cli/src/components/Spotlight.tsx — Spotlight overlay component with text filtering, j/k + arrow key navigation, categorized items
  • Modified: packages/cli/src/App.tsx — Manages spotlight state, builds items from sources/searches, handles selection to navigate screens
  • Modified: packages/cli/src/components/EventViewer/useKeybindings.ts — Ctrl+K handler in priority position (after SQL preview, before text input focus checks)
  • Modified: packages/cli/src/components/EventViewer/types.ts — Added onOpenSpotlight prop
  • Modified: packages/cli/src/components/EventViewer/EventViewer.tsx — Passes onOpenSpotlight to keybindings hook
  • Modified: packages/cli/src/components/SourcePicker.tsx — Added Ctrl+K handler and onOpenSpotlight prop
  • Modified: packages/cli/src/components/EventViewer/SubComponents.tsx — Added Ctrl+K to help screen
  • Modified: packages/cli/AGENTS.md, packages/cli/CONTRIBUTING.md — Updated keybindings tables and architecture docs

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

Add a command palette / spotlight overlay triggered by Ctrl+K that enables
quick navigation between sources, saved searches, and pages (Alerts).

- New Spotlight component with fuzzy text filtering and j/k navigation
- Ctrl+K keybinding works from EventViewer and SourcePicker screens
- Items are categorized (Source/Search/Page) with color-coded labels
- Esc to close, Enter to select, arrow keys or Ctrl+N/P to navigate
- Updated help screen, AGENTS.md, and CONTRIBUTING.md with new keybinding

Co-authored-by: Warren Lee <wrn14897@users.noreply.github.com>
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 10, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hyperdx-oss Ready Ready Preview, Comment Apr 10, 2026 9:06pm

Request Review

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Apr 10, 2026

⚠️ No Changeset found

Latest commit: e10e284

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions
Copy link
Copy Markdown
Contributor

E2E Test Results

All tests passed • 131 passed • 3 skipped • 1077s

Status Count
✅ Passed 131
❌ Failed 0
⚠️ Flaky 2
⏭️ Skipped 3

Tests ran across 4 shards in parallel.

View full report →

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants