TUI frontend for MultiFlexi CLI built with Bubbletea
console applicationSystemConsoleOnlyapt install multiflexi-tuiMultiFlexi TUI provides a terminal user interface for the MultiFlexi CLI tool. It features a dynamic command menu that loads available commands from multiflexi-cli and displays help text in an easy-to-navigate interface. Built using the Charmbracelet Bubbletea framework, it offers: * Dynamic command discovery * Scrollable command list * Interactive help viewer * Keyboard-driven navigation This package provides a user-friendly way to explore and use MultiFlexi commands through an intuitive terminal interface.
A modern terminal user interface for multiflexi-cli, built with the Charmbracelet Bubbletea framework.

multiflexi-cli status| Entity | List | Detail | Create | Edit | Delete | Special Actions |
|---|---|---|---|---|---|---|
| Companies | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| Applications | ✅ | ✅ | ✅ | ✅ | ✅ | Show Config (s) |
| RunTemplates | ✅ | ✅ | ✅ | ✅ | ✅ | Schedule (s) |
| Jobs | ✅ | ✅ | ✅ | ✅ | ✅ | View Stdout (o), View Stderr (e) |
| Credentials | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| Tokens | ✅ | ✅ | ✅ | ✅ | ✅ | Generate (g) |
| Users | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| Artifacts | ✅ | ✅ | — | — | ✅ | Save to file (s) |
| CredTypes | ✅ | ✅ | ✅ | ✅ | — | — |
| CrPrototypes | ✅ | ✅ | ✅ | ✅ | ✅ | Sync All (list: S) |
| CompanyApps | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| Queue | ✅ | ✅ | — | — | — | Fix (f), Truncate (T) |
| EventSources | ✅ | ✅ | ✅ | ✅ | ✅ | Test (t) |
| EventRules | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| Key | Action |
|---|---|
Tab |
Toggle focus between menu bar and content |
Esc |
Go back to previous view |
Ctrl+C |
Quit |
q |
Quit (when menu focused) |
| Key | Action |
|---|---|
←/→ or h/l |
Navigate menu items |
Enter or Space |
Open selected menu item |
| Key | Action |
|---|---|
↑/↓ or k/j |
Move cursor up/down |
←/→ or PgUp/PgDn |
Previous/next page |
Enter or Space |
Open detail view |
e |
Edit selected record |
n |
Create new record |
r |
Refresh / reload data |
| Entity-specific keys | See table above |
| Key | Action |
|---|---|
↑/↓ or k/j |
Scroll field list (when fields exceed screen) |
PgUp/PgDn |
Scroll field list by page |
Tab or → |
Cycle to next action button |
← |
Cycle to previous action button |
Enter |
Execute selected action |
d |
Delete (with confirmation) |
e |
Edit |
| Entity-specific keys | See table above |
| Key | Action |
|---|---|
Tab or ↓ |
Next field |
Shift+Tab or ↑ |
Previous field |
Enter |
Save / submit |
Esc |
Cancel, go back |
| Key | Action |
|---|---|
↑/↓ or k/j |
Scroll one line |
PgUp/PgDn |
Scroll one page |
g / G |
Jump to top / bottom |
Esc or q |
Go back |
multiflexi-cli installed and available in PATHgit clone https://github.com/VitexSoftware/multiflexi-tui.git
cd multiflexi-tui
make build
sudo make install
make deb
sudo dpkg -i ../multiflexi-tui_*.deb
multiflexi-tui
The application opens with the Status dashboard. Use the keyboard or mouse to navigate.
multiflexi-tui/
├── cmd/multiflexi-tui/
│ └── main.go # Entry point — wires client, registry, and menu
├── internal/
│ ├── app/
│ │ ├── app.go # Root model: menu bar, nav stack, message routing
│ │ ├── navigator.go # Navigation stack (push/pop view states)
│ │ └── menu.go # MenuItem type
│ ├── cli/
│ │ ├── client.go # Client interface + CLIClient (exec.Command wrapper)
│ │ └── types.go # All entity structs (14 types + StatusInfo)
│ ├── entity/
│ │ ├── registry.go # EntityDef struct + global registry
│ │ ├── list_view.go # Generic ListView — works with any EntityDef
│ │ ├── detail_view.go # Generic DetailView with scrollable fields + action buttons
│ │ ├── editor_view.go # Generic EditorView (create + update modes)
│ │ ├── action_form.go # Generic action form (prompted input → CLI command)
│ │ ├── company.go
│ │ ├── job.go
│ │ ├── application.go
│ │ ├── runtemplate.go
│ │ ├── credential.go
│ │ ├── token.go
│ │ ├── user.go
│ │ ├── artifact.go
│ │ ├── credtype.go
│ │ ├── crprototype.go
│ │ ├── companyapp.go
│ │ ├── queue.go
│ │ ├── eventsource.go
│ │ └── eventrule.go
│ └── ui/
│ ├── messages.go # Shared message types (NavigateToMsg, ConfirmMsg, …)
│ ├── styles.go # TurboVision theme (lipgloss)
│ ├── table.go # Paginated table widget — height-adaptive
│ ├── confirm_dialog.go
│ └── viewer.go # Scrollable text viewer — height-adaptive
├── docs/
│ ├── ARCHITECTURE.md # Architecture and entity extension guide
│ └── CLI_STRUCTURES.md # CLI data structures reference
├── debian/ # Debian packaging
├── go.mod
├── Makefile
└── README.md
The application uses a data-driven entity registry pattern:
internal/cli): Client interface wraps multiflexi-cli. All operations use --format=json. Fully mockable for tests.internal/entity): Each entity is a self-contained EntityDef with callbacks for fetch, detail rendering, editor fields, CLI arg building, and action handlers. Each entity registers itself via init().ListView, DetailView, and EditorView are entity-agnostic — they render any EntityDef with no type switches.tea.WindowSizeMsg. The app passes a content-area height (terminal height − 5 chrome lines) so tables and viewers fill available space exactly.internal/app): Lean coordinator (~460 lines) with navigation stack, scrollable menu bar, and message routing.See docs/ARCHITECTURE.md for the full guide including how to add a new entity.
make build # Production build (optimized)
make dev # Development build
make test # Run tests
make run # Build and run
make clean # Clean build artifacts
make deps # Download and tidy dependencies
make deb # Build Debian package
make check-deps # Verify required tools
multiflexi-cliSame license as the MultiFlexi project.
make test to ensure tests passFor issues and questions visit the GitHub repository or contact Vitex Software at info@vitexsoftware.cz.