How idursun/jjui works
jjui is a terminal interface for Jujutsu. A user launches it in a repository, navigates revisions or the operation log, selects an action, and sees updated repository state or a preview. Its documented workflows include revset completion, revision details and diffs, rebase/squash/bookmark changes, undo/redo, Git push/fetch, and evolog. The graph captures the entry point and sampled parsing, preview, and credential flows; several feature modules are included from the tree and README, but their internal call wiring was not sampled.
Main entry points: main.go CLI startup · ui.go UI model · dispatcher.go Action dispatch · commands.go Jujutsu commands
Components 22
Application entry
- CLI startup
cmd/jjui/main.go - App context
internal/ui/context/main_context.go
Terminal interaction
- UI model
internal/ui/ui.go - Key bindings
internal/ui/bindings/binding.go - Action dispatch
internal/ui/dispatch/dispatcher.go - UI intents
internal/ui/intents/intent.go - Terminal rendering
internal/ui/render/display_context.go
Jujutsu workflows
- Revision browser
internal/ui/revisions/revisions.go - Revset editor
internal/ui/revset/revset.go - Revision log parser
internal/parser/streaming_log_parser.go - Revision operations
internal/ui/operations/operation.go - Revision details
internal/ui/operations/details/details.go - Bookmark browser
internal/ui/bookmarkpane/bookmarkpane.go - Operation log
internal/ui/oplog/operation_log.go - Preview panel
internal/ui/preview/preview.go - Jujutsu commands
internal/jj/commands.go
Configuration and credentials
- Config loader
internal/config/loader.go - Lua setup
internal/scripting/lua.go - Credential backchannel
internal/askpass/server.go
Other components
- User
- Terminal
- Jujutsu CLI
Connections 15
- User → CLI startup: launches
- CLI startup → Jujutsu CLI: finds repository
- CLI startup → App context: creates context
- CLI startup → Config loader: loads settings
- CLI startup → Lua setup: initializes Lua
- CLI startup → UI model: starts program
- Terminal → UI model: provides input
- UI model → Terminal: renders output
- Key bindings → Action dispatch: resolves actions
- Action dispatch → UI intents: dispatches intent
- Revision browser → Revision log parser: parses log stream
- Preview panel → Jujutsu commands: requests preview
- Jujutsu commands → Jujutsu CLI: runs commands
- Credential backchannel → Terminal: prompts credentials
- Jujutsu CLI → Credential backchannel: requests credentials