Skip to content

Repository files navigation

hopcli

An UNOFFICIAL terminal UI (TUI) for browsing The Hoptimist online craft beer store. Built with Bubble Tea and the WooCommerce Store API.

Features

  • Browse the latest items added to the store with pagination (n next / p previous)
  • Explore products by category
  • View product details with markdown-rendered descriptions and prices
  • Full keyboard navigation (arrows, enter, back with h/, quit with q)
  • Loading spinner and error display for a smooth TUI experience

Demo

Hoptimist CLI Demo

The demo shows the main flow: landing screen → latest products → selecting a product for details → browsing categories → exploring products within a category.

Prerequisites

  • Go 1.25 or later (see go.mod for the exact minimum version)
  • A terminal with 256-color support (the TUI uses Lipgloss styling)

Installation

go install

go install github.com/matt-riley/hopcli@latest

go build

git clone https://github.com/matt-riley/hopcli.git
cd hopcli
go build -o hopt .
./hopt

Build with version info

go build -ldflags "-X github.com/matt-riley/hopcli/internal/commands.Version=$(git describe --tags --always --dirty)" -o hopt .

Homebrew

brew install matt-riley/tap/hopt

Configuration

By default, hopcli connects to the production API at https://thehoptimist.co.uk. To point it at a different WooCommerce store:

// In your own main.go or before calling hopt.Run():
commands.TheHoptimistBaseURL = "https://your-store.example.com"

The API client (commands.ApiClient) can also be replaced with a custom implementation that satisfies the api.Client interface — useful for testing or working with a different backend.

Usage

Key Action
/ Navigate lists
Enter Select item (open category, view product details)
h / Go back to the previous view
n Next page (in paginated views)
p Previous page (in paginated views)
q Quit

Views

  1. Home — Choose between Latest and Categories
  2. Latest Beers — Paginated list of recently added products
  3. Categories — Browse all product categories
  4. Category Products — Paginated list of products within a selected category
  5. Product Detail — Markdown-rendered description, price, and link to the store page

Known Limitations

Brewery / Brand Information

The upstream WooCommerce Store API does not expose brewery or brand data for products. When displaying product details, the product title is returned as-is — there is no separate brewery field to display. This is a limitation of the data model provided by The Hoptimist's API, not a bug in hopcli.

If brewery data becomes available through the API in the future, it can be surfaced by adding a Brewery field to api.Product and threading it through the product.ProductModel.

License

MIT — see LICENSE for full text.

About

Unofficial Go/Bubble Tea terminal browser for The Hoptimist online shop, with latest arrivals, category browsing, and product detail views.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages