Adeniji Adekunle James 3b68fb4e48 feat: add hotkey to toggle chat modes (#1274) (#995) (#1284)
Adds Ctrl+Shift+A (Cmd+Shift+A on Mac) keyboard shortcut to toggle
between Ask and Build chat modes.

**Changes:**
- Created `useChatModeToggle` hook for shared logic
- Added shortcut to ChatInput and HomeChatInput components

**Usage:**
Press Ctrl+Shift+A (or Cmd+Shift+A on Mac) to quickly switch between
chat modes without using the UI.

<img width="434" height="123" alt="image"
src="https://github.com/user-attachments/assets/a8c167b6-2b54-46f5-8191-5019991fc8e5"
/>

Closes (#995)
    
<!-- This is an auto-generated description by cubic. -->
---

## Summary by cubic
Add a global hotkey to toggle between Ask and Build modes: Ctrl+Shift+A
(Cmd+Shift+A on Mac). Makes switching faster without touching the UI and
fulfills Linear #995.

- **New Features**
- Added useChatModeToggle hook to flip selectedChatMode, detect
platform, and track PostHog event chat:mode_toggle.
- Wired the hotkey into ChatInput and HomeChatInput via
useChatModeToggle.
  - Updated ChatModeSelector tooltip to show the shortcut.

<!-- End of auto-generated description by cubic. -->

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Adds Cmd/Ctrl + . shortcut to cycle chat modes via a new hook, and
updates the mode selector tooltip to show the shortcut.
> 
> - **UX/Hotkey**:
> - Introduces `useChatModeToggle` to cycle `settings.selectedChatMode`
(captures `chat:mode_toggle`), with platform detection
(`detectIsMac`/`useIsMac`) and `useShortcut` binding for `Cmd/Ctrl + .`.
> - **Integrations**:
> - Wires `useChatModeToggle()` into `components/chat/ChatInput.tsx` and
`components/chat/HomeChatInput.tsx` to enable the shortcut in chat
inputs.
> - **UI**:
> - Enhances `components/ChatModeSelector.tsx` tooltip to display the
platform-specific shortcut hint (`⌘ + .` or `Ctrl + .`).
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
d8cc3fff43b6eb3227623f1c084410f42392c0b3. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Will Chen <willchen90@gmail.com>
2025-09-30 13:43:24 -07:00
2025-08-29 21:35:09 -07:00
2025-09-16 22:51:46 -07:00
2025-08-22 22:51:16 -07:00
2025-09-19 15:43:39 -07:00
2025-06-11 13:05:27 -07:00
2025-07-23 21:02:43 -07:00
2025-09-19 15:43:39 -07:00
2025-04-14 23:56:11 -07:00
2025-04-11 09:38:16 -07:00
2025-04-11 09:38:16 -07:00
2025-05-28 22:55:54 -07:00
2025-05-28 22:55:54 -07:00
2025-05-06 23:02:28 -07:00
2025-05-06 23:02:28 -07:00
2025-04-11 10:21:05 -07:00
2025-04-11 09:38:16 -07:00
2025-05-27 15:59:13 -07:00
2025-04-15 16:19:29 -07:00
2025-08-14 13:48:27 -07:00
2025-09-19 22:05:36 -07:00
2025-09-19 16:33:20 -07:00
2025-09-19 15:43:39 -07:00
2025-08-11 15:37:34 -07:00
2025-04-11 09:38:16 -07:00
2025-04-11 09:38:16 -07:00
2025-04-11 09:38:16 -07:00

Dyad

Dyad is a local, open-source AI app builder. It's fast, private, and fully under your control — like Lovable, v0, or Bolt, but running right on your machine.

Image

More info at: http://dyad.sh/

🚀 Features

  • Local: Fast, private and no lock-in.
  • 🛠 Bring your own keys: Use your own AI API keys — no vendor lock-in.
  • 🖥️ Cross-platform: Easy to run on Mac or Windows.

📦 Download

No sign-up required. Just download and go.

👉 Download for your platform

🤝 Community

Join our growing community of AI app builders on Reddit: r/dyadbuilders - share your projects and get help from the community!

🛠️ Contributing

Dyad is open-source (Apache 2.0 licensed).

If you're interested in contributing to dyad, please read our contributing doc.

Description
No description provided
Readme Apache-2.0 27 MiB
Languages
TypeScript 97.4%
JavaScript 1.6%
CSS 0.6%
Shell 0.2%