# b3nn3tt/kali-linux-setup-tool architecture

> Architecture diagram of the GitHub repository b3nn3tt/kali-linux-setup-tool, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/b3nn3tt/kali-linux-setup-tool
- Repository: https://github.com/b3nn3tt/kali-linux-setup-tool

## Overview

Kali Linux Setup Tool is a modular CLI for preparing a Kali environment for penetration testing. Its principal workflow is to select an operation from the CLI, then manage packages, repositories, system updates, sudo settings, shell customisation, or desktop configuration. The README documents these capabilities and the package/repository templates; source excerpts were not provided, so links reflect documented option-to-capability relationships rather than inspected calls. Core path, error, colour, and logging modules are shown as internal runtime layers, without unverified call edges.

Main entry points: [`kali_linux_setup_tool.sh`](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/kali_linux_setup_tool.sh) (CLI entry point), [`functions/package_install.sh`](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/package_install.sh) (APT package management), [`functions/git_import.sh`](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/git_import.sh) (Repository management), [`functions/perform_system_update.sh`](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/perform_system_update.sh) (System updates)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["CLI and runtime"]
  node_entry["CLI entry point"]
  node_paths["Path resolution<br/>[00_core_paths.sh]"]
  node_colours["Output helpers<br/>[00_core_colours.sh]"]
  node_errors["Errors and validation<br/>[01_core_errors.sh]"]
  node_logging["Logging and tracking<br/>[02_core_logging.sh]"]
  node_banner["Banner display<br/>[display_banner.sh]"]
  node_usage["Usage display<br/>[show_usage.sh]"]
end

subgraph group_system["System management"]
  node_update["System updates"]
  node_packages["APT package management<br/>[package_install.sh]"]
  node_git["Repository management<br/>[git_import.sh]"]
  node_sudo["Sudo management<br/>[sudo_management.sh]"]
end

subgraph group_config["Configuration inputs"]
  node_package_list["Package baseline<br/>[package_list.txt]"]
  node_repository_list["Repository definitions"]
  node_shell_templates["Zsh snippets<br/>[zshrc.d]"]
end

subgraph group_custom["Environment customisation"]
  node_desktop["Desktop setup"]
  node_shell["Shell customisation"]
end

node_user(("Operator"))
node_apt["APT system"]
node_git_service["Git repositories"]

node_user -->|"runs"| node_entry
node_entry -->|"selects banner"| node_banner
node_entry -->|"selects help"| node_usage
node_entry -->|"selects update"| node_update
node_entry -->|"selects packages"| node_packages
node_entry -->|"selects repositories"| node_git
node_entry -->|"selects sudo"| node_sudo
node_entry -->|"selects desktop"| node_desktop
node_entry -->|"selects shell setup"| node_shell
node_packages -->|"uses baseline"| node_package_list
node_git -->|"uses definitions"| node_repository_list
node_shell -->|"installs snippets"| node_shell_templates
node_packages -->|"manages packages"| node_apt
node_update -->|"updates system"| node_apt
node_git -->|"manages clones"| node_git_service

click node_entry "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/kali_linux_setup_tool.sh"
click node_paths "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/00_core_paths.sh"
click node_colours "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/00_core_colours.sh"
click node_errors "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/01_core_errors.sh"
click node_logging "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/02_core_logging.sh"
click node_banner "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/display_banner.sh"
click node_usage "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/show_usage.sh"
click node_update "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/perform_system_update.sh"
click node_packages "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/package_install.sh"
click node_package_list "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/templates/package_list.txt"
click node_git "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/git_import.sh"
click node_repository_list "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/templates/repository_list.csv"
click node_sudo "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/sudo_management.sh"
click node_desktop "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/desktop_environment_setup.sh"
click node_shell "https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/shell_customisation.sh"
click node_shell_templates "https://github.com/b3nn3tt/kali-linux-setup-tool/tree/main/templates/zshrc.d"

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_entry,node_paths,node_colours,node_errors,node_logging,node_banner,node_usage toneBlue
class node_update,node_packages,node_git,node_sudo toneAmber
class node_package_list,node_repository_list,node_shell_templates toneMint
class node_desktop,node_shell toneRose
class node_user,node_apt,node_git_service toneIndigo
```

## Components

### CLI and runtime

- [CLI entry point](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/kali_linux_setup_tool.sh): `kali_linux_setup_tool.sh`
- [Path resolution](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/00_core_paths.sh): `functions/00_core_paths.sh`
- [Output helpers](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/00_core_colours.sh): `functions/00_core_colours.sh`
- [Errors and validation](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/01_core_errors.sh): `functions/01_core_errors.sh`
- [Logging and tracking](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/02_core_logging.sh): `functions/02_core_logging.sh`
- [Banner display](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/display_banner.sh): `functions/display_banner.sh`
- [Usage display](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/show_usage.sh): `functions/show_usage.sh`

### System management

- [System updates](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/perform_system_update.sh): `functions/perform_system_update.sh`
- [APT package management](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/package_install.sh): `functions/package_install.sh`
- [Repository management](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/git_import.sh): `functions/git_import.sh`
- [Sudo management](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/sudo_management.sh): `functions/sudo_management.sh`

### Configuration inputs

- [Package baseline](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/templates/package_list.txt): `templates/package_list.txt`
- [Repository definitions](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/templates/repository_list.csv): `templates/repository_list.csv`
- [Zsh snippets](https://github.com/b3nn3tt/kali-linux-setup-tool/tree/main/templates/zshrc.d): `templates/zshrc.d`

### Environment customisation

- [Desktop setup](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/desktop_environment_setup.sh): `functions/desktop_environment_setup.sh`
- [Shell customisation](https://github.com/b3nn3tt/kali-linux-setup-tool/blob/main/functions/shell_customisation.sh): `functions/shell_customisation.sh`

### Other components

- **Operator**
- **APT system**
- **Git repositories**

## Connections

- Operator → CLI entry point: runs (evidence: `README.md`)
- CLI entry point → Banner display: selects banner (evidence: `README.md`)
- CLI entry point → Usage display: selects help (evidence: `README.md`)
- CLI entry point → System updates: selects update (evidence: `README.md`)
- CLI entry point → APT package management: selects packages (evidence: `README.md`)
- CLI entry point → Repository management: selects repositories (evidence: `README.md`)
- CLI entry point → Sudo management: selects sudo (evidence: `README.md`)
- CLI entry point → Desktop setup: selects desktop (evidence: `README.md`)
- CLI entry point → Shell customisation: selects shell setup (evidence: `README.md`)
- APT package management → Package baseline: uses baseline (evidence: `README.md`)
- Repository management → Repository definitions: uses definitions (evidence: `README.md`)
- Shell customisation → Zsh snippets: installs snippets (evidence: `README.md`)
- APT package management → APT system: manages packages (evidence: `README.md`)
- System updates → APT system: updates system (evidence: `README.md`)
- Repository management → Git repositories: manages clones (evidence: `README.md`)
