Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Helper Scripts TUI

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.

Module Path

This repository uses:

github.com/MeAshikeqbal/helper-scripts-tui

Features

  • 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

Requirements

  • Go 1.24+
  • Network access (to fetch scripts/metadata from GitHub)
  • Bash + curl (used to run selected script installers)

Installation

Quick Install (Linux)

Install the latest version with a single command:

curl -fsSL https://raw.githubusercontent.com/MeAshikeqbal/helper-scripts-tui/main/install.sh | bash

This will download the binary and install it to /usr/local/bin/hst.

Manual Binary Install

# 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
hst

From Source

Clone and run

git clone https://github.com/MeAshikeqbal/helper-scripts-tui.git
cd helper-scripts-tui
go run .

Build binary

go build -o hst .
./hst

CLI Flags

  • --version, -v: print version and exit
  • --debug: enable debug startup logs and panic stack trace output

Examples:

hst --version
hst --debug

Versioning

Version is resolved in this order:

  1. Build-time injected value (-ldflags -X main.version=...)
  2. Go module build info version
  3. VCS revision fallback (dev+<sha> or dev+<sha>-dirty)
  4. dev

Release build example:

go build -ldflags "-X main.version=v0.1.0-beta" .

Keybindings

The app has context-aware keybindings and a help overlay.

Open help:

  • ? to open
  • ? or esc to close

Main view

  • Up/Down: move script cursor
  • Left/Right: switch category
  • /: focus search
  • d: open fullscreen details
  • Enter: start install flow
  • q or Ctrl+C: quit

Search mode

  • Type: filter scripts
  • Enter: exit search input
  • esc: clear search and exit search input

Fullscreen details

  • Up/Down or j/k: scroll line
  • PgUp/PgDn or b/f: scroll page
  • Home/End or g/G: jump top/bottom
  • Enter: start install flow for viewed script
  • esc: back to main view
  • q or Ctrl+C: quit

Variant selection

  • Up/Down: choose variant
  • Enter: confirm variant
  • esc: cancel

Confirm install

  • y: run installer
  • n or esc: cancel

Data Sources

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

Caching

Cache uses os.UserCacheDir() under:

  • Linux: ~/.cache/helper-scripts-tui/

Files:

  • scripts.json
  • metadata.json

Behavior:

  • Loads cache first for quick startup
  • Refreshes from upstream when needed

Project Structure

.
├── 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

Development

Format and build:

gofmt -w .
go build .

Run from source:

go run .

Security Note

Install runs remote script content through bash:

  • bash -c "$(curl -fsSL <script-url>)"

Always review scripts and trust the upstream source before running installers.

Troubleshooting

  • If startup seems stale, remove cache files in your cache directory.
  • If version is dev, build with -ldflags or from a tagged module context.
  • Use --debug for extra diagnostics and panic stack traces.

About

A terminal user interface for discovering, browsing, and installing Proxmox Helper Scripts directly from the terminal.

Topics

Resources

Stars

Watchers

Forks

Releases

Used by

Contributors

Languages