# megumiss/nikkeautoscript architecture

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

- Interactive diagram: https://gitdiagram.com/megumiss/nikkeautoscript
- Repository: https://github.com/megumiss/nikkeautoscript

## Overview

NIKKEAutoScript automates NIKKE daily and event activities across Windows and Android, with a Web UI for managing instances, schedules, configuration, and operations. A typical workflow is to configure tasks and a device, then run task commands through the automation runtime, which interacts with the game and can publish logs or previews. The README also documents many independent game modes, statistics, notifications, updates, and deployment options. Some feature modules are represented by their exact directories because their source was not sampled; those relationships are omitted where evidence is insufficient.

Main entry points: [`main.py`](https://github.com/megumiss/nikkeautoscript/blob/master/main.py) (Task runner), [`module/webui/app.py`](https://github.com/megumiss/nikkeautoscript/blob/master/module/webui/app.py) (Web service), [`webui/src/App.vue`](https://github.com/megumiss/nikkeautoscript/blob/master/webui/src/App.vue) (Web UI), [`module/config/config.py`](https://github.com/megumiss/nikkeautoscript/blob/master/module/config/config.py) (Task configuration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interfaces["User interfaces"]
  node_webui["Web UI<br/>[App.vue]"]
  node_dashboard["Workspace views"]
  node_backend["Web service<br/>[app.py]"]
  node_api["API routes"]
end

subgraph group_control["Control and configuration"]
  node_runner["Task runner<br/>[main.py]"]
  node_config["Task configuration<br/>[config.py]"]
  node_config_update["Config updates<br/>[config_updater.py]"]
  node_processes["Instance manager<br/>[process_manager.py]"]
  node_schedule["Scheduling<br/>[routes_schedule.py]"]
end

subgraph group_automation["Game automation"]
  node_daily["Daily activities<br/>[daily.py]"]
  node_recruit["Daily recruitment<br/>[daily_recruit.py]"]
  node_events["Event activities"]
  node_outpost["Outpost activities"]
  node_ark["Ark activities"]
  node_limited["Limited operations"]
end

subgraph group_device["Device and vision"]
  node_device_runtime["Device control"]
  node_vision["Button matching<br/>[button.py]"]
  node_templates["Image templates<br/>[template.py]"]
  node_vdd["Virtual displays<br/>[vdd.py]"]
end

subgraph group_operations["Operations and data"]
  node_stats[("Warehouse statistics<br/>[data.py]")]
  node_notifications["Notifications"]
  node_updates["Automatic updates<br/>[updater.py]"]
  node_remote["Remote access<br/>[remote_access.py]"]
  node_logs["Logging<br/>[logger.py]"]
end

node_user(("Operator"))

node_user -->|"operates"| node_webui
node_webui -->|"renders"| node_dashboard
node_webui -.->|"uses API"| node_backend
node_backend -->|"registers routes"| node_api
node_backend -->|"manages instances"| node_processes
node_backend -.->|"starts scheduler"| node_schedule
node_runner -->|"runs"| node_recruit
node_runner -->|"runs"| node_outpost
node_runner -->|"runs"| node_limited
node_runner -->|"loads configuration"| node_config
node_config -->|"uses"| node_config_update
node_runner -.->|"controls"| node_device_runtime
node_vision -->|"uses resources"| node_templates
node_device_runtime -.->|"enables displays"| node_vdd
node_processes -->|"starts tasks"| node_runner
node_backend -->|"schedules updates"| node_updates
node_backend -.->|"configures access"| node_remote
node_backend -->|"loads statistics"| node_stats
node_runner -.->|"records results"| node_stats
node_runner -.->|"sends notifications"| node_notifications
node_runner -->|"logs activity"| node_logs
node_user -->|"configures schedules"| node_schedule

click node_webui "https://github.com/megumiss/nikkeautoscript/blob/master/webui/src/App.vue"
click node_dashboard "https://github.com/megumiss/nikkeautoscript/tree/master/webui/src/views"
click node_backend "https://github.com/megumiss/nikkeautoscript/blob/master/module/webui/app.py"
click node_api "https://github.com/megumiss/nikkeautoscript/tree/master/module/webui/api"
click node_runner "https://github.com/megumiss/nikkeautoscript/blob/master/main.py"
click node_config "https://github.com/megumiss/nikkeautoscript/blob/master/module/config/config.py"
click node_config_update "https://github.com/megumiss/nikkeautoscript/blob/master/module/config/config_updater.py"
click node_processes "https://github.com/megumiss/nikkeautoscript/blob/master/module/webui/process_manager.py"
click node_schedule "https://github.com/megumiss/nikkeautoscript/blob/master/module/webui/api/routes_schedule.py"
click node_daily "https://github.com/megumiss/nikkeautoscript/blob/master/module/daily/daily.py"
click node_recruit "https://github.com/megumiss/nikkeautoscript/blob/master/module/daily_recruit/daily_recruit.py"
click node_events "https://github.com/megumiss/nikkeautoscript/tree/master/module/event"
click node_outpost "https://github.com/megumiss/nikkeautoscript/tree/master/module/outpost"
click node_ark "https://github.com/megumiss/nikkeautoscript/tree/master/module/simulation_room"
click node_limited "https://github.com/megumiss/nikkeautoscript/tree/master/module/coop"
click node_device_runtime "https://github.com/megumiss/nikkeautoscript/tree/master/module/device"
click node_vision "https://github.com/megumiss/nikkeautoscript/blob/master/module/base/button.py"
click node_templates "https://github.com/megumiss/nikkeautoscript/blob/master/module/base/template.py"
click node_vdd "https://github.com/megumiss/nikkeautoscript/blob/master/module/device/win/vdd.py"
click node_stats "https://github.com/megumiss/nikkeautoscript/blob/master/module/warehouse_stats/data.py"
click node_notifications "https://github.com/megumiss/nikkeautoscript/tree/master/module/notify"
click node_updates "https://github.com/megumiss/nikkeautoscript/blob/master/module/webui/updater.py"
click node_remote "https://github.com/megumiss/nikkeautoscript/blob/master/module/webui/remote_access.py"
click node_logs "https://github.com/megumiss/nikkeautoscript/blob/master/module/logger.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_webui,node_dashboard,node_backend,node_api toneBlue
class node_runner,node_config,node_config_update,node_processes,node_schedule toneAmber
class node_daily,node_recruit,node_events,node_outpost,node_ark,node_limited toneMint
class node_device_runtime,node_vision,node_templates,node_vdd toneRose
class node_stats,node_notifications,node_updates,node_remote,node_logs,node_user toneIndigo
```

## Components

### User interfaces

- [Web UI](https://github.com/megumiss/nikkeautoscript/blob/master/webui/src/App.vue): `webui/src/App.vue`
- [Workspace views](https://github.com/megumiss/nikkeautoscript/tree/master/webui/src/views): `webui/src/views`
- [Web service](https://github.com/megumiss/nikkeautoscript/blob/master/module/webui/app.py): `module/webui/app.py`
- [API routes](https://github.com/megumiss/nikkeautoscript/tree/master/module/webui/api): `module/webui/api`

### Control and configuration

- [Task runner](https://github.com/megumiss/nikkeautoscript/blob/master/main.py): `main.py`
- [Task configuration](https://github.com/megumiss/nikkeautoscript/blob/master/module/config/config.py): `module/config/config.py`
- [Config updates](https://github.com/megumiss/nikkeautoscript/blob/master/module/config/config_updater.py): `module/config/config_updater.py`
- [Instance manager](https://github.com/megumiss/nikkeautoscript/blob/master/module/webui/process_manager.py): `module/webui/process_manager.py`
- [Scheduling](https://github.com/megumiss/nikkeautoscript/blob/master/module/webui/api/routes_schedule.py): `module/webui/api/routes_schedule.py`

### Game automation

- [Daily activities](https://github.com/megumiss/nikkeautoscript/blob/master/module/daily/daily.py): `module/daily/daily.py`
- [Daily recruitment](https://github.com/megumiss/nikkeautoscript/blob/master/module/daily_recruit/daily_recruit.py): `module/daily_recruit/daily_recruit.py`
- [Event activities](https://github.com/megumiss/nikkeautoscript/tree/master/module/event): `module/event`
- [Outpost activities](https://github.com/megumiss/nikkeautoscript/tree/master/module/outpost): `module/outpost`
- [Ark activities](https://github.com/megumiss/nikkeautoscript/tree/master/module/simulation_room): `module/simulation_room`
- [Limited operations](https://github.com/megumiss/nikkeautoscript/tree/master/module/coop): `module/coop`

### Device and vision

- [Device control](https://github.com/megumiss/nikkeautoscript/tree/master/module/device): `module/device`
- [Button matching](https://github.com/megumiss/nikkeautoscript/blob/master/module/base/button.py): `module/base/button.py`
- [Image templates](https://github.com/megumiss/nikkeautoscript/blob/master/module/base/template.py): `module/base/template.py`
- [Virtual displays](https://github.com/megumiss/nikkeautoscript/blob/master/module/device/win/vdd.py): `module/device/win/vdd.py`

### Operations and data

- [Warehouse statistics](https://github.com/megumiss/nikkeautoscript/blob/master/module/warehouse_stats/data.py): `module/warehouse_stats/data.py`
- [Notifications](https://github.com/megumiss/nikkeautoscript/tree/master/module/notify): `module/notify`
- [Automatic updates](https://github.com/megumiss/nikkeautoscript/blob/master/module/webui/updater.py): `module/webui/updater.py`
- [Remote access](https://github.com/megumiss/nikkeautoscript/blob/master/module/webui/remote_access.py): `module/webui/remote_access.py`
- [Logging](https://github.com/megumiss/nikkeautoscript/blob/master/module/logger.py): `module/logger.py`

### Other components

- **Operator**

## Connections

- Operator → Web UI: operates (evidence: `README.md`)
- Web UI → Workspace views: renders (evidence: `webui/src/App.vue`)
- Web UI → Web service: uses API
- Web service → API routes: registers routes (evidence: `module/webui/app.py`)
- Web service → Instance manager: manages instances (evidence: `module/webui/app.py`)
- Web service → Scheduling: starts scheduler
- Task runner → Daily recruitment: runs (evidence: `main.py`)
- Task runner → Outpost activities: runs (evidence: `main.py`)
- Task runner → Limited operations: runs (evidence: `main.py`)
- Task runner → Task configuration: loads configuration (evidence: `main.py`)
- Task configuration → Config updates: uses (evidence: `module/config/config.py`)
- Task runner → Device control: controls (evidence: `main.py`)
- Button matching → Image templates: uses resources (evidence: `module/base/button.py`)
- Device control → Virtual displays: enables displays (evidence: `module/device/win/parsec_vdd.py`)
- Instance manager → Task runner: starts tasks (evidence: `module/webui/process_manager.py`)
- Web service → Automatic updates: schedules updates (evidence: `module/webui/app.py`)
- Web service → Remote access: configures access (evidence: `module/webui/app.py`)
- Web service → Warehouse statistics: loads statistics (evidence: `module/webui/app.py`)
- Task runner → Warehouse statistics: records results (evidence: `main.py`)
- Task runner → Notifications: sends notifications (evidence: `main.py`)
- Task runner → Logging: logs activity (evidence: `main.py`)
- Operator → Scheduling: configures schedules (evidence: `README.md`)
