# timetetng/wutheringwaves-cli-manager architecture

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

- Interactive diagram: https://gitdiagram.com/timetetng/wutheringwaves-cli-manager
- Repository: https://github.com/timetetng/wutheringwaves-cli-manager
- Video tour (about a minute): https://gitdiagram.com/timetetng/wutheringwaves-cli-manager/video

## Overview

WW Manager is a command-line manager for Wuthering Waves game files. Users select or reuse an installation path, then inspect its server/version, download a client, repair it, switch supported servers, or download and apply incremental updates. The CLI delegates game operations to WGameManager; incremental patch handling is a distinct stage. The README also documents gacha-log link extraction and tool updating. Some source excerpts are partial, so links for those capabilities are limited to the documented CLI entry points.

Main entry points: [`src/ww_manager/core.py`](https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/core.py) (Game manager), [`src/ww_manager/cli.py`](https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/cli.py) (CLI commands), [`src/ww_manager/incremental.py`](https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/incremental.py) (Incremental manager), [`src/ww_manager/download.py`](https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/download.py) (Parallel downloader)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["CLI and settings"]
  node_cli["CLI commands<br/>[cli.py]"]
  node_settings[("Path settings<br/>[config.py]")]
end

subgraph group_game["Game management"]
  node_manager["Game manager<br/>[core.py]"]
  node_gamefiles["Game files"]
  node_md5cache[("MD5 cache<br/>[core.py]")]
  node_diffcache[("Server diff cache<br/>[core.py]")]
end

subgraph group_transfer["Downloads and patches"]
  node_downloader["Parallel downloader<br/>[download.py]"]
  node_incremental["Incremental manager<br/>[incremental.py]"]
  node_hpatchz["Patch utility"]
end

subgraph group_integrations["External services"]
  node_cdn["Game CDN"]
  node_package_sources["Update sources"]
  node_browser["Web browser"]
end

node_user(("User"))

node_user -->|"runs commands"| node_cli
node_cli -->|"loads and saves"| node_settings
node_cli -->|"invokes operations"| node_manager
node_cli -->|"reads status and logs"| node_gamefiles
node_manager -->|"checks and changes"| node_gamefiles
node_manager -->|"reads and updates"| node_md5cache
node_manager -->|"reads and updates"| node_diffcache
node_manager -->|"fetches manifests"| node_cdn
node_manager -->|"sends download tasks"| node_downloader
node_downloader -->|"downloads files"| node_cdn
node_manager -->|"delegates patch work"| node_incremental
node_incremental -->|"fetches patch resources"| node_cdn
node_incremental -->|"applies patches"| node_hpatchz
node_incremental -->|"stages and applies files"| node_gamefiles
node_cli -.->|"checks and updates tool"| node_package_sources
node_cli -.->|"opens log link"| node_browser

click node_cli "https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/cli.py"
click node_settings "https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/config.py"
click node_manager "https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/core.py"
click node_md5cache "https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/core.py"
click node_diffcache "https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/core.py"
click node_downloader "https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/download.py"
click node_incremental "https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/incremental.py"

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_cli,node_settings,node_user toneBlue
class node_manager,node_gamefiles,node_md5cache,node_diffcache toneAmber
class node_downloader,node_incremental,node_hpatchz toneMint
class node_cdn,node_package_sources,node_browser toneRose
```

## Components

### CLI and settings

- [CLI commands](https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/cli.py): `src/ww_manager/cli.py`
- [Path settings](https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/config.py): `src/ww_manager/config.py`

### Game management

- [Game manager](https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/core.py): `src/ww_manager/core.py`
- **Game files**
- [MD5 cache](https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/core.py): `src/ww_manager/core.py`
- [Server diff cache](https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/core.py): `src/ww_manager/core.py`

### Downloads and patches

- [Parallel downloader](https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/download.py): `src/ww_manager/download.py`
- [Incremental manager](https://github.com/timetetng/wutheringwaves-cli-manager/blob/main/src/ww_manager/incremental.py): `src/ww_manager/incremental.py`
- **Patch utility**

### External services

- **Game CDN**
- **Update sources**
- **Web browser**

### Other components

- **User**

## Connections

- User → CLI commands: runs commands
- CLI commands → Path settings: loads and saves
- CLI commands → Game manager: invokes operations
- CLI commands → Game files: reads status and logs
- Game manager → Game files: checks and changes
- Game manager → MD5 cache: reads and updates
- Game manager → Server diff cache: reads and updates
- Game manager → Game CDN: fetches manifests
- Game manager → Parallel downloader: sends download tasks
- Parallel downloader → Game CDN: downloads files
- Game manager → Incremental manager: delegates patch work
- Incremental manager → Game CDN: fetches patch resources
- Incremental manager → Patch utility: applies patches
- Incremental manager → Game files: stages and applies files
- CLI commands → Update sources: checks and updates tool
- CLI commands → Web browser: opens log link
