# marcussanmg/kali-dotfiles architecture

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

- Interactive diagram: https://gitdiagram.com/marcussanmg/kali-dotfiles
- Repository: https://github.com/marcussanmg/kali-dotfiles

## Overview

Kali Workstation is a personal Kali Linux dotfiles environment for pentesting and lab work. The main workflow is to open a terminal with a persistent tmux session, set an engagement target, and keep target and network context visible while working with tools, notes, and browser-testing software. The documented configuration also covers desktop controls, session recovery, screenshots, and BloodHound helpers. Relationships here follow the README; source excerpts were not available, so uncertain script-level wiring is omitted.

Main entry points: [`zsh/.zshrc`](https://github.com/marcussanmg/kali-dotfiles/blob/main/zsh/.zshrc) (Zsh Shell), [`i3/config`](https://github.com/marcussanmg/kali-dotfiles/blob/main/i3/config) (i3 Desktop), [`bin/tmux-attach-picker`](https://github.com/marcussanmg/kali-dotfiles/blob/main/bin/tmux-attach-picker) (Session Picker), [`kitty/kitty.conf`](https://github.com/marcussanmg/kali-dotfiles/blob/main/kitty/kitty.conf) (Kitty Terminal)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["Desktop"]
  node_i3["i3 Desktop"]
  node_rofi["Rofi Menus"]
  node_desktop_scripts["Desktop Utilities"]
  node_screenshots["Screenshots"]
end

subgraph group_terminal["Terminal Workflow"]
  node_kitty["Kitty Terminal<br/>[kitty.conf]"]
  node_tmux["tmux Sessions<br/>[tmux.conf]"]
  node_picker["Session Picker"]
  node_tmux_scripts["Session Helpers"]
  node_zsh["Zsh Shell<br/>[.zshrc]"]
end

subgraph group_engagement["Engagement Context"]
  node_target["Target Selection"]
  node_target_display["Target Status"]
  node_network_status["Network Status"]
  node_engagement_helpers["Engagement Helpers"]
  node_toolkit["Organized Toolkit"]
end

subgraph group_tools["Tools and References"]
  node_firefox["Firefox Setup<br/>[policies.json]"]
  node_burp["Burp Helpers<br/>[setup-burp.sh]"]
  node_bloodhound["BloodHound Helpers"]
  node_notes["Reference Notes"]
end

node_user(("Pentester"))
node_network(("Host Network"))
node_vpn(("VPN Interface"))
node_clipboard(("Clipboard"))

node_user -->|"uses desktop"| node_i3
node_i3 -->|"launches terminal"| node_kitty
node_i3 -->|"opens menus"| node_rofi
node_i3 -->|"runs utilities"| node_desktop_scripts
node_desktop_scripts -->|"captures screen"| node_screenshots
node_screenshots -->|"copies capture"| node_clipboard
node_kitty -->|"starts server"| node_tmux
node_user -->|"opens picker"| node_picker
node_picker -->|"lists sessions"| node_tmux
node_picker -->|"opens session"| node_kitty
node_user -->|"runs commands"| node_zsh
node_zsh -->|"sets target"| node_target
node_zsh -->|"runs helpers"| node_engagement_helpers
node_zsh -->|"opens notes"| node_notes
node_i3 -->|"sets target"| node_target
node_zsh -->|"provides target"| node_target_display
node_target_display -->|"shows target"| node_i3
node_network_status -->|"reads address"| node_network
node_network_status -->|"reads address"| node_vpn
node_zsh -->|"reads interface"| node_network
node_zsh -->|"reads address"| node_vpn
node_engagement_helpers -->|"organizes tools"| node_toolkit
node_user -->|"launches browser"| node_firefox
node_user -->|"uses testing proxy"| node_burp
node_user -->|"manages stack"| node_bloodhound

click node_i3 "https://github.com/marcussanmg/kali-dotfiles/blob/main/i3/config"
click node_rofi "https://github.com/marcussanmg/kali-dotfiles/tree/main/rofi"
click node_desktop_scripts "https://github.com/marcussanmg/kali-dotfiles/tree/main/bin"
click node_screenshots "https://github.com/marcussanmg/kali-dotfiles/blob/main/bin/screenshot"
click node_kitty "https://github.com/marcussanmg/kali-dotfiles/blob/main/kitty/kitty.conf"
click node_tmux "https://github.com/marcussanmg/kali-dotfiles/blob/main/tmux/tmux.conf"
click node_picker "https://github.com/marcussanmg/kali-dotfiles/blob/main/bin/tmux-attach-picker"
click node_tmux_scripts "https://github.com/marcussanmg/kali-dotfiles/tree/main/tmux/scripts"
click node_zsh "https://github.com/marcussanmg/kali-dotfiles/blob/main/zsh/.zshrc"
click node_target "https://github.com/marcussanmg/kali-dotfiles/blob/main/bin/set-target"
click node_target_display "https://github.com/marcussanmg/kali-dotfiles/blob/main/i3blocks/scripts/target"
click node_network_status "https://github.com/marcussanmg/kali-dotfiles/tree/main/i3blocks/scripts"
click node_engagement_helpers "https://github.com/marcussanmg/kali-dotfiles/tree/main/bin"
click node_toolkit "https://github.com/marcussanmg/kali-dotfiles/tree/main/bin"
click node_firefox "https://github.com/marcussanmg/kali-dotfiles/blob/main/firefox/policies.json"
click node_burp "https://github.com/marcussanmg/kali-dotfiles/blob/main/bin/setup-burp.sh"
click node_bloodhound "https://github.com/marcussanmg/kali-dotfiles/tree/main/bin"
click node_notes "https://github.com/marcussanmg/kali-dotfiles/tree/main/cherrytree"

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_i3,node_rofi,node_desktop_scripts,node_screenshots toneBlue
class node_kitty,node_tmux,node_picker,node_tmux_scripts,node_zsh toneAmber
class node_target,node_target_display,node_network_status,node_engagement_helpers,node_toolkit toneMint
class node_firefox,node_burp,node_bloodhound,node_notes toneRose
class node_user,node_network,node_vpn,node_clipboard toneIndigo
```

## Components

### Desktop

- [i3 Desktop](https://github.com/marcussanmg/kali-dotfiles/blob/main/i3/config): `i3/config`
- [Rofi Menus](https://github.com/marcussanmg/kali-dotfiles/tree/main/rofi): `rofi`
- [Desktop Utilities](https://github.com/marcussanmg/kali-dotfiles/tree/main/bin): `bin`
- [Screenshots](https://github.com/marcussanmg/kali-dotfiles/blob/main/bin/screenshot): `bin/screenshot`

### Terminal Workflow

- [Kitty Terminal](https://github.com/marcussanmg/kali-dotfiles/blob/main/kitty/kitty.conf): `kitty/kitty.conf`
- [tmux Sessions](https://github.com/marcussanmg/kali-dotfiles/blob/main/tmux/tmux.conf): `tmux/tmux.conf`
- [Session Picker](https://github.com/marcussanmg/kali-dotfiles/blob/main/bin/tmux-attach-picker): `bin/tmux-attach-picker`
- [Session Helpers](https://github.com/marcussanmg/kali-dotfiles/tree/main/tmux/scripts): `tmux/scripts`
- [Zsh Shell](https://github.com/marcussanmg/kali-dotfiles/blob/main/zsh/.zshrc): `zsh/.zshrc`

### Engagement Context

- [Target Selection](https://github.com/marcussanmg/kali-dotfiles/blob/main/bin/set-target): `bin/set-target`
- [Target Status](https://github.com/marcussanmg/kali-dotfiles/blob/main/i3blocks/scripts/target): `i3blocks/scripts/target`
- [Network Status](https://github.com/marcussanmg/kali-dotfiles/tree/main/i3blocks/scripts): `i3blocks/scripts`
- [Engagement Helpers](https://github.com/marcussanmg/kali-dotfiles/tree/main/bin): `bin`
- [Organized Toolkit](https://github.com/marcussanmg/kali-dotfiles/tree/main/bin): `bin`

### Tools and References

- [Firefox Setup](https://github.com/marcussanmg/kali-dotfiles/blob/main/firefox/policies.json): `firefox/policies.json`
- [Burp Helpers](https://github.com/marcussanmg/kali-dotfiles/blob/main/bin/setup-burp.sh): `bin/setup-burp.sh`
- [BloodHound Helpers](https://github.com/marcussanmg/kali-dotfiles/tree/main/bin): `bin`
- [Reference Notes](https://github.com/marcussanmg/kali-dotfiles/tree/main/cherrytree): `cherrytree`

### Other components

- **Pentester**
- **Host Network**
- **VPN Interface**
- **Clipboard**

## Connections

- Pentester → i3 Desktop: uses desktop
- i3 Desktop → Kitty Terminal: launches terminal
- i3 Desktop → Rofi Menus: opens menus
- i3 Desktop → Desktop Utilities: runs utilities
- Desktop Utilities → Screenshots: captures screen
- Screenshots → Clipboard: copies capture
- Kitty Terminal → tmux Sessions: starts server
- Pentester → Session Picker: opens picker
- Session Picker → tmux Sessions: lists sessions
- Session Picker → Kitty Terminal: opens session
- Pentester → Zsh Shell: runs commands
- Zsh Shell → Target Selection: sets target
- Zsh Shell → Engagement Helpers: runs helpers
- Zsh Shell → Reference Notes: opens notes
- i3 Desktop → Target Selection: sets target
- Zsh Shell → Target Status: provides target
- Target Status → i3 Desktop: shows target
- Network Status → Host Network: reads address
- Network Status → VPN Interface: reads address
- Zsh Shell → Host Network: reads interface
- Zsh Shell → VPN Interface: reads address
- Engagement Helpers → Organized Toolkit: organizes tools
- Pentester → Firefox Setup: launches browser
- Pentester → Burp Helpers: uses testing proxy
- Pentester → BloodHound Helpers: manages stack
