# zmarcg/ghostshell architecture

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

## Overview

Ghostshell is a terminal-based manager for containerized cybersecurity labs. The documented workflow is: a researcher launches the application, defines or selects a YAML lab profile, and uses the interface to manage a Docker-backed environment and run its associated PoC against the target. The supplied tree contains no application source, so component paths and internal call ownership cannot be verified; the graph captures only relationships stated in the README.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Lab Interface"]
  node_app["Ghostshell application"]
  node_tui["Terminal UI"]
end

subgraph group_workflow["Lab Workflow"]
  node_profile["YAML lab profile"]
  node_containers["Lab containers"]
  node_target["Target environment"]
  node_poc["PoC script"]
end

subgraph group_integrations["Runtime Integrations"]
  node_docker["Docker daemon"]
  node_images["Docker images"]
end

node_researcher(("Researcher"))

node_researcher -->|"launches"| node_app
node_app -->|"presents"| node_tui
node_researcher -->|"defines and manages"| node_tui
node_app -->|"reads"| node_profile
node_app -->|"manages containers"| node_docker
node_docker -->|"pulls"| node_images
node_docker -->|"starts and stops"| node_containers
node_containers -->|"provides lab"| node_target
node_app -->|"runs"| node_poc
node_poc -->|"tests"| node_target

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_app,node_tui toneBlue
class node_profile,node_containers,node_target,node_poc toneAmber
class node_docker,node_images toneMint
class node_researcher toneIndigo
```

## Components

### Lab Interface

- **Ghostshell application**
- **Terminal UI**

### Lab Workflow

- **YAML lab profile**
- **Lab containers**
- **Target environment**
- **PoC script**

### Runtime Integrations

- **Docker daemon**
- **Docker images**

### Other components

- **Researcher**

## Connections

- Researcher → Ghostshell application: launches
- Ghostshell application → Terminal UI: presents
- Researcher → Terminal UI: defines and manages
- Ghostshell application → YAML lab profile: reads
- Ghostshell application → Docker daemon: manages containers
- Docker daemon → Docker images: pulls
- Docker daemon → Lab containers: starts and stops
- Lab containers → Target environment: provides lab
- Ghostshell application → PoC script: runs
- PoC script → Target environment: tests
