A cross‑platform, professional Bubble Tea UI installer for the LarGo CLI. It prepares your environment, installs the LarGo binary via go install, and verifies that largo is available.
- Clean Bubble Tea UI with centered header, step list, and live logs
- Safe PATH updates on Windows (registry + environment broadcast)
- PATH updates on Unix shells (adds to a shell RC file without duplicates)
- Clear status and guidance; UI stays open after completion
- Small, maintainable codebase split into
cmd/andinternal/
LarGo requires Go version 1.24 or higher to run. If you need to install or upgrade Go, visit the official Go download page.
To use the LarGo CLI, you must first install and run the LarGo Installer, which will set up your environment and install largo for you.
Install the installer binary:
go install github.com/MohammedMogeab/largo-installer/cmd/largo-installer@latest
Run the installer to install LarGo:
largo-installer
# or specify a version/module explicitly
largo-installer --largo-version v0.1.0 --module github.com/MohammedMogeab/largo/cmd/largo
After installation, open a new terminal if PATH was updated, then verify:
largo version
- Requirements: Go 1.24+
- Fetch deps:
go mod tidy - Run the installer:
go run ./cmd/largo-installer
Flags:
--largo-version <ver>target LarGo version (defaultlatest)--module <path>module path (defaultgithub.com/MohammedMogeab/largo/cmd/largo)--no-colordisable colored output--versionprint installer version and exit
Examples:
go run ./cmd/largo-installer 99F2 code>go run ./cmd/largo-installer --largo-version v0.1.0
- Checks the Go toolchain and prints its version
- Chooses install dir:
GOBIN,GOPATH/bin, or$HOME/go/bin - Ensures that directory is on PATH
- Windows: uses PowerShell .NET APIs; falls back to
reg.exe - Unix: appends an export line to the appropriate shell RC file
- Windows: uses PowerShell .NET APIs; falls back to
- Installs LarGo via
go install <module>@<version> - Verifies
largo versionvia PATH or direct path
Note: If PATH was updated, open a new terminal and run largo version.
cmd/largo-installer— CLI entrypoint that parses flags and starts the UIinternal/ui— Bubble Tea UI (layout, steps, logs, styling)internal/install— Installer logic and per‑OS PATH handlinginternal/buildinfo— Version variable set at build time with-ldflags
- Dev build:
go build -o bin/largo-installer ./cmd/largo-installer - Embed version:
go build -ldflags "-s -w -X github.com/MohammedMogeab/largo-installer/internal/buildinfo.Version=$(git describe --tags --always)" ./cmd/largo-installer
- GitHub Actions runs
tidy,vet,build, andteston push/PR - GoReleaser config (
.goreleaser.yaml) is provided for cross‑platform builds - Local snapshot:
goreleaser release --clean --snapshot
We welcome contributions! Please see CONTRIBUTING.md for development setup, coding guidelines, and the testing checklist. A few notes:
- Keep PRs focused and small
- Prefer simple, explicit code; avoid unnecessary dependencies
- Add tests for helpers and platform‑specific logic when practical
- Be kind and constructive — see CODE_OF_CONDUCT.md
- Avoid executing shell with untrusted input; always pass arguments safely
- For security issues, please contact the maintainer privately (see Code of Conduct) instead of opening a public issue
- Optional “download prebuilt binary” path (no Go toolchain needed)
- Flags:
--bin,--no-path,--use-go,--verbose
MIT — see LICENSE
