Skip to content

lazar0169/brewst

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Brewst 🍺

A beautiful and intuitive TUI (Terminal User Interface) application for managing Homebrew packages and casks on macOS.

Version License Go

πŸ“Έ Screenshots

Main Dashboard

Dashboard

✨ Features

Core Package Management

  • βœ… View all installed formulae and casks in a unified list
  • βœ… Real-time search across Homebrew repository
  • βœ… Install/uninstall packages with confirmation dialogs
  • βœ… Upgrade individual or all outdated packages
  • βœ… Detailed package information (version, dependencies, description)
  • βœ… Visual indicators for outdated packages (⚠)
  • βœ… Dependency tree visualization

System Utilities

  • βœ… Run brew doctor to diagnose issues
  • βœ… Clean up old versions with brew cleanup
  • βœ… Remove unused dependencies with brew autoremove
  • βœ… Real-time operation logs with color coding

UI/UX

  • βœ… Split-panel layout for efficient workflow
  • βœ… Keyboard-driven navigation (vim-style)
  • βœ… Color-coded status (βœ“ installed, ⚠ outdated)
  • βœ… Live search with instant results
  • βœ… Scrollable dependency trees
  • βœ… Operation logs with success/error highlighting

Tech Stack

πŸ“¦ Installation

From Source

Requires Go 1.21 or later:

go install github.com/lazar0169/brewst@latest

Make sure $(go env GOPATH)/bin is in your PATH. Add this to your ~/.zshrc or ~/.bash_profile:

export PATH="$PATH:$(go env GOPATH)/bin"

Then reload your shell with source ~/.zshrc and run brewst.

Pre-built Binaries

Download the latest release from GitHub Releases.

Build from Source

git clone https://github.com/lazar0169/brewst.git
cd brewst
go build -o brewst
./brewst

πŸš€ Usage

Simply run:

brewst

Layout

The interface is divided into 4 panels:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     β”‚   πŸ” Search         β”‚
β”‚   πŸ“¦ Installed      β”‚                     β”‚
β”‚                     β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚   (50%)             β”‚   🌳 Dependencies   β”‚
β”‚                     β”‚                     β”‚
β”‚                     β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                     β”‚   πŸ“‹ Logs           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

⌨️ Keyboard Shortcuts

Global

  • q or Ctrl+C - Quit application
  • Tab - Cycle through panels (Installed β†’ Search β†’ Dependencies)
  • r - Refresh package list

Navigation

  • j or ↓ - Move down
  • k or ↑ - Move up

Package Management (Installed Panel)

  • u - Upgrade selected outdated package
  • U - Upgrade all outdated packages
  • x - Uninstall selected package

Search Panel

  • Type to enter search mode
  • Enter - Execute search / Install selected package
  • Esc - Exit search input
  • j/k - Navigate search results

Utilities

  • d - Run brew doctor
  • c - Run brew cleanup
  • a - Run brew autoremove

Configuration

Configuration is stored in ~/.config/brewst/config.json. The file is created automatically on first run with default settings.

Favorites

Favorite packages are saved to ~/.config/brewst/favorites.json and persist across sessions.

πŸ› οΈ Development

Prerequisites

  • Go 1.21 or later
  • macOS with Homebrew installed
  • Git

Setup

# Clone the repository
git clone https://github.com/lazar0169/brewst.git
cd brewst

# Install dependencies
go mod download

# Run the application
go run .

# Build
go build -o brewst

# Run tests
go test ./...

Building for Release

# Build for macOS (Intel)
GOOS=darwin GOARCH=amd64 go build -o brewst-darwin-amd64

# Build for macOS (Apple Silicon)
GOOS=darwin GOARCH=arm64 go build -o brewst-darwin-arm64

Project Structure

brewst/
β”œβ”€β”€ main.go              # Entry point
β”œβ”€β”€ internal/
β”‚   β”œβ”€β”€ app/            # Main application model
β”‚   β”œβ”€β”€ brew/           # Homebrew client & parsers
β”‚   β”œβ”€β”€ state/          # Application state management
β”‚   └── ui/
β”‚       β”œβ”€β”€ components/ # Reusable UI components
β”‚       β”œβ”€β”€ styles/     # Lipgloss styling
β”‚       └── views/      # Dashboard view
└── go.mod

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

πŸ“ License

MIT - See LICENSE file for details

πŸ™ Acknowledgments

  • Built with the amazing Charm libraries
  • Inspired by the need for a better Homebrew management experience

⚠️ Requirements

  • macOS: Homebrew is macOS-specific
  • Homebrew: Must be installed (installation guide)
  • Terminal: Color support recommended for best experience

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages