# voyager-crew/voyager architecture

> Architecture diagram of the GitHub repository voyager-crew/voyager, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/voyager-crew/voyager
- Repository: https://github.com/voyager-crew/voyager

## Overview

Voyager is a cross-browser extension that adds organization, productivity tools, and export to Gemini, Claude, ChatGPT, DeepSeek, and AI Studio. Users interact with features in supported chat pages and configure them through the popup; Voyager stores local data and can synchronize selected data through cloud providers. The graph preserves the README’s major capability areas. The tree and excerpts support the named modules, but do not expose every feature’s wiring, so uncertain internal connections are omitted.

Main entry points: [`src/pages/content/index.tsx`](https://github.com/voyager-crew/voyager/blob/main/src/pages/content/index.tsx) (Content entry), [`src/features/plugins/runtime/PluginHost.ts`](https://github.com/voyager-crew/voyager/blob/main/src/features/plugins/runtime/PluginHost.ts) (Plugin host), [`src/pages/popup/index.tsx`](https://github.com/voyager-crew/voyager/blob/main/src/pages/popup/index.tsx) (Settings popup), [`src/pages/content/folder/index.ts`](https://github.com/voyager-crew/voyager/blob/main/src/pages/content/folder/index.ts) (Folder organization)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_chat["Chat integration"]
  node_content_entry["Content entry<br/>[index.tsx]"]
  node_background["Extension background<br/>[index.ts]"]
end

subgraph group_organize["Organization and prompts"]
  node_folder_ui["Folder organization<br/>[index.ts]"]
  node_folder_storage["Folder storage adapter"]
  node_prompt_ui["Prompt vault<br/>[index.ts]"]
  node_prompt_history["Prompt history<br/>[storage.ts]"]
end

subgraph group_productivity["Conversation tools"]
  node_timeline["Timeline navigation<br/>[index.ts]"]
  node_timeline_state["Timeline hierarchy"]
  node_export_ui["Conversation export<br/>[index.ts]"]
  node_export_services["Export services"]
  node_deep_research["Research extraction<br/>[index.ts]"]
  node_watermark["Image refinement<br/>[watermarkEngine.ts]"]
end

subgraph group_plugins["Plugin engine"]
  node_plugin_host["Plugin host<br/>[PluginHost.ts]"]
  node_declarative_engine["Declarative engine"]
  node_plugin_sources["Plugin sources<br/>[defaultSources.ts]"]
end

subgraph group_settings["Settings and storage"]
  node_popup["Settings popup<br/>[index.tsx]"]
  node_prompt_settings["Prompt settings"]
  node_storage_service["Storage services<br/>[StorageService.ts]"]
  node_quota["Storage quota"]
  node_browser_storage[("Extension storage")]
end

node_user(("Chat user"))
node_ai_sites(("AI chat sites"))
node_google_drive(("Google Drive"))
node_icloud(("iCloud"))

node_user -->|"uses"| node_ai_sites
node_ai_sites -->|"hosts"| node_content_entry
node_content_entry -->|"mounts features"| node_folder_ui
node_content_entry -->|"mounts features"| node_prompt_ui
node_content_entry -->|"mounts features"| node_timeline
node_content_entry -->|"mounts features"| node_export_ui
node_content_entry -->|"mounts features"| node_deep_research
node_content_entry -->|"mounts features"| node_watermark
node_folder_ui -->|"reads and writes"| node_folder_storage
node_prompt_ui -->|"records history"| node_prompt_history
node_timeline -->|"reads and writes"| node_timeline_state
node_export_ui -->|"exports via"| node_export_services
node_background -->|"registers plugins"| node_plugin_host
node_plugin_host -->|"loads plugins"| node_plugin_sources
node_plugin_host -->|"interprets contributions"| node_declarative_engine
node_popup -->|"configures"| node_prompt_settings
node_prompt_settings -->|"writes settings"| node_browser_storage
node_popup -->|"checks usage"| node_quota
node_storage_service -->|"reads and writes"| node_browser_storage
node_folder_storage -->|"mirrors folder data"| node_browser_storage
node_prompt_history -->|"reads and writes"| node_browser_storage
node_timeline_state -->|"stores hierarchy"| node_browser_storage
node_google_drive -.->|"syncs selected data"| node_browser_storage
node_icloud -.->|"syncs selected data"| node_browser_storage

click node_content_entry "https://github.com/voyager-crew/voyager/blob/main/src/pages/content/index.tsx"
click node_background "https://github.com/voyager-crew/voyager/blob/main/src/pages/background/index.ts"
click node_folder_ui "https://github.com/voyager-crew/voyager/blob/main/src/pages/content/folder/index.ts"
click node_folder_storage "https://github.com/voyager-crew/voyager/blob/main/src/pages/content/folder/storage/FolderStorageAdapter.ts"
click node_prompt_ui "https://github.com/voyager-crew/voyager/blob/main/src/pages/content/prompt/index.ts"
click node_prompt_history "https://github.com/voyager-crew/voyager/blob/main/src/pages/content/promptHistory/storage.ts"
click node_timeline "https://github.com/voyager-crew/voyager/blob/main/src/pages/content/timeline/index.ts"
click node_timeline_state "https://github.com/voyager-crew/voyager/blob/main/src/pages/content/timeline/hierarchyStorage.ts"
click node_export_ui "https://github.com/voyager-crew/voyager/blob/main/src/pages/content/export/index.ts"
click node_export_services "https://github.com/voyager-crew/voyager/blob/main/src/features/export/services/ConversationExportService.ts"
click node_deep_research "https://github.com/voyager-crew/voyager/blob/main/src/pages/content/deepResearch/index.ts"
click node_watermark "https://github.com/voyager-crew/voyager/blob/main/src/pages/content/watermarkRemover/watermarkEngine.ts"
click node_plugin_host "https://github.com/voyager-crew/voyager/blob/main/src/features/plugins/runtime/PluginHost.ts"
click node_declarative_engine "https://github.com/voyager-crew/voyager/blob/main/src/features/plugins/runtime/declarativeEngine.ts"
click node_plugin_sources "https://github.com/voyager-crew/voyager/blob/main/src/features/plugins/sources/defaultSources.ts"
click node_popup "https://github.com/voyager-crew/voyager/blob/main/src/pages/popup/index.tsx"
click node_prompt_settings "https://github.com/voyager-crew/voyager/blob/main/src/pages/popup/hooks/usePromptManagerSettings.ts"
click node_storage_service "https://github.com/voyager-crew/voyager/blob/main/src/core/services/StorageService.ts"
click node_quota "https://github.com/voyager-crew/voyager/blob/main/src/core/services/StorageQuotaService.ts"

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_content_entry,node_background,node_user toneBlue
class node_folder_ui,node_folder_storage,node_prompt_ui,node_prompt_history toneAmber
class node_timeline,node_timeline_state,node_export_ui,node_export_services,node_deep_research,node_watermark toneMint
class node_plugin_host,node_declarative_engine,node_plugin_sources toneRose
class node_popup,node_prompt_settings,node_storage_service,node_quota,node_browser_storage,node_ai_sites,node_google_drive,node_icloud toneIndigo
```

## Components

### Chat integration

- [Content entry](https://github.com/voyager-crew/voyager/blob/main/src/pages/content/index.tsx): `src/pages/content/index.tsx`
- [Extension background](https://github.com/voyager-crew/voyager/blob/main/src/pages/background/index.ts): `src/pages/background/index.ts`

### Organization and prompts

- [Folder organization](https://github.com/voyager-crew/voyager/blob/main/src/pages/content/folder/index.ts): `src/pages/content/folder/index.ts`
- [Folder storage adapter](https://github.com/voyager-crew/voyager/blob/main/src/pages/content/folder/storage/FolderStorageAdapter.ts): `src/pages/content/folder/storage/FolderStorageAdapter.ts`
- [Prompt vault](https://github.com/voyager-crew/voyager/blob/main/src/pages/content/prompt/index.ts): `src/pages/content/prompt/index.ts`
- [Prompt history](https://github.com/voyager-crew/voyager/blob/main/src/pages/content/promptHistory/storage.ts): `src/pages/content/promptHistory/storage.ts`

### Conversation tools

- [Timeline navigation](https://github.com/voyager-crew/voyager/blob/main/src/pages/content/timeline/index.ts): `src/pages/content/timeline/index.ts`
- [Timeline hierarchy](https://github.com/voyager-crew/voyager/blob/main/src/pages/content/timeline/hierarchyStorage.ts): `src/pages/content/timeline/hierarchyStorage.ts`
- [Conversation export](https://github.com/voyager-crew/voyager/blob/main/src/pages/content/export/index.ts): `src/pages/content/export/index.ts`
- [Export services](https://github.com/voyager-crew/voyager/blob/main/src/features/export/services/ConversationExportService.ts): `src/features/export/services/ConversationExportService.ts`
- [Research extraction](https://github.com/voyager-crew/voyager/blob/main/src/pages/content/deepResearch/index.ts): `src/pages/content/deepResearch/index.ts`
- [Image refinement](https://github.com/voyager-crew/voyager/blob/main/src/pages/content/watermarkRemover/watermarkEngine.ts): `src/pages/content/watermarkRemover/watermarkEngine.ts`

### Plugin engine

- [Plugin host](https://github.com/voyager-crew/voyager/blob/main/src/features/plugins/runtime/PluginHost.ts): `src/features/plugins/runtime/PluginHost.ts`
- [Declarative engine](https://github.com/voyager-crew/voyager/blob/main/src/features/plugins/runtime/declarativeEngine.ts): `src/features/plugins/runtime/declarativeEngine.ts`
- [Plugin sources](https://github.com/voyager-crew/voyager/blob/main/src/features/plugins/sources/defaultSources.ts): `src/features/plugins/sources/defaultSources.ts`

### Settings and storage

- [Settings popup](https://github.com/voyager-crew/voyager/blob/main/src/pages/popup/index.tsx): `src/pages/popup/index.tsx`
- [Prompt settings](https://github.com/voyager-crew/voyager/blob/main/src/pages/popup/hooks/usePromptManagerSettings.ts): `src/pages/popup/hooks/usePromptManagerSettings.ts`
- [Storage services](https://github.com/voyager-crew/voyager/blob/main/src/core/services/StorageService.ts): `src/core/services/StorageService.ts`
- [Storage quota](https://github.com/voyager-crew/voyager/blob/main/src/core/services/StorageQuotaService.ts): `src/core/services/StorageQuotaService.ts`
- **Extension storage**

### Other components

- **Chat user**
- **AI chat sites**
- **Google Drive**
- **iCloud**

## Connections

- Chat user → AI chat sites: uses
- AI chat sites → Content entry: hosts
- Content entry → Folder organization: mounts features
- Content entry → Prompt vault: mounts features
- Content entry → Timeline navigation: mounts features
- Content entry → Conversation export: mounts features
- Content entry → Research extraction: mounts features
- Content entry → Image refinement: mounts features
- Folder organization → Folder storage adapter: reads and writes
- Prompt vault → Prompt history: records history
- Timeline navigation → Timeline hierarchy: reads and writes
- Conversation export → Export services: exports via
- Extension background → Plugin host: registers plugins
- Plugin host → Plugin sources: loads plugins
- Plugin host → Declarative engine: interprets contributions
- Settings popup → Prompt settings: configures
- Prompt settings → Extension storage: writes settings
- Settings popup → Storage quota: checks usage
- Storage services → Extension storage: reads and writes
- Folder storage adapter → Extension storage: mirrors folder data
- Prompt history → Extension storage: reads and writes
- Timeline hierarchy → Extension storage: stores hierarchy
- Google Drive → Extension storage: syncs selected data
- iCloud → Extension storage: syncs selected data
