GUIDE · 08
Architecture
A tour of the focused C++ modules and their ownership boundaries.
Core model
- App — CLI state, input loop, modes, and action dispatch
- Ui and Terminal — ncurses rendering and RAII terminal lifecycle
- Manager — tabs, clipboard, configuration, and task coordination
- Tab — directory listing, cursor, selection, and navigation history
Focused services
- filesystem — metadata, sorting, copy/move/remove, and trash
- config, keymap, theme — validated user customization
- preview — safe text, directory, binary, and metadata previews
- search — fuzzy matching and recursive filename traversal
- task — owned worker threads with progress and cancellation state
Repository layout
include/zari/ Module interfaces
src/ Implementations
tests/ Non-TUI tests
themes/ Built-in presets
packaging/ Debian and Arch metadata
docs/wiki/ Repository wiki
site/ Next.js documentation siteDesign constraints
Zari uses no global mutable application state, raw owning pointers, plugin runtime, or shell interpolation for filesystem operations. The project deliberately favors direct C++ and POSIX APIs.