Architecture
Each feature lives in its own module.
Modules are found automatically at runtime.
Changes appear on the next menu render.
UI, config, and business logic stay isolated.
app/modules/<name>/controller.pyregister(menu) -> Nonemenu.add("Label", handler)app/core/menu.py, ui.py, status.py
config.py and cron_runtime.py
app/modules/*/service.py
app/libraries/*/ integrations and utilities
run.py -> app.main.main()
-> scan app/modules/*/controller.py
-> import modules and call register(menu)
-> render menu and execute selected handler
-> loop repeats and picks up changes
This loop is what makes TerminalOS ideal for rapid iteration.