{"id":44744151,"url":"https://github.com/mariovagomarzal/dotbot-brew","last_synced_at":"2026-02-15T21:35:14.934Z","repository":{"id":227367047,"uuid":"771174651","full_name":"mariovagomarzal/dotbot-brew","owner":"mariovagomarzal","description":"A dotbot plugin for installing packages and casks with Homebrew.","archived":false,"fork":false,"pushed_at":"2024-03-18T14:32:23.000Z","size":51,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-03-18T23:27:25.249Z","etag":null,"topics":["dotbot","dotbot-plugin","dotfiles","homebrew"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mariovagomarzal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-03-12T20:27:50.000Z","updated_at":"2024-03-14T13:36:59.000Z","dependencies_parsed_at":"2024-03-17T23:27:16.483Z","dependency_job_id":null,"html_url":"https://github.com/mariovagomarzal/dotbot-brew","commit_stats":null,"previous_names":["mariovagomarzal/dotbot-brew"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/mariovagomarzal/dotbot-brew","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariovagomarzal%2Fdotbot-brew","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariovagomarzal%2Fdotbot-brew/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariovagomarzal%2Fdotbot-brew/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariovagomarzal%2Fdotbot-brew/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mariovagomarzal","download_url":"https://codeload.github.com/mariovagomarzal/dotbot-brew/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariovagomarzal%2Fdotbot-brew/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29490352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T19:29:10.908Z","status":"ssl_error","status_checked_at":"2026-02-15T19:29:10.419Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["dotbot","dotbot-plugin","dotfiles","homebrew"],"created_at":"2026-02-15T21:35:14.336Z","updated_at":"2026-02-15T21:35:14.929Z","avatar_url":"https://github.com/mariovagomarzal.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dotbot-brew\n\nThis is a [Dotbot][dotbot] plugin for installing packages and casks with\nHomebrew.\n\n## Table of contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n  - [The `install-brew` directive](#the-install-brew-directive)\n  - [The `brew` directive](#the-brew-directive)\n  - [The `cask` directive](#the-cask-directive)\n  - [The `tap` directive](#the-tap-directive)\n  - [The `brewfile` directive](#the-brewfile-directive)\n- [Examples](#examples)\n  - [Minimal example](#minimal-example)\n  - [Complete example](#complete-example)\n- [License](#license)\n\n## Installation\n\nTo use this plugin in your dotfiles, you need to add it as a submodule with\nthe following command:\n\n```sh\ngit submodule add https://github.com/mariovagomarzal/dotbot-brew.git\n```\n\nThen, you need to add the plugin when you call the `dotbot` executable.\nTypically, this is done in the `install` script of your dotfiles. For\nexample, in the default `install` script of Dotbot:\n\n```sh\n\"${BASEDIR}/${DOTBOT_DIR}/${DOTBOT_BIN}\" -d \"${BASEDIR}\" --plugin-dir dotbot-brew -c \"${CONFIG}\" \"${@}\"\n```\n\n## Usage\n\nThe plugin provides five new directives to manage Homebrew operations:\n\n- `install-brew`: Installs Homebrew in your machine if it is not already\n  installed.\n- `brew`: Installs a package with Homebrew.\n- `cask`: Installs a cask with Homebrew.\n- `tap`: Adds a tap to Homebrew.\n- `brewfile`: Installs packages and casks from a Brewfile.\n\nIn the following subsections we will describe each directive in detail and\nits available options. Additionally, we have included a section with some\nexamples of how to use the plugin.\n\n### General options\n\nEvery directive has a set of common options which are the following:\n\n- `stdin`: A boolean that indicates if the command stdin should be redirected\n  to the terminal.\n- `stdout`: A boolean that indicates if the command stdout should be\n  redirected to the terminal.\n- `stderr`: A boolean that indicates if the command stderr should be\n  redirected to the terminal.\n- `force-intel`: A boolean that indicates if the command should be executed\n  with Rosetta 2 on Apple Silicon Macs.\n\nThey can be defined in three ways:\n\n- As a global option for every `dotbot-brew` directive. This can be done by\n  setting the defaults of the `homebrew` key. For example:\n\n  ```yaml\n  - defaults:\n      homebrew:\n        # These are the defaults\n        stdin: true\n        stdout: true\n        stderr: true\n        forece-intel: false\n  ```\n- As a global option for every directive of the specified type. For\n  example:\n\n  ```yaml\n  - defaults:\n      install-brew:\n        # Same as the global defaults\n        stdin: true\n        stdout: true\n        stderr: true\n        forece-intel: false\n        # ... other specific options for this directive\n  ```\n- As a local option for a specific directive. For example:\n  \n  ```yaml\n  - install-brew:\n      # Same as the global defaults\n      stdin: true\n      stdout: true\n      stderr: true\n      forece-intel: false\n      # ... other specific options for this directive\n  ```\n\nThe order of preference of the options is ascending, meaning that the local\noptions are prioritized over the globals of the directive, and the globals\nof the directive over the globals of the plugin.\n\nThe specific options of each directive will be described in the following\nsubsections.\n\n### The `install-brew` directive \n\nThe `install-brew` directive is used to install Homebrew in your machine if\nit is not already installed. It can be used in two ways:\n\n- With a boolean that indicates if Homebrew should be installed. For\n  example:\n\n  ```yaml\n  - install-brew: true\n  ```\n\n- With a dictionary with the general options and/or the specific options of\n  the directive. The specific options are the following:\n\n  - `install`: A boolean that indicates if Homebrew should be installed.\n  - `force`: A boolean that indicates if Homebrew should be installed even\n    if it is already installed.\n  - `setup_bash`: A boolean that indicates if the Homebrew post-isntall\n    steps for Bash should be executed.\n  - `setup_zsh`: A boolean that indicates if the Homebrew post-isntall\n    steps for Zsh should be executed.\n  - `setup_fish`: A boolean that indicates if the Homebrew post-isntall\n    steps for Fish should be executed.\n\n  For example:\n\n  ```yaml\n  - install-brew:\n      # Same as the global directive defaults\n      install: true\n      force: false\n      # ... other general options\n  ```\n\n**Note:** See the `_install_brew` method in the `brew.py` file for more\ninformation about the specific commands that are executed for each\nsetup-shell option.\n\n### The `brew` directive\n\nThe `brew` directive is used to install a package (formula) with Homebrew.\nIt can be used in two ways:\n\n- With a list of packages to install. For example:\n\n  ```yaml\n  - brew:\n    - git\n    - zsh\n  ```\n\n- With a dictionary with the general options and/or the specific options of\n  the directive. The specific options are the following:\n\n  - `packages`: A list of packages to install.\n  - `force`: A boolean that indicates if the package should be installed\n    even if it is already installed.\n\n  For example:\n\n  ```yaml\n  - brew:\n      packages: # By default it is an empty list\n        - git\n        - zsh\n      force: false # Same as the global directive defaults\n      # ... other general options\n  ```\n\n### The `cask` directive\n\nThe `cask` directive is used to install a cask with Homebrew. It can be\nused in two ways:\n\n- With a list of casks to install. For example:\n\n  ```yaml\n  - cask:\n    - firefox\n    - visual-studio-code\n  ```\n\n- With a dictionary with the general options and/or the specific options of\n  the directive. The specific options are the following:\n\n  - `casks`: A list of casks to install.\n  - `force`: A boolean that indicates if the cask should be installed\n    even if it is already installed.\n\n  For example:\n\n  ```yaml\n  - cask:\n      casks: # By default it is an empty list\n        - firefox\n        - visual-studio-code\n      force: false # Same as the global directive defaults\n      # ... other general options\n  ```\n\n### The `tap` directive\n\nThe `tap` directive is used to add a tap to Homebrew. It can be used in two\nways:\n\n- With a list of taps to add. For example:\n\n  ```yaml\n  - tap:\n    - homebrew/cask-fonts\n    - homebrew/cask-drivers\n  ```\n\n- With a dictionary with the general options and/or the specific options of\n  the directive. The specific options are the following:\n\n  - `taps`: A list of taps to add.\n\n  For example:\n\n  ```yaml\n  - tap:\n      taps: # By default it is an empty list\n        - homebrew/cask-fonts\n        - homebrew/cask-drivers\n      # ... other general options\n  ```\n\n### The `brewfile` directive\n\nThe `brewfile` directive is used to install packages and casks from a\nBrewfile. It can be used in two ways:\n\n- With a list of Brewfiles to install. For example:\n\n  ```yaml\n  - brewfile:\n    - Brewfile\n    - Brewfile.local\n  ```\n\n- With a dictionary with the general options and/or the specific options of\n  the directive. The specific options are the following:\n\n  - `brewfiles`: A list of Brewfiles to install.\n\n  For example:\n\n  ```yaml\n  - brewfile:\n      brewfiles: # By default it is an empty list\n        - Brewfile\n        - Brewfile.local\n      # ... other general options\n  ```\n\n## Examples\n\nIn this section we will show two examples of how to use the plugin.\n\n### Minimal example\n\nThe following example shows how to use the plugin to install Homebrew and\nsome packages and casks with no fancy options.\n\n```yaml\n- defaults:\n    homebrew:\n      # Disable standard output for all the `dotbot-brew` directives\n      stdout: false\n\n- tap:\n  - homebrew/cask-fonts\n\n- brew:\n  - git\n  - fish\n\n- cask:\n  - visual-studio-code\n  - font-fira-code-nerd-font\n```\n\n### Complete example\n\nThe following example shows how to use the plugin to install Homebrew and\nsome packages and casks with some fancy options.\n\n```yaml\n- defaults:\n    homebrew:\n      force-intel: true\n      stdin: false\n    cask:\n      force: true\n\n- tap:\n  - homebrew/cask-fonts\n\n- brew:\n  - git\n  - fish\n\n- cask:\n    stdin: true\n    casks:\n      - mactex\n      - karabiner-elements\n    \n- cask:\n  - visual-studio-code\n\n- brewfile:\n  - brew/Brewfile\n  - brew/Brewfile.local\n```\n\n## License\n\nThis project is licensed under the [MIT LICENSE](/LICENSE) by Mario Vago\nMarzal.\n\n\u003c!-- External links --\u003e\n[dotbot]: https://github.com/anishathalye/dotbot\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmariovagomarzal%2Fdotbot-brew","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmariovagomarzal%2Fdotbot-brew","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmariovagomarzal%2Fdotbot-brew/lists"}