{"id":28798161,"url":"https://github.com/radiosilence/go-brew-search","last_synced_at":"2026-05-08T19:33:24.945Z","repository":{"id":295614059,"uuid":"990646348","full_name":"radiosilence/go-brew-search","owner":"radiosilence","description":"⚡ Lightning-fast Homebrew package search with local caching and interactive UI","archived":false,"fork":false,"pushed_at":"2025-05-26T12:57:09.000Z","size":27,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-07T04:41:37.651Z","etag":null,"topics":["ai-generated","cli","fuzzy-search","go","homebrew","package-manager","terminal"],"latest_commit_sha":null,"homepage":"https://github.com/radiosilence/go-brew-search","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/radiosilence.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-26T12:25:54.000Z","updated_at":"2025-06-26T00:57:26.000Z","dependencies_parsed_at":"2025-05-26T14:05:39.199Z","dependency_job_id":null,"html_url":"https://github.com/radiosilence/go-brew-search","commit_stats":null,"previous_names":["radiosilence/go-brew-search"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/radiosilence/go-brew-search","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiosilence%2Fgo-brew-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiosilence%2Fgo-brew-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiosilence%2Fgo-brew-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiosilence%2Fgo-brew-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/radiosilence","download_url":"https://codeload.github.com/radiosilence/go-brew-search/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiosilence%2Fgo-brew-search/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32794715,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-generated","cli","fuzzy-search","go","homebrew","package-manager","terminal"],"created_at":"2025-06-18T05:02:12.605Z","updated_at":"2026-05-08T19:33:24.929Z","avatar_url":"https://github.com/radiosilence.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍺 go-brew-search\n\n\u003e **🤖 AI Experiment**: This project was entirely generated through a conversation with Claude 4 Opus. It serves as an experiment in AI-assisted software development.\n\nA blazing-fast, interactive Homebrew package search tool with local caching. Say goodbye to slow `brew search` commands!\n\n## ✨ Features\n\n- **⚡ Lightning Fast**: Uses local caching to provide instant search results\n- **🔍 Fuzzy Search**: Interactive fzf-style interface for easy package discovery\n- **📊 Rich Display**: Shows package names, versions, and descriptions in a clean table format\n- **✅ Multi-Select**: Select multiple packages at once with TAB\n- **🎯 Smart Integration**: Automatically adds selected packages to your `~/Brewfile`\n- **🚀 Auto-Install**: Runs `brew bundle` after selection to install packages\n- **⚡ Direct Install**: Use `--immediate` flag to install without Brewfile\n- **📝 Status Tracking**: Shows which packages are already in your Brewfile\n- **🎨 Beautiful UI**: Uses emojis and colors for better visual feedback\n\n## 📦 Installation\n\n### Prerequisites\n\n- Go 1.21 or later\n- Homebrew installed\n- A terminal that supports Unicode (for emojis)\n- [Task](https://taskfile.dev) - Task runner for build automation\n\n#### Installing Task\n\nIf you don't have Task installed, you can use our helper script:\n\n```bash\n./install-task.sh\n```\n\nOr install manually:\n\n- macOS: `brew install go-task/tap/go-task`\n- Linux: See [installation guide](https://taskfile.dev/installation/)\n\n### Build from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/go-brew-search.git\ncd go-brew-search\n\n# Build the binary\ntask build\n\n# Option 1: Install system-wide\ntask install\n\n# Option 2: Install to ~/.local/bin\ntask install-local\n\n# Option 3: Add to PATH\nexport PATH=\"$PWD:$PATH\"\n```\n\n### Quick Install (using go install)\n\n```bash\ngo install github.com/yourusername/go-brew-search/cmd@latest\nmv $GOPATH/bin/cmd $GOPATH/bin/brew-search\n```\n\n## 🚀 Usage\n\n### Default Mode (Brewfile)\n\n```bash\nbrew-search\n```\n\nThis will update your `~/Brewfile` and run `brew bundle`.\n\n### Immediate Mode (Direct Installation)\n\n```bash\nbrew-search --immediate\n```\n\nThis will install selected packages directly without updating your Brewfile.\n\n### Interactive Controls\n\n- **Type** to search packages\n- **↑↓** to navigate\n- **TAB** to select/deselect packages\n- **ENTER** to confirm selection\n- **ESC** to cancel\n\n### Package Icons\n\n- 📦 Formula (regular Homebrew packages)\n- 🍺 Cask (GUI applications)\n- ✓ Already in Brewfile\n\n## 🔧 How It Works\n\n1. **Caching**: On first run, fetches all package data from Homebrew's API and caches it locally\n2. **Search**: Provides instant fuzzy search through the cached data\n3. **Selection**: Shows an interactive interface with package details\n4. **Brewfile Management**: Adds selected packages to `~/Brewfile` with proper formatting (unless using `--immediate`)\n5. **Installation**: Automatically runs `brew bundle` or direct `brew install` to install the selected packages\n\n## 📁 Cache Management\n\nThe tool caches Homebrew package data in `~/.cache/go-brew-search/`. The cache expires after 24 hours.\n\nTo clear the cache manually:\n\n```bash\nrm -rf ~/.cache/go-brew-search\n```\n\n## ⚙️ Configuration\n\nCurrently, the tool uses sensible defaults:\n\n- **Cache Location**: `~/.cache/go-brew-search/`\n- **Cache TTL**: 24 hours\n- **Brewfile Location**: `~/Brewfile`\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n### Development\n\n```bash\n# Show all available tasks\ntask\n\n# Run tests\ntask test\n\n# Run tests with coverage\ntask test-coverage\n\n# Build the binary\ntask build\n\n# Build and run\ntask run\n\n# Format code\ntask fmt\n\n# Run linters\ntask lint\n\n# Run all checks (fmt, lint, test)\ntask check\n\n# Build release binaries for multiple platforms\ntask release\n\n# Clean build artifacts\ntask clean\n\n# Clear the package cache\ntask clean-cache\n\n# Run the interactive demo\ntask demo\n```\n\n## 📝 License\n\nMIT License - feel free to use this tool however you like!\n\n## 🐛 Known Issues\n\n- The tool requires a terminal that supports Unicode for emoji display\n- Initial cache population might take a few seconds on first run\n- Some casks might not have complete metadata\n\n## 🎯 Motivation\n\nThe built-in `brew search` command is notoriously slow because it queries the API every time. This tool solves that problem by:\n\n1. Caching all package data locally\n2. Providing instant fuzzy search\n3. Offering a better UI with multi-select\n4. Automating the Brewfile workflow\n\nNever wait for `brew search` again! 🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradiosilence%2Fgo-brew-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fradiosilence%2Fgo-brew-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradiosilence%2Fgo-brew-search/lists"}