A modern terminal user interface (TUI) frontend for the multiflexi-cli tool, built with the Charmbracelet Bubbletea framework.
- Job Dashboard: View and manage the 10 newest jobs with pagination controls
- Dynamic Command Discovery: Automatically loads available commands from
multiflexi-cli describe - Interactive Top Menu: Horizontal navigation bar with contextual hints
- Real-time Status Panel: Live system information from
multiflexi-cli status - Help Viewer: Displays command help text in a scrollable viewer
- Responsive Layout: Professional three-panel design (menu/content/status)
- Keyboard Navigation: Intuitive controls for navigation and selection
- Clean UI: Styled with Lipgloss for a professional appearance
- Latest 10 Jobs: Displays newest jobs with real-time status updates
- Job Status Indicators: Running, Success, Failed, Scheduled
- Pagination Controls: Navigate through job history with Prev/Next buttons
- Job Details: ID, Command, Status, and Schedule information
- Horizontal Menu Bar: Jobs | Commands | Help | Quit
- Context-Aware Hints: Dynamic descriptions for each menu option
- Seamless Navigation: Arrow key navigation with visual feedback
- 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
- Responsive Design: Adapts to different terminal sizes
- Color-Coded Elements: Clear visual hierarchy and status indication
- Consistent Styling: Professional appearance throughout
| Key | Action | Context |
|---|---|---|
β/β or h/l |
Navigate top menu | Global navigation |
Enter or Space |
Select menu item | Menu selection |
β/β or k/j |
Navigate within lists | Content navigation |
Shift+β/β |
Previous/next job pages | Jobs pagination |
Tab |
Switch between views | View switching |
r |
Refresh status and data | Data refresh |
q or Ctrl+C |
Quit application | Exit |
- Jobs: "View and manage running jobs with pagination controls"
- Commands: "Browse available MultiFlexi commands and their documentation"
- Help: "View help and documentation for using this interface"
- Quit: "Exit the MultiFlexi TUI application"
- 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-tuiSimply run the application:
multiflexi-tuiThe application will launch with the Jobs dashboard as the default view. Use the keyboard navigation to explore different sections.
multiflexi-tui/
βββ cmd/
β βββ multiflexi-tui/
β βββ main.go # Application entry point
βββ internal/
β βββ app/
β β βββ app.go # Application coordination and state management
β βββ cli/
β β βββ cli.go # MultiFlexi CLI integration
β βββ ui/
β βββ menu.go # Command list interface
β βββ viewer.go # Help text viewer
β βββ styles.go # UI styling with Lipgloss
βββ debian/ # Debian packaging files
β βββ control
β βββ rules
β βββ install
β βββ changelog
βββ 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 commands using
multiflexi-cli describe - Commands are displayed in an interactive list
- User selects a command to view its help
- Help is loaded using
multiflexi-cli <command> --help - Help text is displayed in a scrollable viewer
- User can return to menu or exit
- 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.