# coontzy1/andork architecture

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

- Interactive diagram: https://gitdiagram.com/coontzy1/andork
- Repository: https://github.com/coontzy1/andork

## Overview

andork is a single-file OSINT reconnaissance CLI with two documented workflows: dork searches and document-metadata harvesting. The README describes both end-to-end; sampled source confirms the DDG search, Google browser pagination, downloads, resume state, and report generation. Since much of andork.py is unsampled, the graph omits uncertain internal call wiring and shows only documented workflow relationships.

Main entry points: [`andork.py`](https://github.com/coontzy1/andork/blob/main/andork.py) (Metadata mode), [`dorks`](https://github.com/coontzy1/andork/tree/main/dorks) (Curated dorks)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["CLI and orchestration"]
  node_cli["CLI entry<br/>[andork.py]"]
  node_dork_mode["Dork mode<br/>[andork.py]"]
  node_metadata_mode["Metadata mode<br/>[andork.py]"]
end

subgraph group_search["Search and dork data"]
  node_dork_catalog["Curated dorks"]
  node_custom_dorks["Custom dork file"]
  node_ddg["DuckDuckGo search<br/>[andork.py]"]
  node_google["Google search<br/>[andork.py]"]
end

subgraph group_metadata["Metadata harvest"]
  node_download["Document download<br/>[andork.py]"]
  node_target_files[("Downloaded files")]
  node_exiftool["Exif extraction<br/>[andork.py]"]
  node_metadata_records["Metadata records"]
  node_resume_state[("Resume state")]
end

subgraph group_reports["Findings and reports"]
  node_findings["Dork findings"]
  node_dork_report["Dork report<br/>[andork.py]"]
  node_metadata_report["Metadata report<br/>[andork.py]"]
end

node_assessor(("Assessor"))
node_search_engines(("Search engines"))
node_target(("Target domain"))
node_exif_service["exiftool"]
node_output[("Generated output")]

node_assessor -->|"invokes"| node_cli
node_cli -->|"dispatches"| node_dork_mode
node_cli -->|"dispatches"| node_metadata_mode
node_dork_mode -->|"loads queries"| node_dork_catalog
node_dork_mode -.->|"loads queries"| node_custom_dorks
node_dork_mode -->|"runs searches"| node_ddg
node_dork_mode -->|"runs searches"| node_google
node_metadata_mode -->|"searches files"| node_ddg
node_metadata_mode -->|"searches files"| node_google
node_ddg -->|"queries"| node_search_engines
node_google -->|"queries"| node_search_engines
node_dork_mode -->|"targets"| node_target
node_metadata_mode -->|"targets"| node_target
node_metadata_mode -->|"downloads results"| node_download
node_download -->|"writes files"| node_target_files
node_metadata_mode -->|"extracts metadata"| node_exiftool
node_exiftool -->|"reads files"| node_target_files
node_exiftool -->|"invokes"| node_exif_service
node_metadata_mode -->|"saves progress"| node_resume_state
node_metadata_mode -->|"writes records"| node_metadata_records
node_dork_mode -->|"writes findings"| node_findings
node_dork_mode -->|"renders report"| node_dork_report
node_metadata_mode -->|"renders report"| node_metadata_report
node_dork_report -->|"writes report"| node_output
node_findings -->|"writes findings"| node_output
node_metadata_report -->|"writes report"| node_output
node_metadata_records -->|"writes metadata"| node_output

click node_cli "https://github.com/coontzy1/andork/blob/main/andork.py"
click node_dork_mode "https://github.com/coontzy1/andork/blob/main/andork.py"
click node_metadata_mode "https://github.com/coontzy1/andork/blob/main/andork.py"
click node_dork_catalog "https://github.com/coontzy1/andork/tree/main/dorks"
click node_ddg "https://github.com/coontzy1/andork/blob/main/andork.py"
click node_google "https://github.com/coontzy1/andork/blob/main/andork.py"
click node_download "https://github.com/coontzy1/andork/blob/main/andork.py"
click node_exiftool "https://github.com/coontzy1/andork/blob/main/andork.py"
click node_dork_report "https://github.com/coontzy1/andork/blob/main/andork.py"
click node_metadata_report "https://github.com/coontzy1/andork/blob/main/andork.py"

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_cli,node_dork_mode,node_metadata_mode toneBlue
class node_dork_catalog,node_custom_dorks,node_ddg,node_google,node_output toneAmber
class node_download,node_target_files,node_exiftool,node_metadata_records,node_resume_state toneMint
class node_findings,node_dork_report,node_metadata_report toneRose
class node_assessor,node_search_engines,node_target,node_exif_service toneIndigo
```

## Components

### CLI and orchestration

- [CLI entry](https://github.com/coontzy1/andork/blob/main/andork.py): `andork.py`
- [Dork mode](https://github.com/coontzy1/andork/blob/main/andork.py): `andork.py`
- [Metadata mode](https://github.com/coontzy1/andork/blob/main/andork.py): `andork.py`

### Search and dork data

- [Curated dorks](https://github.com/coontzy1/andork/tree/main/dorks): `dorks`
- **Custom dork file**
- [DuckDuckGo search](https://github.com/coontzy1/andork/blob/main/andork.py): `andork.py`
- [Google search](https://github.com/coontzy1/andork/blob/main/andork.py): `andork.py`

### Metadata harvest

- [Document download](https://github.com/coontzy1/andork/blob/main/andork.py): `andork.py`
- **Downloaded files**
- [Exif extraction](https://github.com/coontzy1/andork/blob/main/andork.py): `andork.py`
- **Metadata records**
- **Resume state**

### Findings and reports

- **Dork findings**
- [Dork report](https://github.com/coontzy1/andork/blob/main/andork.py): `andork.py`
- [Metadata report](https://github.com/coontzy1/andork/blob/main/andork.py): `andork.py`

### Other components

- **Assessor**
- **Search engines**
- **Target domain**
- **exiftool**
- **Generated output**

## Connections

- Assessor → CLI entry: invokes
- CLI entry → Dork mode: dispatches
- CLI entry → Metadata mode: dispatches
- Dork mode → Curated dorks: loads queries
- Dork mode → Custom dork file: loads queries
- Dork mode → DuckDuckGo search: runs searches
- Dork mode → Google search: runs searches
- Metadata mode → DuckDuckGo search: searches files
- Metadata mode → Google search: searches files
- DuckDuckGo search → Search engines: queries
- Google search → Search engines: queries
- Dork mode → Target domain: targets
- Metadata mode → Target domain: targets
- Metadata mode → Document download: downloads results
- Document download → Downloaded files: writes files
- Metadata mode → Exif extraction: extracts metadata
- Exif extraction → Downloaded files: reads files
- Exif extraction → exiftool: invokes
- Metadata mode → Resume state: saves progress
- Metadata mode → Metadata records: writes records
- Dork mode → Dork findings: writes findings
- Dork mode → Dork report: renders report
- Metadata mode → Metadata report: renders report
- Dork report → Generated output: writes report
- Dork findings → Generated output: writes findings
- Metadata report → Generated output: writes report
- Metadata records → Generated output: writes metadata
