Skip to content

feat: Add complete Homebrew Casks support with unified UI#28

Merged
Valkyrie00 merged 5 commits intorelease/v2.0.0from
feat/cask-support
Oct 12, 2025
Merged

feat: Add complete Homebrew Casks support with unified UI#28
Valkyrie00 merged 5 commits intorelease/v2.0.0from
feat/cask-support

Conversation

@Valkyrie00
Copy link
Owner

🎉 Feature: Homebrew Casks Support

Adds complete support for managing Homebrew Casks alongside Formulae in a unified interface.

📋 Summary

Users can now install, remove, update, and search for both Homebrew formulae (CLI tools) and casks (GUI applications) from a single unified list.

✨ Key Features

  • Unified Package List: Browse formulae and casks together in one view
  • Type Identification: Visual tags [F] for formulae and [C] for casks
  • Cask-Specific Filter: New [c] key binding to show only casks
  • Automatic Detection: Install/remove/update commands automatically handle both types
  • Analytics Support: Show 90-day download statistics for casks
  • Smart Caching: Remote cask data cached in ~/.bbrew/cask.json

🔧 Technical Changes

Backend (internal/services/brew.go, internal/models/)

  • New Cask model matching Homebrew cask API structure
  • New Package model for unified handling of formulae and casks
  • GetPackages() method returns unified list with type distinction
  • Cask detection using brew list --cask + brew info --json=v2
  • Analytics endpoint: https://formulae.brew.sh/api/analytics/cask-install/90d.json
  • Install/Remove/Update methods automatically add --cask flag when needed

Frontend (internal/services/app.go, internal/services/io.go, internal/ui/)

  • New "Type" column in table with [F]/[C] tags
  • New [c] filter for casks (mutually exclusive with other filters)
  • Updated Details view with type-specific information
  • Formulae show dependencies, casks don't
  • Proper display of cask-specific fields (display names, etc.)

Ref: #23

Implement complete backend infrastructure for managing Homebrew casks alongside formulae, preparing for unified UI.
Implement full backend and UI support for managing Homebrew casks alongside formulae in a unified interface.
Fix cask analytics not being displayed (showing 0 for all casks).
Implement full backend and UI support for managing Homebrew casks alongside formulae in a unified interface.
@Valkyrie00 Valkyrie00 self-assigned this Oct 12, 2025
@Valkyrie00 Valkyrie00 added enhancement New feature or request new feature labels Oct 12, 2025
@Valkyrie00 Valkyrie00 merged commit f43442a into release/v2.0.0 Oct 12, 2025
4 of 5 checks passed
Valkyrie00 added a commit that referenced this pull request Oct 13, 2025
* feat: add leaves filter to show explicitly installed packages (#25)

Add new filter [L] to display only "leaf" packages - those installed
explicitly by the user and not as dependencies of other packages.

* refactor: Migrate to Podman with OCI Containerfile and enhanced Makefile (#26)

* refactor: migrate from Docker to Podman with OCI Containerfile

Replace Docker with Podman for better security and OCI compliance.
Switch from Dockerfile to standard Containerfile format.

* chore: upgrade Go from 1.24 to 1.25

Update Go version to 1.25 to support latest goreleaser v2 and benefit from improved performance and language features.

* refactor: migrate to Podman and enhance Makefile

Replace Docker with Podman and upgrade Makefile with help system and new developer-friendly targets.

* chore: upgrade to Go 1.25 and golangci-lint v2.5.0

Update Go to 1.25 and golangci-lint to v2.5.0 for better tooling support.

* feat: add security scanning with govulncheck and gosec (#27)

Add comprehensive security scanning to the project with vulnerability checks and static analysis tools.

* feat: Add complete Casks support with unified UI (#28)

* feat(cask): add backend support for Homebrew casks

Implement complete backend infrastructure for managing Homebrew casks alongside formulae, preparing for unified UI.

* feat(cask): add complete Homebrew casks support with unified UI

Implement full backend and UI support for managing Homebrew casks alongside formulae in a unified interface.

* fix(cask): parse cask analytics correctly

Fix cask analytics not being displayed (showing 0 for all casks).

* feat(cask): add complete Homebrew casks support with unified UI

Implement full backend and UI support for managing Homebrew casks alongside formulae in a unified interface.

* fix: create copy to avoid implicit memory aliasing

* feat: implement XDG Base Directory Specification with github.com/adrg/xdg (#29)

Implement XDG Base Directory Specification using the github.com/adrg/xdg package for robust cross-platform support.
@Valkyrie00 Valkyrie00 deleted the feat/cask-support branch October 13, 2025 20:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant