How Solo's architecture works
mainSolo is a TUI (Terminal User Interface) built for Laravel that operates using three primary components:
- Dashboard: The central TUI controller that manages command tabs, keyboard input, and coordinates the rendering process.
- Commands: Individual processes running in separate tabs. Each command manages its own subprocess lifecycle, output buffering, and scroll state.
- Renderer: Responsible for frame generation, including the tab bar, command output, hotkey bar, and layout borders.
The data flow follows this path: Subprocess → stdout → Command::collectIncrementalOutput() → Screen::write() → Screen buffer → Screen::output() → Renderer → Terminal.