# hyacinthe-primus/chromashell architecture

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

- Interactive diagram: https://gitdiagram.com/hyacinthe-primus/chromashell
- Repository: https://github.com/hyacinthe-primus/chromashell

## Overview

ChromaShell is a modular PowerShell environment for Windows. At interactive startup, the profile loader configures the shell and loads five concern-specific modules; the welcome experience and prompt then accompany the user’s command workflow. A separate fastfetch launcher chooses ASCII art and a palette before invoking fastfetch with its base configuration. The README documents module responsibilities and these startup relationships, but no source excerpts were provided, so the graph does not assert finer-grained calls or command internals.

Main entry points: [`profile/Microsoft.PowerShell_profile.ps1`](https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Microsoft.PowerShell_profile.ps1) (Profile loader), [`fastfetch/fastfetch-random.ps1`](https://github.com/hyacinthe-primus/chromashell/blob/main/fastfetch/fastfetch-random.ps1) (Random fetch launcher), [`profile/Modules/PoshKit.Welcome/PoshKit.Welcome.psm1`](https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Modules/PoshKit.Welcome/PoshKit.Welcome.psm1) (Welcome banner), [`profile/Modules/PoshKit.Shell/PoshKit.Shell.psm1`](https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Modules/PoshKit.Shell/PoshKit.Shell.psm1) (Prompt and shell helpers)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_startup["Shell startup"]
  node_profile["Profile loader"]
  node_welcome["Welcome banner"]
end

subgraph group_commands["Shell commands"]
  node_prompt["Prompt and shell helpers<br/>[PoshKit.Shell.psm1]"]
  node_files["File commands<br/>[PoshKit.Files.psm1]"]
  node_system["System commands"]
  node_tools["Utility commands<br/>[PoshKit.Tools.psm1]"]
end

subgraph group_display["Terminal display"]
  node_fetcher["Random fetch launcher"]
  node_art["ASCII art collection"]
  node_fetchconfig["Fastfetch base config<br/>[config.jsonc]"]
  node_terminalsettings["Terminal settings<br/>[settings.json]"]
end

node_user(("Shell user"))
node_terminal["Windows Terminal"]
node_fetch["fastfetch"]

node_user -->|"opens shell"| node_terminal
node_terminal -->|"loads profile"| node_profile
node_profile -->|"loads module"| node_welcome
node_profile -->|"loads module"| node_prompt
node_profile -->|"loads module"| node_files
node_profile -->|"loads module"| node_system
node_profile -->|"loads module"| node_tools
node_profile -->|"runs at startup"| node_fetcher
node_fetcher -->|"chooses art"| node_art
node_fetcher -->|"uses config"| node_fetchconfig
node_fetcher -->|"runs"| node_fetch
node_terminal -->|"uses settings"| node_terminalsettings

click node_profile "https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Microsoft.PowerShell_profile.ps1"
click node_welcome "https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Modules/PoshKit.Welcome/PoshKit.Welcome.psm1"
click node_prompt "https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Modules/PoshKit.Shell/PoshKit.Shell.psm1"
click node_files "https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Modules/PoshKit.Files/PoshKit.Files.psm1"
click node_system "https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Modules/PoshKit.System/PoshKit.System.psm1"
click node_tools "https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Modules/PoshKit.Tools/PoshKit.Tools.psm1"
click node_fetcher "https://github.com/hyacinthe-primus/chromashell/blob/main/fastfetch/fastfetch-random.ps1"
click node_art "https://github.com/hyacinthe-primus/chromashell/tree/main/fastfetch/ascii"
click node_fetchconfig "https://github.com/hyacinthe-primus/chromashell/blob/main/fastfetch/config.jsonc"
click node_terminalsettings "https://github.com/hyacinthe-primus/chromashell/blob/main/windows-terminal/settings.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_profile,node_welcome,node_user toneBlue
class node_prompt,node_files,node_system,node_tools toneAmber
class node_fetcher,node_art,node_fetchconfig,node_terminalsettings toneMint
class node_terminal,node_fetch toneIndigo
```

## Components

### Shell startup

- [Profile loader](https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Microsoft.PowerShell_profile.ps1): `profile/Microsoft.PowerShell_profile.ps1`
- [Welcome banner](https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Modules/PoshKit.Welcome/PoshKit.Welcome.psm1): `profile/Modules/PoshKit.Welcome/PoshKit.Welcome.psm1`

### Shell commands

- [Prompt and shell helpers](https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Modules/PoshKit.Shell/PoshKit.Shell.psm1): `profile/Modules/PoshKit.Shell/PoshKit.Shell.psm1`
- [File commands](https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Modules/PoshKit.Files/PoshKit.Files.psm1): `profile/Modules/PoshKit.Files/PoshKit.Files.psm1`
- [System commands](https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Modules/PoshKit.System/PoshKit.System.psm1): `profile/Modules/PoshKit.System/PoshKit.System.psm1`
- [Utility commands](https://github.com/hyacinthe-primus/chromashell/blob/main/profile/Modules/PoshKit.Tools/PoshKit.Tools.psm1): `profile/Modules/PoshKit.Tools/PoshKit.Tools.psm1`

### Terminal display

- [Random fetch launcher](https://github.com/hyacinthe-primus/chromashell/blob/main/fastfetch/fastfetch-random.ps1): `fastfetch/fastfetch-random.ps1`
- [ASCII art collection](https://github.com/hyacinthe-primus/chromashell/tree/main/fastfetch/ascii): `fastfetch/ascii`
- [Fastfetch base config](https://github.com/hyacinthe-primus/chromashell/blob/main/fastfetch/config.jsonc): `fastfetch/config.jsonc`
- [Terminal settings](https://github.com/hyacinthe-primus/chromashell/blob/main/windows-terminal/settings.json): `windows-terminal/settings.json`

### Other components

- **Shell user**
- **Windows Terminal**
- **fastfetch**

## Connections

- Shell user → Windows Terminal: opens shell (evidence: `README.md`)
- Windows Terminal → Profile loader: loads profile (evidence: `README.md`)
- Profile loader → Welcome banner: loads module (evidence: `README.md`)
- Profile loader → Prompt and shell helpers: loads module (evidence: `README.md`)
- Profile loader → File commands: loads module (evidence: `README.md`)
- Profile loader → System commands: loads module (evidence: `README.md`)
- Profile loader → Utility commands: loads module (evidence: `README.md`)
- Profile loader → Random fetch launcher: runs at startup (evidence: `README.md`)
- Random fetch launcher → ASCII art collection: chooses art (evidence: `README.md`)
- Random fetch launcher → Fastfetch base config: uses config (evidence: `README.md`)
- Random fetch launcher → fastfetch: runs (evidence: `README.md`)
- Windows Terminal → Terminal settings: uses settings (evidence: `README.md`)
