# heyyczer/windows-dynamic-island architecture

> Architecture diagram of the GitHub repository heyyczer/windows-dynamic-island, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/heyyczer/windows-dynamic-island
- Repository: https://github.com/heyyczer/windows-dynamic-island

## Overview

Dynamic Island for Windows is a Tauri desktop overlay for modules such as music, AI-agent activity, screen search, and notifications. The principal flow is application startup → island controller → module content, with native providers supplying live state through the bridge; users can also open settings or a music picture-in-picture window. The graph preserves the README’s major capabilities and plugin/customization branch. Several feature implementations were not sampled, so their internal calls are not inferred; documented workflows and visible startup wiring support the relationships shown.

Main entry points: [`src/modules/index.ts`](https://github.com/heyyczer/windows-dynamic-island/blob/main/src/modules/index.ts) (Module registry), [`src/components/Island.tsx`](https://github.com/heyyczer/windows-dynamic-island/blob/main/src/components/Island.tsx) (Island surface), [`src/main.tsx`](https://github.com/heyyczer/windows-dynamic-island/blob/main/src/main.tsx) (Window bootstrap), [`src/core/bridge.ts`](https://github.com/heyyczer/windows-dynamic-island/blob/main/src/core/bridge.ts) (Frontend bridge)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_shell["Desktop shell"]
  node_app["Window bootstrap<br/>[main.tsx]"]
  node_island["Island surface<br/>[Island.tsx]"]
  node_controller["Island controller"]
  node_bridge["Frontend bridge<br/>[bridge.ts]"]
end

subgraph group_modules["Island modules"]
  node_modulemap["Module registry<br/>[index.ts]"]
  node_agents["AI agents"]
  node_ask["Ask Claude"]
  node_find["Screen search"]
  node_music["Music controls"]
  node_clock["Clock calendar"]
  node_clipboard["Clipboard history"]
  node_shelf["File shelf"]
  node_othermodules["Other modules"]
end

subgraph group_native["Native services"]
  node_providers["Native providers"]
  node_nativeplugins["Plugin backend"]
  node_nativeapp["Tauri application<br/>[lib.rs]"]
end

subgraph group_config["Settings and plugins"]
  node_settings[("Settings store<br/>[settings.ts]")]
  node_settingsui["Settings window<br/>[SettingsApp.tsx]"]
  node_plugins["Plugin system<br/>[host.ts]"]
end

subgraph group_media["Media windows"]
  node_pip["Music PiP window<br/>[PipApp.tsx]"]
end

node_user(("Desktop user"))

node_user -->|"opens app"| node_app
node_app -->|"loads island"| node_island
node_app -->|"loads settings"| node_settingsui
node_island -->|"gets state"| node_controller
node_controller -->|"selects modules"| node_modulemap
node_modulemap -->|"offers module"| node_agents
node_modulemap -->|"offers module"| node_ask
node_modulemap -->|"offers module"| node_find
node_modulemap -->|"offers module"| node_music
node_modulemap -->|"offers module"| node_clock
node_modulemap -->|"offers module"| node_clipboard
node_modulemap -->|"offers module"| node_shelf
node_modulemap -->|"offers modules"| node_othermodules
node_island -->|"uses events"| node_bridge
node_bridge -->|"exchanges provider state"| node_providers
node_nativeapp -->|"starts providers"| node_providers
node_settingsui -->|"reads settings"| node_settings
node_settings -->|"persists settings"| node_bridge
node_island -->|"hosts plugins"| node_plugins
node_plugins -.->|"uses plugin backend"| node_nativeplugins
node_music -->|"opens pinned video"| node_pip
node_user -->|"customizes appearance"| node_settingsui

click node_app "https://github.com/heyyczer/windows-dynamic-island/blob/main/src/main.tsx"
click node_island "https://github.com/heyyczer/windows-dynamic-island/blob/main/src/components/Island.tsx"
click node_controller "https://github.com/heyyczer/windows-dynamic-island/blob/main/src/core/useIslandController.ts"
click node_modulemap "https://github.com/heyyczer/windows-dynamic-island/blob/main/src/modules/index.ts"
click node_agents "https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules/ai-agents"
click node_ask "https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules/ask"
click node_find "https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules/find"
click node_music "https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules/music"
click node_clock "https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules/clock"
click node_clipboard "https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules/clipboard"
click node_shelf "https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules/shelf"
click node_othermodules "https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules"
click node_bridge "https://github.com/heyyczer/windows-dynamic-island/blob/main/src/core/bridge.ts"
click node_providers "https://github.com/heyyczer/windows-dynamic-island/tree/main/src-tauri/src/providers"
click node_settings "https://github.com/heyyczer/windows-dynamic-island/blob/main/src/core/settings.ts"
click node_settingsui "https://github.com/heyyczer/windows-dynamic-island/blob/main/src/settings/SettingsApp.tsx"
click node_plugins "https://github.com/heyyczer/windows-dynamic-island/blob/main/src/core/plugins/host.ts"
click node_nativeplugins "https://github.com/heyyczer/windows-dynamic-island/tree/main/src-tauri/src/plugins"
click node_pip "https://github.com/heyyczer/windows-dynamic-island/blob/main/src/pip/PipApp.tsx"
click node_nativeapp "https://github.com/heyyczer/windows-dynamic-island/blob/main/src-tauri/src/lib.rs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_island,node_controller,node_bridge,node_user toneBlue
class node_modulemap,node_agents,node_ask,node_find,node_music,node_clock,node_clipboard,node_shelf,node_othermodules toneAmber
class node_providers,node_nativeplugins,node_nativeapp toneMint
class node_settings,node_settingsui,node_plugins toneRose
class node_pip toneIndigo
```

## Components

### Desktop shell

- [Window bootstrap](https://github.com/heyyczer/windows-dynamic-island/blob/main/src/main.tsx): `src/main.tsx`
- [Island surface](https://github.com/heyyczer/windows-dynamic-island/blob/main/src/components/Island.tsx): `src/components/Island.tsx`
- [Island controller](https://github.com/heyyczer/windows-dynamic-island/blob/main/src/core/useIslandController.ts): `src/core/useIslandController.ts`
- [Frontend bridge](https://github.com/heyyczer/windows-dynamic-island/blob/main/src/core/bridge.ts): `src/core/bridge.ts`

### Island modules

- [Module registry](https://github.com/heyyczer/windows-dynamic-island/blob/main/src/modules/index.ts): `src/modules/index.ts`
- [AI agents](https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules/ai-agents): `src/modules/ai-agents`
- [Ask Claude](https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules/ask): `src/modules/ask`
- [Screen search](https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules/find): `src/modules/find`
- [Music controls](https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules/music): `src/modules/music`
- [Clock calendar](https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules/clock): `src/modules/clock`
- [Clipboard history](https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules/clipboard): `src/modules/clipboard`
- [File shelf](https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules/shelf): `src/modules/shelf`
- [Other modules](https://github.com/heyyczer/windows-dynamic-island/tree/main/src/modules): `src/modules`

### Native services

- [Native providers](https://github.com/heyyczer/windows-dynamic-island/tree/main/src-tauri/src/providers): `src-tauri/src/providers`
- [Plugin backend](https://github.com/heyyczer/windows-dynamic-island/tree/main/src-tauri/src/plugins): `src-tauri/src/plugins`
- [Tauri application](https://github.com/heyyczer/windows-dynamic-island/blob/main/src-tauri/src/lib.rs): `src-tauri/src/lib.rs`

### Settings and plugins

- [Settings store](https://github.com/heyyczer/windows-dynamic-island/blob/main/src/core/settings.ts): `src/core/settings.ts`
- [Settings window](https://github.com/heyyczer/windows-dynamic-island/blob/main/src/settings/SettingsApp.tsx): `src/settings/SettingsApp.tsx`
- [Plugin system](https://github.com/heyyczer/windows-dynamic-island/blob/main/src/core/plugins/host.ts): `src/core/plugins/host.ts`

### Media windows

- [Music PiP window](https://github.com/heyyczer/windows-dynamic-island/blob/main/src/pip/PipApp.tsx): `src/pip/PipApp.tsx`

### Other components

- **Desktop user**

## Connections

- Desktop user → Window bootstrap: opens app (evidence: `README.md`)
- Window bootstrap → Island surface: loads island (evidence: `src/main.tsx`)
- Window bootstrap → Settings window: loads settings (evidence: `src/main.tsx`)
- Island surface → Island controller: gets state (evidence: `src/components/Island.tsx`)
- Island controller → Module registry: selects modules (evidence: `src/core/useIslandController.ts`)
- Module registry → AI agents: offers module (evidence: `README.md`)
- Module registry → Ask Claude: offers module (evidence: `README.md`)
- Module registry → Screen search: offers module (evidence: `README.md`)
- Module registry → Music controls: offers module (evidence: `README.md`)
- Module registry → Clock calendar: offers module (evidence: `README.md`)
- Module registry → Clipboard history: offers module (evidence: `README.md`)
- Module registry → File shelf: offers module (evidence: `README.md`)
- Module registry → Other modules: offers modules (evidence: `README.md`)
- Island surface → Frontend bridge: uses events (evidence: `src/components/Island.tsx`)
- Frontend bridge → Native providers: exchanges provider state (evidence: `src/core/bridge.ts`)
- Tauri application → Native providers: starts providers (evidence: `src-tauri/src/lib.rs`)
- Settings window → Settings store: reads settings (evidence: `src/settings/SettingsApp.tsx`)
- Settings store → Frontend bridge: persists settings (evidence: `src/core/settings.ts`)
- Island surface → Plugin system: hosts plugins (evidence: `src/components/Island.tsx`)
- Plugin system → Plugin backend: uses plugin backend
- Music controls → Music PiP window: opens pinned video (evidence: `README.md`)
- Desktop user → Settings window: customizes appearance (evidence: `README.md`)
