# qixing-jk/all-api-hub architecture

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

- Interactive diagram: https://gitdiagram.com/qixing-jk/all-api-hub
- Repository: https://github.com/qixing-jk/all-api-hub

## Overview

All API Hub is a browser extension for managing AI relay accounts and API credentials across sites. Users add accounts or standalone credentials, review balances and usage, verify APIs and models, compare prices, and export credentials to client tools. Separate workflows automate check-ins and capture credentials from web pages. For self-hosted gateways, users manage channels and synchronize models or redirects. The README documents WebDAV sync, announcements, and alerts as additional capabilities. Source excerpts are partial, so the graph shows documented product flows and only the sampled controller-to-storage relationships where wiring is visible.

Main entry points: [`src/entrypoints/options/App.tsx`](https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/App.tsx) (Options UI), [`src/entrypoints/options/pages/ManagedSiteChannels/index.tsx`](https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/ManagedSiteChannels/index.tsx) (Gateway channels), [`src/features/AccountManagement/AccountManagement.tsx`](https://github.com/qixing-jk/all-api-hub/blob/main/src/features/AccountManagement/AccountManagement.tsx) (Account management), [`src/entrypoints/options/pages/KeyManagement/index.tsx`](https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/KeyManagement/index.tsx) (Credential library)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_accounts["Accounts and insights"]
  node_options["Options UI<br/>[App.tsx]"]
  node_account_mgmt["Account management"]
  node_account_dialog["Account onboarding<br/>[index.tsx]"]
  node_usage["Usage analytics<br/>[index.tsx]"]
  node_balance["Balance history<br/>[index.tsx]"]
end

subgraph group_credentials["Credentials and verification"]
  node_key_management["Credential library<br/>[index.tsx]"]
  node_key_controller["Credential controller"]
  node_verification["API verification<br/>[index.tsx]"]
  node_verification_history[("Verification history<br/>[storage.ts]")]
  node_import_export["Import and export<br/>[index.tsx]"]
end

subgraph group_automation["Automation and capture"]
  node_checkin["Auto check-in<br/>[index.tsx]"]
  node_content["Page capture<br/>[index.ts]"]
end

subgraph group_gateways["Gateway management"]
  node_managed_channels["Gateway channels<br/>[index.tsx]"]
  node_managed_list["Resource listing"]
  node_managed_mutations["Resource mutations"]
  node_migration["Resource migration"]
  node_model_sync["Model synchronization<br/>[index.tsx]"]
end

subgraph group_platform["Extension platform"]
  node_background["Background runtime<br/>[index.ts]"]
  node_announcements[("Site announcements<br/>[storage.ts]")]
  node_local_storage[("Browser local storage")]
  node_webdav["WebDAV sync<br/>[importExport.ts]"]
end

node_user(("User"))
node_relay_sites{{"Relay sites"}}
node_gateway_sites{{"Self-hosted gateways"}}
node_client_tools{{"Client tools"}}
node_browser{{"Browser pages"}}

node_user -->|"opens"| node_options
node_options -->|"manages"| node_account_mgmt
node_account_mgmt -->|"adds accounts"| node_account_dialog
node_account_dialog -->|"discovers account"| node_relay_sites
node_account_mgmt -->|"fetches account data"| node_relay_sites
node_account_mgmt -->|"stores accounts"| node_local_storage
node_options -->|"views trends"| node_usage
node_options -->|"reviews balances"| node_balance
node_options -->|"runs check-ins"| node_checkin
node_checkin -->|"claims rewards"| node_relay_sites
node_browser -->|"exposes page data"| node_content
node_content -->|"offers capture"| node_user
node_user -->|"manages credentials"| node_key_management
node_key_management -->|"loads and edits"| node_key_controller
node_key_controller -->|"persists changes"| node_local_storage
node_key_management -->|"tests credentials"| node_verification
node_verification -->|"probes API"| node_relay_sites
node_verification -->|"records results"| node_verification_history
node_key_management -->|"exports credentials"| node_import_export
node_import_export -->|"transfers config"| node_client_tools
node_options -->|"manages gateways"| node_managed_channels
node_managed_channels -->|"loads resources"| node_managed_list
node_managed_channels -->|"changes resources"| node_managed_mutations
node_managed_channels -->|"migrates resources"| node_migration
node_managed_channels -->|"connects gateway"| node_gateway_sites
node_options -->|"configures sync"| node_model_sync
node_model_sync -->|"syncs models"| node_gateway_sites
node_background -->|"schedules tasks"| node_checkin
node_background -->|"reads settings"| node_local_storage
node_relay_sites -->|"provides notices"| node_announcements
node_announcements -->|"persists notices"| node_local_storage
node_local_storage -.->|"backs up when enabled"| node_webdav

click node_options "https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/App.tsx"
click node_account_mgmt "https://github.com/qixing-jk/all-api-hub/blob/main/src/features/AccountManagement/AccountManagement.tsx"
click node_account_dialog "https://github.com/qixing-jk/all-api-hub/blob/main/src/features/AccountManagement/components/AccountDialog/index.tsx"
click node_usage "https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/UsageAnalytics/index.tsx"
click node_balance "https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/BalanceHistory/index.tsx"
click node_checkin "https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/AutoCheckin/index.tsx"
click node_content "https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/content/webAiApiCheck/index.ts"
click node_background "https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/background/index.ts"
click node_key_management "https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/KeyManagement/index.tsx"
click node_key_controller "https://github.com/qixing-jk/all-api-hub/blob/main/src/features/KeyManagement/controllers/useAccountKeyResourceController.ts"
click node_verification "https://github.com/qixing-jk/all-api-hub/blob/main/src/components/dialogs/VerifyApiDialog/index.tsx"
click node_verification_history "https://github.com/qixing-jk/all-api-hub/blob/main/src/services/verification/verificationResultHistory/storage.ts"
click node_import_export "https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/ImportExport/index.tsx"
click node_managed_channels "https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/ManagedSiteChannels/index.tsx"
click node_managed_list "https://github.com/qixing-jk/all-api-hub/blob/main/src/features/ManagedSiteChannels/controllers/useManagedResourceListController.ts"
click node_managed_mutations "https://github.com/qixing-jk/all-api-hub/blob/main/src/features/ManagedSiteChannels/controllers/useManagedResourceMutationController.ts"
click node_migration "https://github.com/qixing-jk/all-api-hub/blob/main/src/features/ManagedSiteChannels/controllers/useManagedResourceMigrationController.ts"
click node_model_sync "https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/ManagedSiteModelSync/index.tsx"
click node_announcements "https://github.com/qixing-jk/all-api-hub/blob/main/src/services/siteAnnouncements/storage.ts"
click node_webdav "https://github.com/qixing-jk/all-api-hub/blob/main/src/constants/importExport.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_options,node_account_mgmt,node_account_dialog,node_usage,node_balance,node_user,node_client_tools,node_browser toneBlue
class node_key_management,node_key_controller,node_verification,node_verification_history,node_import_export toneAmber
class node_checkin,node_content toneMint
class node_managed_channels,node_managed_list,node_managed_mutations,node_migration,node_model_sync toneRose
class node_background,node_announcements,node_local_storage,node_webdav,node_relay_sites,node_gateway_sites toneIndigo
```

## Components

### Accounts and insights

- [Options UI](https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/App.tsx): `src/entrypoints/options/App.tsx`
- [Account management](https://github.com/qixing-jk/all-api-hub/blob/main/src/features/AccountManagement/AccountManagement.tsx): `src/features/AccountManagement/AccountManagement.tsx`
- [Account onboarding](https://github.com/qixing-jk/all-api-hub/blob/main/src/features/AccountManagement/components/AccountDialog/index.tsx): `src/features/AccountManagement/components/AccountDialog/index.tsx`
- [Usage analytics](https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/UsageAnalytics/index.tsx): `src/entrypoints/options/pages/UsageAnalytics/index.tsx`
- [Balance history](https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/BalanceHistory/index.tsx): `src/entrypoints/options/pages/BalanceHistory/index.tsx`

### Credentials and verification

- [Credential library](https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/KeyManagement/index.tsx): `src/entrypoints/options/pages/KeyManagement/index.tsx`
- [Credential controller](https://github.com/qixing-jk/all-api-hub/blob/main/src/features/KeyManagement/controllers/useAccountKeyResourceController.ts): `src/features/KeyManagement/controllers/useAccountKeyResourceController.ts`
- [API verification](https://github.com/qixing-jk/all-api-hub/blob/main/src/components/dialogs/VerifyApiDialog/index.tsx): `src/components/dialogs/VerifyApiDialog/index.tsx`
- [Verification history](https://github.com/qixing-jk/all-api-hub/blob/main/src/services/verification/verificationResultHistory/storage.ts): `src/services/verification/verificationResultHistory/storage.ts`
- [Import and export](https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/ImportExport/index.tsx): `src/entrypoints/options/pages/ImportExport/index.tsx`

### Automation and capture

- [Auto check-in](https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/AutoCheckin/index.tsx): `src/entrypoints/options/pages/AutoCheckin/index.tsx`
- [Page capture](https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/content/webAiApiCheck/index.ts): `src/entrypoints/content/webAiApiCheck/index.ts`

### Gateway management

- [Gateway channels](https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/ManagedSiteChannels/index.tsx): `src/entrypoints/options/pages/ManagedSiteChannels/index.tsx`
- [Resource listing](https://github.com/qixing-jk/all-api-hub/blob/main/src/features/ManagedSiteChannels/controllers/useManagedResourceListController.ts): `src/features/ManagedSiteChannels/controllers/useManagedResourceListController.ts`
- [Resource mutations](https://github.com/qixing-jk/all-api-hub/blob/main/src/features/ManagedSiteChannels/controllers/useManagedResourceMutationController.ts): `src/features/ManagedSiteChannels/controllers/useManagedResourceMutationController.ts`
- [Resource migration](https://github.com/qixing-jk/all-api-hub/blob/main/src/features/ManagedSiteChannels/controllers/useManagedResourceMigrationController.ts): `src/features/ManagedSiteChannels/controllers/useManagedResourceMigrationController.ts`
- [Model synchronization](https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/options/pages/ManagedSiteModelSync/index.tsx): `src/entrypoints/options/pages/ManagedSiteModelSync/index.tsx`

### Extension platform

- [Background runtime](https://github.com/qixing-jk/all-api-hub/blob/main/src/entrypoints/background/index.ts): `src/entrypoints/background/index.ts`
- [Site announcements](https://github.com/qixing-jk/all-api-hub/blob/main/src/services/siteAnnouncements/storage.ts): `src/services/siteAnnouncements/storage.ts`
- **Browser local storage**
- [WebDAV sync](https://github.com/qixing-jk/all-api-hub/blob/main/src/constants/importExport.ts): `src/constants/importExport.ts`

### Other components

- **User**
- **Relay sites**
- **Self-hosted gateways**
- **Client tools**
- **Browser pages**

## Connections

- User → Options UI: opens
- Options UI → Account management: manages
- Account management → Account onboarding: adds accounts
- Account onboarding → Relay sites: discovers account
- Account management → Relay sites: fetches account data
- Account management → Browser local storage: stores accounts
- Options UI → Usage analytics: views trends
- Options UI → Balance history: reviews balances
- Options UI → Auto check-in: runs check-ins
- Auto check-in → Relay sites: claims rewards
- Browser pages → Page capture: exposes page data
- Page capture → User: offers capture
- User → Credential library: manages credentials
- Credential library → Credential controller: loads and edits
- Credential controller → Browser local storage: persists changes
- Credential library → API verification: tests credentials
- API verification → Relay sites: probes API
- API verification → Verification history: records results
- Credential library → Import and export: exports credentials
- Import and export → Client tools: transfers config
- Options UI → Gateway channels: manages gateways
- Gateway channels → Resource listing: loads resources
- Gateway channels → Resource mutations: changes resources
- Gateway channels → Resource migration: migrates resources
- Gateway channels → Self-hosted gateways: connects gateway
- Options UI → Model synchronization: configures sync
- Model synchronization → Self-hosted gateways: syncs models
- Background runtime → Auto check-in: schedules tasks
- Background runtime → Browser local storage: reads settings
- Relay sites → Site announcements: provides notices
- Site announcements → Browser local storage: persists notices
- Browser local storage → WebDAV sync: backs up when enabled
