Skip to content

feat: Add Mini Chat quick access window (Spotlight-like)#181

Merged
Saul-Gomez-J merged 2 commits intolevante-hub:bot-testsfrom
creative-CLAi:feature/mini-chat-quick-access
Jan 27, 2026
Merged

feat: Add Mini Chat quick access window (Spotlight-like)#181
Saul-Gomez-J merged 2 commits intolevante-hub:bot-testsfrom
creative-CLAi:feature/mini-chat-quick-access

Conversation

@creative-CLAi
Copy link

Summary

Implements issue #170 - Quick AI access via global shortcut (Cmd/Ctrl+Shift+Space).

Changes

Main Process

  • System Tray (src/main/tray/): Background operation with context menu
  • Global Shortcuts (src/main/shortcuts/): Cmd/Ctrl+Shift+Space to toggle mini-chat
  • Mini Chat Window (src/main/windows/): Spotlight-like floating window

Renderer

  • New entry point: mini-chat.html + mini-chat.tsx
  • Components: MiniChatContainer, Header, Input, Message
  • State: Zustand store for local conversation state
  • Styles: Dark/light mode support via prefers-color-scheme

Preload

  • miniChat API for window control (hide, resize, toggle)
  • IPC event subscriptions for shown/hidden states

Build

  • Updated vite.renderer.config.ts for multi-entry build

Features

  • ⌨️ Global shortcut works even when app is not focused
  • 🎯 Spotlight-style positioning (center-top of current display)
  • 👻 Auto-hide on blur
  • 🔄 Model selector from configured models
  • 💬 Streaming responses with typing indicator
  • 🌙 Dark mode support
  • ⎋ ESC to dismiss

Screenshots

To be added after testing

Testing

  • Global shortcut registers correctly
  • Mini-chat appears on shortcut press
  • Auto-hides when clicking outside
  • Model selection works
  • Chat streaming works
  • ESC dismisses window
  • Tray icon shows and menu works

Closes #170

Implements issue levante-hub#170 - Quick AI access via global shortcut.

Main Process:
- Add system tray for background operation (src/main/tray/)
- Add global shortcuts manager (Cmd/Ctrl+Shift+Space) (src/main/shortcuts/)
- Add mini-chat window manager with Spotlight-like positioning (src/main/windows/)
- Integrate tray, shortcuts, and mini-chat into main.ts

Renderer:
- Add mini-chat.html and mini-chat.tsx entry points
- Add MiniChatPage with keyboard handling
- Add MiniChatContainer, Header, Input, Message components
- Add miniChatStore with Zustand for local state
- Add mini-chat.css with dark/light mode support

Preload:
- Add miniChat API for window control (hide, resize, toggle)
- Add IPC event subscriptions for shown/hidden states

Build:
- Update vite.renderer.config.ts for multi-entry (main + mini-chat)

Features:
- Global shortcut (Cmd+Shift+Space) works app-focused or not
- Spotlight-style floating window positioned at screen center-top
- Auto-hide on blur (Spotlight behavior)
- Model selector from configured models
- Streaming responses with typing indicator
- Dark mode support via prefers-color-scheme
- ESC to dismiss

Note: Requires tray icons for production (using main icon as fallback)
@creative-CLAi creative-CLAi changed the base branch from main to bot-tests January 27, 2026 21:48
- Remove visibleOnAllWorkspaces from constructor, use setVisibleOnAllWorkspaces() method instead
- Use modelService.getAvailableModels() instead of non-existent models.getSelected()
- Add 'parts' property to messages for UIMessage compatibility with AI SDK v5
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.

Feature: Mini Chat Flotante con Global Shortcut (Quick Chat Overlay)

2 participants