# qukiame/nova-ide architecture

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

- Interactive diagram: https://gitdiagram.com/qukiame/nova-ide
- Repository: https://github.com/qukiame/nova-ide

## Overview

Nova IDE is a single-file PySide6 desktop code editor. The main workflow is opening a project, opening files in tabs, editing and searching code, then optionally running Python, Node.js, or Bash code and viewing output in a tab. The README documents several capabilities whose implementation details are outside the excerpts; those links are grounded in the README rather than claims about unsampled code.

Main entry points: [`nova_ide.py`](https://github.com/qukiame/nova-ide/blob/master/nova_ide.py) (Main window)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application"]
  node_entry["App startup<br/>[nova_ide.py]"]
  node_window["Main window<br/>[nova_ide.py]"]
  node_theme["Nova theme<br/>[nova_ide.py]"]
  node_menus["Menus and shortcuts<br/>[nova_ide.py]"]
  node_status["Status bar<br/>[nova_ide.py]"]
end

subgraph group_editing["Editing"]
  node_tabs["Editor tabs<br/>[nova_ide.py]"]
  node_editor["Code editor<br/>[nova_ide.py]"]
  node_highlight["Syntax highlighting<br/>[nova_ide.py]"]
  node_search["Find and replace<br/>[nova_ide.py]"]
end

subgraph group_project["Project workflow"]
  node_tree["Project file tree<br/>[nova_ide.py]"]
end

subgraph group_execution["Code execution"]
  node_runner["Code execution<br/>[nova_ide.py]"]
  node_output["Output tab<br/>[nova_ide.py]"]
  node_interpreters["Python, Node.js, Bash"]
end

node_user(("Developer"))

node_user -->|"launches"| node_entry
node_entry -->|"opens"| node_window
node_window -->|"applies"| node_theme
node_window -->|"provides"| node_menus
node_window -->|"creates"| node_tree
node_tree -->|"opens files"| node_window
node_window -->|"hosts"| node_tabs
node_tabs -->|"contains"| node_editor
node_editor -->|"highlights code"| node_highlight
node_editor -->|"supports search"| node_search
node_window -->|"shows status"| node_status
node_window -->|"starts on F5"| node_runner
node_runner -->|"runs with"| node_interpreters
node_runner -->|"shows output"| node_output

click node_entry "https://github.com/qukiame/nova-ide/blob/master/nova_ide.py"
click node_window "https://github.com/qukiame/nova-ide/blob/master/nova_ide.py"
click node_theme "https://github.com/qukiame/nova-ide/blob/master/nova_ide.py"
click node_menus "https://github.com/qukiame/nova-ide/blob/master/nova_ide.py"
click node_tree "https://github.com/qukiame/nova-ide/blob/master/nova_ide.py"
click node_tabs "https://github.com/qukiame/nova-ide/blob/master/nova_ide.py"
click node_editor "https://github.com/qukiame/nova-ide/blob/master/nova_ide.py"
click node_highlight "https://github.com/qukiame/nova-ide/blob/master/nova_ide.py"
click node_search "https://github.com/qukiame/nova-ide/blob/master/nova_ide.py"
click node_status "https://github.com/qukiame/nova-ide/blob/master/nova_ide.py"
click node_runner "https://github.com/qukiame/nova-ide/blob/master/nova_ide.py"
click node_output "https://github.com/qukiame/nova-ide/blob/master/nova_ide.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_entry,node_window,node_theme,node_menus,node_status toneBlue
class node_tabs,node_editor,node_highlight,node_search toneAmber
class node_tree toneMint
class node_runner,node_output,node_interpreters toneRose
class node_user toneIndigo
```

## Components

### Application

- [App startup](https://github.com/qukiame/nova-ide/blob/master/nova_ide.py): `nova_ide.py`
- [Main window](https://github.com/qukiame/nova-ide/blob/master/nova_ide.py): `nova_ide.py`
- [Nova theme](https://github.com/qukiame/nova-ide/blob/master/nova_ide.py): `nova_ide.py`
- [Menus and shortcuts](https://github.com/qukiame/nova-ide/blob/master/nova_ide.py): `nova_ide.py`
- [Status bar](https://github.com/qukiame/nova-ide/blob/master/nova_ide.py): `nova_ide.py`

### Editing

- [Editor tabs](https://github.com/qukiame/nova-ide/blob/master/nova_ide.py): `nova_ide.py`
- [Code editor](https://github.com/qukiame/nova-ide/blob/master/nova_ide.py): `nova_ide.py`
- [Syntax highlighting](https://github.com/qukiame/nova-ide/blob/master/nova_ide.py): `nova_ide.py`
- [Find and replace](https://github.com/qukiame/nova-ide/blob/master/nova_ide.py): `nova_ide.py`

### Project workflow

- [Project file tree](https://github.com/qukiame/nova-ide/blob/master/nova_ide.py): `nova_ide.py`

### Code execution

- [Code execution](https://github.com/qukiame/nova-ide/blob/master/nova_ide.py): `nova_ide.py`
- [Output tab](https://github.com/qukiame/nova-ide/blob/master/nova_ide.py): `nova_ide.py`
- **Python, Node.js, Bash**

### Other components

- **Developer**

## Connections

- Developer → App startup: launches (evidence: `README.md`)
- App startup → Main window: opens (evidence: `README.md`)
- Main window → Nova theme: applies (evidence: `README.md`)
- Main window → Menus and shortcuts: provides (evidence: `README.md`)
- Main window → Project file tree: creates (evidence: `nova_ide.py`)
- Project file tree → Main window: opens files (evidence: `nova_ide.py`)
- Main window → Editor tabs: hosts (evidence: `README.md`)
- Editor tabs → Code editor: contains (evidence: `README.md`)
- Code editor → Syntax highlighting: highlights code (evidence: `README.md`)
- Code editor → Find and replace: supports search (evidence: `README.md`)
- Main window → Status bar: shows status (evidence: `README.md`)
- Main window → Code execution: starts on F5 (evidence: `README.md`)
- Code execution → Python, Node.js, Bash: runs with (evidence: `README.md`)
- Code execution → Output tab: shows output (evidence: `README.md`)
