A terminal UI (TUI) for browsing and running Proxmox helper scripts from the community-scripts/ProxmoxVE project.
This app is built with Go and Bubble Tea, supports fuzzy search, category filtering, rich metadata, fullscreen details, variant selection, contextual help, and local caching for fast startup.
This repository uses:
github.com/MeAshikeqbal/helper-scripts-tui
- Dynamic categories from script paths (
ct,vm,misc, etc.) - Category counts in the sidebar
- Fuzzy search for script names
- Script metadata view (resources, tags, notes, config, website)
- Fullscreen details mode with scrolling
- Install flow with confirmation
- Variant selection (for scripts that have variants)
- Context-aware help overlay (
?) - Cache-first startup for scripts and metadata
- CLI flags for version and debug
- Build-time and VCS-aware version resolution
- Go 1.24+
- Network access (to fetch scripts/metadata from GitHub)
- Bash + curl (used to run selected script installers)
Install the latest version with a single command:
curl -fsSL https://raw.githubusercontent.com/MeAshikeqbal/helper-scripts-tui/main/install.sh | bashThis will download the binary and install it to /usr/local/bin/hst.
# Download a specific release (replace version as needed)
curl -L https://github.com/MeAshikeqbal/helper-scripts-tui/releases/download/v0.1.0-beta/hst-linux-amd64 -o hst
# Make it executable
chmod +x hst
# Move to your PATH
sudo mv hst /usr/local/bin/
# Run
hstgit clone https://github.com/MeAshikeqbal/helper-scripts-tui.git
cd helper-scripts-tui
go run .go build -o hst .
./hst--version,-v: print version and exit--debug: enable debug startup logs and panic stack trace output
Examples:
hst --version
hst --debugVersion is resolved in this order:
- Build-time injected value (
-ldflags -X main.version=...) - Go module build info version
- VCS revision fallback (
dev+<sha>ordev+<sha>-dirty) dev
Release build example:
go build -ldflags "-X main.version=v0.1.0-beta" .The app has context-aware keybindings and a help overlay.
Open help:
?to open?orescto close
Up/Down: move script cursorLeft/Right: switch category/: focus searchd: open fullscreen detailsEnter: start install flowqorCtrl+C: quit
- Type: filter scripts
Enter: exit search inputesc: clear search and exit search input
Up/Downorj/k: scroll linePgUp/PgDnorb/f: scroll pageHome/Endorg/G: jump top/bottomEnter: start install flow for viewed scriptesc: back to main viewqorCtrl+C: quit
Up/Down: choose variantEnter: confirm variantesc: cancel
y: run installernoresc: cancel
Scripts and metadata are fetched from the Proxmox helper scripts upstream:
- Script tree:
https://api.github.com/repos/community-scripts/ProxmoxVE/git/trees/main?recursive=1
- Metadata index:
https://api.github.com/repos/community-scripts/ProxmoxVE/contents/frontend/public/json
- Metadata files:
https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/frontend/public/json/<name>.json
Cache uses os.UserCacheDir() under:
- Linux:
~/.cache/helper-scripts-tui/
Files:
scripts.jsonmetadata.json
Behavior:
- Loads cache first for quick startup
- Refreshes from upstream when needed
.
├── main.go # CLI entrypoint, args, version resolution, panic recovery
├── ui/ # Bubble Tea state/update/view orchestration
├── components/ # Reusable UI renderers (sidebar, scripts, details)
├── services/ # GitHub fetch + cache services
├── model/ # App state model types
├── types/ # Shared data structures (Script, Metadata, etc.)
├── go.mod
└── go.sum
Format and build:
gofmt -w .
go build .Run from source:
go run .Install runs remote script content through bash:
bash -c "$(curl -fsSL <script-url>)"
Always review scripts and trust the upstream source before running installers.
- If startup seems stale, remove cache files in your cache directory.
- If version is
dev, build with-ldflagsor from a tagged module context. - Use
--debugfor extra diagnostics and panic stack traces.