How darafarm/lightcodepedia works
Lightcode is a Streamlit-based environment for authoring and exploring Python/YAML modules. A user enters the app, accesses the module editor, loads or previews a module, and can save scripts or serialize module definitions. Separate capabilities include account/repository access, module diagrams, and execution. The graph reflects only relationships visible in excerpts or the source index; YAML module catalogs and several UI features are present in the tree but their runtime wiring was not sampled.
Main entry points: lightcode.py Public API · _play.py Play editor · module_loader.py YAML loader · user_manager.py User management
Components 21
App entry and UI
- App entry
main.py - Public API
lightcode.py - UI utilities
usecases/common/common.py - Play editor
pages/_play.py - About view
usecases/common/view/about_box.py
Module authoring
- Module import
usecases/common/backend/module_importer.py - YAML loader
usecases/common/backend/module_loader.py - Module model
usecases/common/backend/module_wrapper.py - Diagram generation
usecases/module_manager/backend/module_decorator.py - YAML serialization
usecases/module_manager/backend/module_dumper.py - Module catalog
modules
Runtime backend
- Code services
usecases/common/backend/services.py - Settings loader
usecases/common/backend/env_manager.py - Execution tracing
usecases/common/backend/tracing.py
Accounts and storage
- User management
usecases/common/backend/user_manager.py - User state
usecases/common/backend/user_state.py - File access
usecases/common/backend/file_access.py
Other components
- User
- GitHub repository
- Google Sheets
- Streamlit session
Connections 27
- User → App entry: opens
main.py - App entry → Public API: imports
main.py - Public API → UI utilities: re-exports
lightcode.py - Public API → Module import: re-exports
lightcode.py - Public API → YAML serialization: re-exports
lightcode.py - Public API → User management: re-exports
lightcode.py - Public API → Module model: re-exports
lightcode.py - Public API → About view: re-exports
lightcode.py - User → Play editor: uses editor
- Play editor → Public API: uses API
pages/_play.py - Play editor → Module import: previews modules
pages/_play.py - Play editor → Diagram generation: builds diagrams
pages/_play.py - Play editor → YAML serialization: serializes modules
pages/_play.py - Module import → YAML loader: loads modules
usecases/common/backend/module_importer.py - Module import → File access: accesses files
usecases/common/backend/module_importer.py - YAML loader → File access: reads modules
usecases/common/backend/module_loader.py - YAML loader → Module model: creates models
usecases/common/backend/module_loader.py - Diagram generation → Module model: inspects models
usecases/module_manager/backend/module_decorator.py - YAML serialization → Module model: serializes model
usecases/module_manager/backend/module_dumper.py - Code services → YAML loader: loads YAML
usecases/common/backend/services.py - Code services → File access: saves scripts
usecases/common/backend/services.py - File access → GitHub repository: reads and writes
- User management → Settings loader: loads credentials
usecases/common/backend/user_manager.py - User management → User state: uses session state
usecases/common/backend/user_manager.py - User management → Google Sheets: reads and updates
- UI utilities → Streamlit session: updates session
- Module catalog → YAML loader: loaded as modules