# jingw-ui/autotask-ui- architecture

> Architecture diagram of the GitHub repository jingw-ui/autotask-ui-, 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/jingw-ui/autotask-ui-
- Repository: https://github.com/jingw-ui/autotask-ui-

## Overview

AutoTask-UI is a PySide6 desktop tool for creating, managing, and running GUI automation tasks. The documented workflow is to define ordered actions in the task editor, save them as JSON task files, then run them against desktop applications; actions include image- or coordinate-based clicks, typing, scrolling, and waits. Scheduling and image matching are documented capabilities, but the excerpts do not show their implementation details. The app is concentrated in main_plus.py, so internal components share that path; optional AI-client wiring is shown separately.

Main entry points: [`main_plus.py`](https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py) (Automation UI), [`config`](https://github.com/jingw-ui/autotask-ui-/tree/main/config) (JSON task files)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_authoring["Task authoring"]
  node_app["Automation UI<br/>[main_plus.py]"]
  node_task_manager["Task manager<br/>[main_plus.py]"]
  node_step_editor["Step editor<br/>[main_plus.py]"]
  node_schedule["Task scheduling<br/>[main_plus.py]"]
end

subgraph group_runtime["Automation runtime"]
  node_runner["Task runner<br/>[main_plus.py]"]
  node_image_match["Image matching<br/>[main_plus.py]"]
  node_input_actions["Mouse and keyboard<br/>[main_plus.py]"]
end

subgraph group_support["Configuration and AI"]
  node_task_files["JSON task files"]
  node_config_helper["Config access<br/>[main_plus.py]"]
  node_chat_client["Chat client<br/>[main_plus.py]"]
end

node_user(("Desktop user"))
node_target_apps(("Desktop applications"))
node_ai_services(("Kimi / Doubao"))

node_user -->|"operates"| node_app
node_app -->|"manages tasks"| node_task_manager
node_app -->|"edits steps"| node_step_editor
node_app -->|"configures schedule"| node_schedule
node_task_manager -->|"loads / saves"| node_task_files
node_app -->|"starts / stops"| node_runner
node_runner -->|"locates targets"| node_image_match
node_runner -->|"dispatches actions"| node_input_actions
node_input_actions -->|"controls"| node_target_apps
node_config_helper -->|"reads config"| node_task_files
node_chat_client -.->|"sends requests"| node_ai_services

click node_app "https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py"
click node_task_manager "https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py"
click node_step_editor "https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py"
click node_schedule "https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py"
click node_task_files "https://github.com/jingw-ui/autotask-ui-/tree/main/config"
click node_runner "https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py"
click node_image_match "https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py"
click node_input_actions "https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py"
click node_config_helper "https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py"
click node_chat_client "https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.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_app,node_task_manager,node_step_editor,node_schedule,node_user toneBlue
class node_runner,node_image_match,node_input_actions toneAmber
class node_task_files,node_config_helper,node_chat_client toneMint
class node_target_apps,node_ai_services toneIndigo
```

## Components

### Task authoring

- [Automation UI](https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py): `main_plus.py`
- [Task manager](https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py): `main_plus.py`
- [Step editor](https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py): `main_plus.py`
- [Task scheduling](https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py): `main_plus.py`

### Automation runtime

- [Task runner](https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py): `main_plus.py`
- [Image matching](https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py): `main_plus.py`
- [Mouse and keyboard](https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py): `main_plus.py`

### Configuration and AI

- [JSON task files](https://github.com/jingw-ui/autotask-ui-/tree/main/config): `config`
- [Config access](https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py): `main_plus.py`
- [Chat client](https://github.com/jingw-ui/autotask-ui-/blob/main/main_plus.py): `main_plus.py`

### Other components

- **Desktop user**
- **Desktop applications**
- **Kimi / Doubao**

## Connections

- Desktop user → Automation UI: operates
- Automation UI → Task manager: manages tasks
- Automation UI → Step editor: edits steps
- Automation UI → Task scheduling: configures schedule
- Task manager → JSON task files: loads / saves
- Automation UI → Task runner: starts / stops
- Task runner → Image matching: locates targets
- Task runner → Mouse and keyboard: dispatches actions
- Mouse and keyboard → Desktop applications: controls
- Config access → JSON task files: reads config
- Chat client → Kimi / Doubao: sends requests
