A modern terminal user interface (TUI) frontend for the multiflexi-cli tool, built with the Charmbracelet Bubbletea framework.
- Comprehensive CLI Coverage: Complete parity with all
multiflexi-cli --format=jsonfunctionality - Entity Management: View, edit, and delete all MultiFlexi entities with full field coverage
- Inline Editors: Edit Jobs, Companies, Applications, and RunTemplates directly in the TUI
- Delete with Confirmation: Safe deletion with Y/N confirmation dialog for all entity types
- Advanced Pagination: Navigate through large datasets with limit/offset controls
- Real-time Status Panel: Live system information from
multiflexi-cli status - Dynamic Menu System: Access all entities through intuitive navigation with active section indicator
- Mouse Support: Click menu items, scroll lists with mouse wheel (GPM/xterm compatible)
- Professional UI: TurboVision-inspired design with green active-section highlighting
- Keyboard Navigation: Efficient controls for all operations
- All MultiFlexi Entities: Full coverage of Applications, Companies, Jobs, Users, RunTemplates, Credentials, Tokens, Artifacts, CredTypes, CrPrototypes, CompanyApps, Encryption, Queue, and Prune operations
- Detail Views: Press Enter/Space to view full record details with action buttons
- Inline Editors: Press 'e' to edit records (Jobs, Companies, Applications, RunTemplates) with multi-field forms
- Delete with Confirmation: Press 'd' in detail view to delete with Y/N safety prompt
- Pagination Controls: Navigate through large datasets with configurable limits
- Complete Entity Access: Status | RunTemplates | Jobs | Applications | Companies | Credentials | Tokens | Users | Artifacts | CredTypes | CrPrototypes | CompanyApps | Encryption | Queue | Prune | Commands | Help | Quit
- Active Section Indicator: Currently active menu item highlighted in green at all times
- Context-Aware Hints: Dynamic descriptions for each entity and operation
- Seamless Navigation: Arrow key and mouse click navigation with visual feedback
- Menu Clicks: Click menu items to navigate directly
- Content Focus: Click content area to switch focus from menu
- Scroll Wheel: Scroll through list items with mouse wheel
- GPM Compatible: Works in Linux console via GPM and all xterm-compatible terminals
- System Information: CLI version, database migration status, user info
- Live Updates: Refresh with 'r' key for current system state
- JSON Parsing: Clean, formatted display of status data
- Three-Panel Layout: Menu at top, content in middle, status at bottom
- Active Section Highlight: Green menu item shows which section is in use
- Responsive Design: Adapts to different terminal sizes
- Color-Coded Elements: Clear visual hierarchy and status indication
- Consistent Styling: TurboVision-inspired appearance throughout
| Key | Action | Context |
|---|---|---|
β/β or h/l |
Navigate top menu | Menu focused |
Enter or Space |
Select menu item / Open detail | Menu / List |
β/β or k/j |
Navigate within lists | Content focused |
β/β |
Previous/next page | Content focused |
e |
Open editor for selected record | List / Detail view |
d |
Delete record (with confirmation) | Detail view |
Tab |
Switch focus between menu and content | Global |
Esc |
Go back (detailβlist, editorβlist) | Detail / Editor |
Mouse click |
Select menu item or focus content | Global |
Mouse wheel |
Scroll list up/down | Content focused |
r |
Refresh status and data | Data refresh |
q or Ctrl+C |
Quit application | Exit |
- Status: System dashboard with live information
- RunTemplates: Execution templates with pagination
- Jobs: Running and historical job management
- Applications: MultiFlexi application catalog
- Companies: Registered company management
- Credentials: Authentication credential management
- Tokens: API token management
- Users: User account management
- Artifacts: Job artifacts and files (enhanced: 7 fields)
- CredTypes: Credential type definitions (enhanced: 8 fields)
- CrPrototypes: Credential prototypes (new entity: 10 fields)
- CompanyApps: Company-application relationships
- Encryption: System encryption management
- Queue: Job queue management
- Prune: Log and data cleanup operations
- Commands: CLI command documentation
- Help: Application usage documentation
- Go 1.21 or later
multiflexi-cliinstalled and available in PATH- For Debian packaging:
debhelper-compat,golang-any,dpkg-dev
# Clone the repository
git clone https://github.com/VitexSoftware/multiflexi-tui.git
cd multiflexi-tui
# Build the binary
make build
# Install locally (optional)
make install# Build Debian package
make deb
# Or use dpkg-buildpackage directly
dpkg-buildpackage -us -uc
# Install the generated .deb package
sudo dpkg -i ../multiflexi-tui_1.0.0-1_amd64.debSimply run the application:
multiflexi-tuiThe application will launch with the Status dashboard as the default view. Use keyboard or mouse to navigate between sections. The active section is highlighted in green in the menu bar.
multiflexi-tui/
βββ cmd/
β βββ multiflexi-tui/
β βββ main.go # Application entry point
βββ internal/
β βββ app/
β β βββ app.go # Application coordination, routing, mouse handling
β β βββ model.go # Application state model and view states
β βββ cli/
β β βββ cli.go # MultiFlexi CLI integration (CRUD operations)
β βββ ui/
β βββ styles.go # UI styling with Lipgloss (TurboVision theme)
β βββ detail.go # Reusable detail widget
β βββ detailview.go # Detail view model with edit/delete actions
β βββ job_editor.go # Job editor (command, executor, schedule_type)
β βββ company_editor.go # Company editor (name, email, IC, slug)
β βββ application_editor.go # Application editor
β βββ runtemplate_editor.go # RunTemplate editor
β βββ confirm_dialog.go # Delete confirmation dialog (Y/N)
β βββ jobs.go # Jobs listing view
β βββ companies.go # Companies listing view
β βββ applications.go # Applications listing view
β βββ runtemplates.go # RunTemplates listing view
β βββ menu.go # Command list interface
β βββ viewer.go # Help text viewer
β βββ ... # Other entity listing views
βββ debian/ # Debian packaging files
βββ go.mod # Go module definition
βββ Makefile # Build automation
βββ README.md # This file
# Development build (with debug info)
make dev
# Production build (optimized)
make build
# Run tests
make test
# Clean build artifacts
make cleanThe project uses only packages available in Debian stable repositories:
github.com/charmbracelet/bubbletea- TUI frameworkgithub.com/charmbracelet/bubbles- TUI componentsgithub.com/charmbracelet/lipgloss- Styling library
make build- Build optimized binarymake dev- Build development binarymake test- Run testsmake clean- Clean build artifactsmake install- Install binary locallymake deb- Build Debian packagemake deps- Download and tidy dependenciesmake run- Build and run the applicationmake check-deps- Verify required tools are installed
The application follows a clean modular architecture:
- CLI Layer (
internal/cli): Handles communication withmultiflexi-cli - UI Layer (
internal/ui): Implements Bubbletea models and views - App Layer (
internal/app): Coordinates between UI components and manages state - Main (
cmd/multiflexi-tui): Application entry point
- Application starts and loads system status from
multiflexi-cli status - User navigates the menu bar to select an entity type (Jobs, Companies, etc.)
- Entity listings are loaded from
multiflexi-cli <entity> list --format=json - User can view details (Enter), edit (e), or delete (d) records
- Editors provide multi-field forms; deletions require Y/N confirmation
- All CRUD operations are executed via the corresponding
multiflexi-clicommands
- Source: multiflexi-tui
- Section: utils
- Priority: optional
- Maintainer: Vitex Software info@vitexsoftware.cz
- Homepage: https://github.com/VitexSoftware/multiflexi-cli
- Dependencies:
multiflexi-cli
This project follows the same license as the MultiFlexi project.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Run
make testto ensure tests pass - Submit a pull request
For issues and questions, please visit the GitHub repository or contact Vitex Software at info@vitexsoftware.cz.
