# frxfcrder/codekitctx architecture

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

- Interactive diagram: https://gitdiagram.com/frxfcrder/codekitctx
- Repository: https://github.com/frxfcrder/codekitctx

## Overview

CodeKitCtx turns a repository into structured context through scanning, filtering, optional symbol extraction, statistics and tree generation, then formatting and delivery. Users can initiate this workflow through the CLI, Python library, or FastAPI service. The graph reflects the sampled orchestration and the README’s documented formats, prompt wrapping, and API protections; server internals and some compiler modules were only partly sampled, so uncertain wiring is omitted.

Main entry points: [`codekitctx/core/context.py`](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/core/context.py) (Compile orchestrator), [`codekitctx/cli.py`](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/cli.py) (CLI), [`codekitctx/server.py`](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/server.py) (HTTP API), [`codekitctx/core/scanner.py`](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/core/scanner.py) (Repository scanner)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry points"]
  node_cli["CLI<br/>[cli.py]"]
  node_library["Python context API<br/>[context.py]"]
end

subgraph group_pipeline["Context pipeline"]
  node_context["Compile orchestrator<br/>[context.py]"]
  node_scanner["Repository scanner<br/>[scanner.py]"]
  node_filters["File filters<br/>[filters.py]"]
end

subgraph group_analysis["Analysis"]
  node_parser["Symbol parser<br/>[sitter.py]"]
  node_stats["Statistics<br/>[stats.py]"]
  node_tree["Directory tree<br/>[tree.py]"]
end

subgraph group_delivery["Formatting and delivery"]
  node_markdown["Markdown renderer<br/>[markdown.py]"]
  node_json["JSON renderer<br/>[json_fmt.py]"]
  node_prompt["Prompt wrapper<br/>[prompt.py]"]
  node_file_output["File output<br/>[file.py]"]
  node_clipboard["Clipboard output<br/>[clipboard.py]"]
end

subgraph group_api["API service"]
  node_server["HTTP API<br/>[server.py]"]
  node_api_guards["API safeguards<br/>[server.py]"]
end

node_cli_user(("CLI user"))
node_library_user(("Library user"))
node_api_client(("API client"))
node_repository[("Repository files")]
node_terminal(("Terminal"))

node_cli_user -->|"runs"| node_cli
node_cli -->|"compiles via"| node_context
node_library_user -->|"calls"| node_library
node_library -->|"compiles via"| node_context
node_api_client -->|"requests context"| node_server
node_server -->|"checks request"| node_api_guards
node_server -->|"compiles via"| node_context
node_context -->|"scans"| node_scanner
node_scanner -->|"reads files"| node_repository
node_context -->|"filters"| node_filters
node_context -->|"extracts symbols"| node_parser
node_context -->|"calculates stats"| node_stats
node_context -->|"builds tree"| node_tree
node_context -->|"renders Markdown"| node_markdown
node_context -->|"renders JSON"| node_json
node_context -->|"wraps output"| node_prompt
node_cli -->|"saves result"| node_file_output
node_cli -->|"copies result"| node_clipboard
node_cli -->|"writes result"| node_terminal

click node_cli "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/cli.py"
click node_library "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/core/context.py"
click node_server "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/server.py"
click node_api_guards "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/server.py"
click node_context "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/core/context.py"
click node_scanner "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/core/scanner.py"
click node_filters "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/core/filters.py"
click node_parser "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/parser/sitter.py"
click node_stats "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/core/stats.py"
click node_tree "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/core/tree.py"
click node_markdown "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/compiler/markdown.py"
click node_json "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/compiler/json_fmt.py"
click node_prompt "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/compiler/prompt.py"
click node_file_output "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/output/file.py"
click node_clipboard "https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/output/clipboard.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_library,node_cli_user,node_library_user,node_api_client toneBlue
class node_context,node_scanner,node_filters,node_repository toneAmber
class node_parser,node_stats,node_tree toneMint
class node_markdown,node_json,node_prompt,node_file_output,node_clipboard toneRose
class node_server,node_api_guards,node_terminal toneIndigo
```

## Components

### Entry points

- [CLI](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/cli.py): `codekitctx/cli.py`
- [Python context API](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/core/context.py): `codekitctx/core/context.py`

### Context pipeline

- [Compile orchestrator](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/core/context.py): `codekitctx/core/context.py`
- [Repository scanner](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/core/scanner.py): `codekitctx/core/scanner.py`
- [File filters](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/core/filters.py): `codekitctx/core/filters.py`

### Analysis

- [Symbol parser](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/parser/sitter.py): `codekitctx/parser/sitter.py`
- [Statistics](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/core/stats.py): `codekitctx/core/stats.py`
- [Directory tree](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/core/tree.py): `codekitctx/core/tree.py`

### Formatting and delivery

- [Markdown renderer](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/compiler/markdown.py): `codekitctx/compiler/markdown.py`
- [JSON renderer](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/compiler/json_fmt.py): `codekitctx/compiler/json_fmt.py`
- [Prompt wrapper](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/compiler/prompt.py): `codekitctx/compiler/prompt.py`
- [File output](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/output/file.py): `codekitctx/output/file.py`
- [Clipboard output](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/output/clipboard.py): `codekitctx/output/clipboard.py`

### API service

- [HTTP API](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/server.py): `codekitctx/server.py`
- [API safeguards](https://github.com/frxfcrder/codekitctx/blob/main/codekitctx/server.py): `codekitctx/server.py`

### Other components

- **CLI user**
- **Library user**
- **API client**
- **Repository files**
- **Terminal**

## Connections

- CLI user → CLI: runs
- CLI → Compile orchestrator: compiles via
- Library user → Python context API: calls
- Python context API → Compile orchestrator: compiles via
- API client → HTTP API: requests context
- HTTP API → API safeguards: checks request
- HTTP API → Compile orchestrator: compiles via
- Compile orchestrator → Repository scanner: scans
- Repository scanner → Repository files: reads files
- Compile orchestrator → File filters: filters
- Compile orchestrator → Symbol parser: extracts symbols
- Compile orchestrator → Statistics: calculates stats
- Compile orchestrator → Directory tree: builds tree
- Compile orchestrator → Markdown renderer: renders Markdown
- Compile orchestrator → JSON renderer: renders JSON
- Compile orchestrator → Prompt wrapper: wraps output
- CLI → File output: saves result
- CLI → Clipboard output: copies result
- CLI → Terminal: writes result
