# hypn05/mac_setup architecture

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

## Overview

dev_setup is a cross-platform developer-environment setup repository. The principal workflow is a user selecting modules through the installer, which detects the OS and dispatches to independent setup scripts; those scripts install tools and link or copy configuration. The README also documents standalone modules, a read-only health check, Windows-host bootstrap, shell utilities, and terminal/editor configuration. Relationships below are based on the README and layout; source excerpts were unavailable, so implementation details beyond those documented are omitted.

Main entry points: [`install.sh`](https://github.com/hypn05/mac_setup/blob/main/install.sh) (Module dispatcher), [`modules/zsh.sh`](https://github.com/hypn05/mac_setup/blob/main/modules/zsh.sh) (Zsh setup), [`modules/editor.sh`](https://github.com/hypn05/mac_setup/blob/main/modules/editor.sh) (Editor setup), [`modules/git.sh`](https://github.com/hypn05/mac_setup/blob/main/modules/git.sh) (Git setup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_dispatch["Setup entry points"]
  node_installer["Module dispatcher<br/>[install.sh]"]
  node_bootstrap["Windows bootstrap<br/>[bootstrap.ps1]"]
end

subgraph group_modules["Install modules"]
  node_doctor["Health check<br/>[doctor.sh]"]
  node_git["Git setup<br/>[git.sh]"]
  node_docker["Docker setup<br/>[docker.sh]"]
  node_k8s["Kubernetes setup<br/>[k8s.sh]"]
  node_zsh["Zsh setup<br/>[zsh.sh]"]
  node_editor["Editor setup<br/>[editor.sh]"]
  node_wezterm["WezTerm setup<br/>[wezterm.sh]"]
  node_iterm["iTerm setup<br/>[iterm.sh]"]
  node_touchid["Touch ID setup<br/>[touchid.sh]"]
end

subgraph group_shell["Shell experience"]
  node_shortcuts["Shortcut registry<br/>[shortcuts.zsh]"]
  node_theme["Theme switcher<br/>[theme.sh]"]
  node_clipboard["Clipboard shims"]
  node_tmuxcopy["Tmux clipboard helper"]
end

subgraph group_configs["Environment configuration"]
  node_zshrc["Zsh configuration"]
  node_starship["Starship prompt<br/>[starship.toml]"]
  node_gitconfig["Git configuration<br/>[gitconfig.template]"]
  node_helixconfig["Helix configuration<br/>[config.toml]"]
  node_tmuxconfig["Tmux configuration<br/>[tmux.conf]"]
  node_weztermconfig["WezTerm configuration<br/>[wezterm.lua]"]
end

node_user(("Developer"))

node_user -->|"selects modules"| node_installer
node_user -->|"starts bootstrap"| node_bootstrap
node_installer -->|"dispatches"| node_git
node_installer -->|"dispatches"| node_docker
node_installer -->|"dispatches"| node_k8s
node_installer -->|"dispatches"| node_zsh
node_installer -->|"dispatches"| node_editor
node_installer -->|"dispatches"| node_wezterm
node_installer -->|"dispatches"| node_iterm
node_installer -->|"dispatches"| node_touchid
node_installer -->|"runs check"| node_doctor
node_git -->|"copies once"| node_gitconfig
node_zsh -->|"symlinks"| node_zshrc
node_zsh -->|"symlinks"| node_shortcuts
node_zsh -->|"links prompt"| node_starship
node_zsh -->|"installs"| node_theme
node_zsh -->|"installs shims"| node_clipboard
node_editor -->|"symlinks"| node_helixconfig
node_editor -->|"symlinks"| node_tmuxconfig
node_editor -->|"installs"| node_tmuxcopy
node_wezterm -->|"links config"| node_weztermconfig

click node_installer "https://github.com/hypn05/mac_setup/blob/main/install.sh"
click node_bootstrap "https://github.com/hypn05/mac_setup/blob/main/windows/bootstrap.ps1"
click node_doctor "https://github.com/hypn05/mac_setup/blob/main/modules/doctor.sh"
click node_git "https://github.com/hypn05/mac_setup/blob/main/modules/git.sh"
click node_docker "https://github.com/hypn05/mac_setup/blob/main/modules/docker.sh"
click node_k8s "https://github.com/hypn05/mac_setup/blob/main/modules/k8s.sh"
click node_zsh "https://github.com/hypn05/mac_setup/blob/main/modules/zsh.sh"
click node_editor "https://github.com/hypn05/mac_setup/blob/main/modules/editor.sh"
click node_wezterm "https://github.com/hypn05/mac_setup/blob/main/modules/wezterm.sh"
click node_iterm "https://github.com/hypn05/mac_setup/blob/main/modules/iterm.sh"
click node_touchid "https://github.com/hypn05/mac_setup/blob/main/modules/touchid.sh"
click node_shortcuts "https://github.com/hypn05/mac_setup/blob/main/zsh/shortcuts.zsh"
click node_theme "https://github.com/hypn05/mac_setup/blob/main/bin/theme.sh"
click node_clipboard "https://github.com/hypn05/mac_setup/blob/main/bin/pbcopy"
click node_tmuxcopy "https://github.com/hypn05/mac_setup/blob/main/bin/tmux-copy"
click node_zshrc "https://github.com/hypn05/mac_setup/blob/main/zsh/zshrc"
click node_starship "https://github.com/hypn05/mac_setup/blob/main/starship.toml"
click node_gitconfig "https://github.com/hypn05/mac_setup/blob/main/git/gitconfig.template"
click node_helixconfig "https://github.com/hypn05/mac_setup/blob/main/helix/config.toml"
click node_tmuxconfig "https://github.com/hypn05/mac_setup/blob/main/tmux/tmux.conf"
click node_weztermconfig "https://github.com/hypn05/mac_setup/blob/main/wezterm/wezterm.lua"

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_installer,node_bootstrap toneBlue
class node_doctor,node_git,node_docker,node_k8s,node_zsh,node_editor,node_wezterm,node_iterm,node_touchid toneAmber
class node_shortcuts,node_theme,node_clipboard,node_tmuxcopy toneMint
class node_zshrc,node_starship,node_gitconfig,node_helixconfig,node_tmuxconfig,node_weztermconfig toneRose
class node_user toneIndigo
```

## Components

### Setup entry points

- [Module dispatcher](https://github.com/hypn05/mac_setup/blob/main/install.sh): `install.sh`
- [Windows bootstrap](https://github.com/hypn05/mac_setup/blob/main/windows/bootstrap.ps1): `windows/bootstrap.ps1`

### Install modules

- [Health check](https://github.com/hypn05/mac_setup/blob/main/modules/doctor.sh): `modules/doctor.sh`
- [Git setup](https://github.com/hypn05/mac_setup/blob/main/modules/git.sh): `modules/git.sh`
- [Docker setup](https://github.com/hypn05/mac_setup/blob/main/modules/docker.sh): `modules/docker.sh`
- [Kubernetes setup](https://github.com/hypn05/mac_setup/blob/main/modules/k8s.sh): `modules/k8s.sh`
- [Zsh setup](https://github.com/hypn05/mac_setup/blob/main/modules/zsh.sh): `modules/zsh.sh`
- [Editor setup](https://github.com/hypn05/mac_setup/blob/main/modules/editor.sh): `modules/editor.sh`
- [WezTerm setup](https://github.com/hypn05/mac_setup/blob/main/modules/wezterm.sh): `modules/wezterm.sh`
- [iTerm setup](https://github.com/hypn05/mac_setup/blob/main/modules/iterm.sh): `modules/iterm.sh`
- [Touch ID setup](https://github.com/hypn05/mac_setup/blob/main/modules/touchid.sh): `modules/touchid.sh`

### Shell experience

- [Shortcut registry](https://github.com/hypn05/mac_setup/blob/main/zsh/shortcuts.zsh): `zsh/shortcuts.zsh`
- [Theme switcher](https://github.com/hypn05/mac_setup/blob/main/bin/theme.sh): `bin/theme.sh`
- [Clipboard shims](https://github.com/hypn05/mac_setup/blob/main/bin/pbcopy): `bin/pbcopy`
- [Tmux clipboard helper](https://github.com/hypn05/mac_setup/blob/main/bin/tmux-copy): `bin/tmux-copy`

### Environment configuration

- [Zsh configuration](https://github.com/hypn05/mac_setup/blob/main/zsh/zshrc): `zsh/zshrc`
- [Starship prompt](https://github.com/hypn05/mac_setup/blob/main/starship.toml): `starship.toml`
- [Git configuration](https://github.com/hypn05/mac_setup/blob/main/git/gitconfig.template): `git/gitconfig.template`
- [Helix configuration](https://github.com/hypn05/mac_setup/blob/main/helix/config.toml): `helix/config.toml`
- [Tmux configuration](https://github.com/hypn05/mac_setup/blob/main/tmux/tmux.conf): `tmux/tmux.conf`
- [WezTerm configuration](https://github.com/hypn05/mac_setup/blob/main/wezterm/wezterm.lua): `wezterm/wezterm.lua`

### Other components

- **Developer**

## Connections

- Developer → Module dispatcher: selects modules (evidence: `README.md`)
- Developer → Windows bootstrap: starts bootstrap (evidence: `README.md`)
- Module dispatcher → Git setup: dispatches (evidence: `README.md`)
- Module dispatcher → Docker setup: dispatches (evidence: `README.md`)
- Module dispatcher → Kubernetes setup: dispatches (evidence: `README.md`)
- Module dispatcher → Zsh setup: dispatches (evidence: `README.md`)
- Module dispatcher → Editor setup: dispatches (evidence: `README.md`)
- Module dispatcher → WezTerm setup: dispatches (evidence: `README.md`)
- Module dispatcher → iTerm setup: dispatches (evidence: `README.md`)
- Module dispatcher → Touch ID setup: dispatches (evidence: `README.md`)
- Module dispatcher → Health check: runs check (evidence: `README.md`)
- Git setup → Git configuration: copies once (evidence: `README.md`)
- Zsh setup → Zsh configuration: symlinks (evidence: `README.md`)
- Zsh setup → Shortcut registry: symlinks (evidence: `README.md`)
- Zsh setup → Starship prompt: links prompt (evidence: `README.md`)
- Zsh setup → Theme switcher: installs (evidence: `README.md`)
- Zsh setup → Clipboard shims: installs shims (evidence: `README.md`)
- Editor setup → Helix configuration: symlinks (evidence: `README.md`)
- Editor setup → Tmux configuration: symlinks (evidence: `README.md`)
- Editor setup → Tmux clipboard helper: installs (evidence: `README.md`)
- WezTerm setup → WezTerm configuration: links config (evidence: `README.md`)
