# mertaltinbas/security-tools-command-builder architecture

> Architecture diagram of the GitHub repository mertaltinbas/security-tools-command-builder, 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/mertaltinbas/security-tools-command-builder
- Repository: https://github.com/mertaltinbas/security-tools-command-builder

## Overview

Security Command Builder is a desktop GUI for composing command lines for configured security tools. Users select a tool, enter mandatory values, choose flags and inputs, and receive a live command preview they can copy. Presets can be applied, saved, or deleted. Tool definitions in JSON provide the tool-specific fields, options, presets, and base commands. The excerpts establish the main module calls; the JSON contents and some UI event wiring were not sampled, so the graph shows only supported relationships.

Main entry points: [`ui_manager.py`](https://github.com/mertaltinbas/security-tools-command-builder/blob/main/ui_manager.py) (Builder interface), [`backend_logic.py`](https://github.com/mertaltinbas/security-tools-command-builder/blob/main/backend_logic.py) (Command/data logic), [`preset_manager.py`](https://github.com/mertaltinbas/security-tools-command-builder/blob/main/preset_manager.py) (Preset management), [`main.py`](https://github.com/mertaltinbas/security-tools-command-builder/blob/main/main.py) (App entry point)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_startup["Application startup"]
  node_main["App entry point<br/>[main.py]"]
end

subgraph group_interface["Command composition UI"]
  node_ui["Builder interface<br/>[ui_manager.py]"]
  node_toolinputs["Tool inputs and flags<br/>[ui_manager.py]"]
  node_modefilter["Basic/Advanced modes<br/>[ui_manager.py]"]
  node_preview["Command preview<br/>[ui_manager.py]"]
end

subgraph group_logic["Command and presets"]
  node_backend["Command/data logic<br/>[backend_logic.py]"]
  node_presetmgr["Preset management<br/>[preset_manager.py]"]
end

subgraph group_definitions["Tool definitions"]
  node_tooldata["Tool definitions"]
  node_ffuf["FFuf definition<br/>[ffuf.json]"]
  node_hydra["Hydra definition<br/>[hydra.json]"]
  node_nmap["Nmap definition<br/>[nmap.json]"]
end

node_user(("User"))
node_clipboard["System clipboard"]

node_main -->|"starts"| node_ui
node_user -->|"interacts"| node_ui
node_ui -->|"loads definitions"| node_backend
node_backend -->|"reads/writes"| node_ffuf
node_backend -->|"reads/writes"| node_hydra
node_backend -->|"reads/writes"| node_nmap
node_tooldata -.->|"JSON directory"| node_backend
node_ui -->|"builds"| node_toolinputs
node_user -->|"enters/selects"| node_toolinputs
node_user -->|"switches"| node_modefilter
node_modefilter -->|"filters flags"| node_toolinputs
node_toolinputs -->|"widget state"| node_ui
node_ui -->|"requests command"| node_backend
node_backend -->|"returns command"| node_preview
node_user -->|"copies command"| node_preview
node_ui -->|"copies text"| node_clipboard
node_user -->|"manages presets"| node_presetmgr
node_ui -->|"delegates preset actions"| node_presetmgr
node_presetmgr -->|"reads/saves data"| node_backend
node_presetmgr -->|"applies values"| node_toolinputs
node_presetmgr -->|"updates selection"| node_ui

click node_main "https://github.com/mertaltinbas/security-tools-command-builder/blob/main/main.py"
click node_ui "https://github.com/mertaltinbas/security-tools-command-builder/blob/main/ui_manager.py"
click node_toolinputs "https://github.com/mertaltinbas/security-tools-command-builder/blob/main/ui_manager.py"
click node_modefilter "https://github.com/mertaltinbas/security-tools-command-builder/blob/main/ui_manager.py"
click node_preview "https://github.com/mertaltinbas/security-tools-command-builder/blob/main/ui_manager.py"
click node_backend "https://github.com/mertaltinbas/security-tools-command-builder/blob/main/backend_logic.py"
click node_presetmgr "https://github.com/mertaltinbas/security-tools-command-builder/blob/main/preset_manager.py"
click node_tooldata "https://github.com/mertaltinbas/security-tools-command-builder/tree/main/tools_data"
click node_ffuf "https://github.com/mertaltinbas/security-tools-command-builder/blob/main/tools_data/ffuf.json"
click node_hydra "https://github.com/mertaltinbas/security-tools-command-builder/blob/main/tools_data/hydra.json"
click node_nmap "https://github.com/mertaltinbas/security-tools-command-builder/blob/main/tools_data/nmap.json"

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_main,node_user toneBlue
class node_ui,node_toolinputs,node_modefilter,node_preview toneAmber
class node_backend,node_presetmgr toneMint
class node_tooldata,node_ffuf,node_hydra,node_nmap toneRose
class node_clipboard toneIndigo
```

## Components

### Application startup

- [App entry point](https://github.com/mertaltinbas/security-tools-command-builder/blob/main/main.py): `main.py`

### Command composition UI

- [Builder interface](https://github.com/mertaltinbas/security-tools-command-builder/blob/main/ui_manager.py): `ui_manager.py`
- [Tool inputs and flags](https://github.com/mertaltinbas/security-tools-command-builder/blob/main/ui_manager.py): `ui_manager.py`
- [Basic/Advanced modes](https://github.com/mertaltinbas/security-tools-command-builder/blob/main/ui_manager.py): `ui_manager.py`
- [Command preview](https://github.com/mertaltinbas/security-tools-command-builder/blob/main/ui_manager.py): `ui_manager.py`

### Command and presets

- [Command/data logic](https://github.com/mertaltinbas/security-tools-command-builder/blob/main/backend_logic.py): `backend_logic.py`
- [Preset management](https://github.com/mertaltinbas/security-tools-command-builder/blob/main/preset_manager.py): `preset_manager.py`

### Tool definitions

- [Tool definitions](https://github.com/mertaltinbas/security-tools-command-builder/tree/main/tools_data): `tools_data`
- [FFuf definition](https://github.com/mertaltinbas/security-tools-command-builder/blob/main/tools_data/ffuf.json): `tools_data/ffuf.json`
- [Hydra definition](https://github.com/mertaltinbas/security-tools-command-builder/blob/main/tools_data/hydra.json): `tools_data/hydra.json`
- [Nmap definition](https://github.com/mertaltinbas/security-tools-command-builder/blob/main/tools_data/nmap.json): `tools_data/nmap.json`

### Other components

- **User**
- **System clipboard**

## Connections

- App entry point → Builder interface: starts
- User → Builder interface: interacts
- Builder interface → Command/data logic: loads definitions
- Command/data logic → FFuf definition: reads/writes
- Command/data logic → Hydra definition: reads/writes
- Command/data logic → Nmap definition: reads/writes
- Tool definitions → Command/data logic: JSON directory
- Builder interface → Tool inputs and flags: builds
- User → Tool inputs and flags: enters/selects
- User → Basic/Advanced modes: switches
- Basic/Advanced modes → Tool inputs and flags: filters flags
- Tool inputs and flags → Builder interface: widget state
- Builder interface → Command/data logic: requests command
- Command/data logic → Command preview: returns command
- User → Command preview: copies command
- Builder interface → System clipboard: copies text
- User → Preset management: manages presets
- Builder interface → Preset management: delegates preset actions
- Preset management → Command/data logic: reads/saves data
- Preset management → Tool inputs and flags: applies values
- Preset management → Builder interface: updates selection
