Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 37 additions & 17 deletions catalog/tools.tsv
Original file line number Diff line number Diff line change
@@ -1,17 +1,37 @@
category id label kind package default description version_strategy versions notes
ide vscode Visual Studio Code cask visual-studio-code yes General-purpose code editor homebrew-latest Verified with brew info --cask visual-studio-code on 2026-06-02
ide cursor Cursor cask cursor no AI-assisted code editor homebrew-latest Verified with brew info --cask cursor on 2026-06-02
ide zed Zed cask zed no High-performance code editor homebrew-latest Verified with brew info --cask zed on 2026-06-02
ai codex-cli Codex CLI cask codex no OpenAI command-line coding agent homebrew-latest Verified with brew info --cask codex on 2026-06-02
browser chrome Google Chrome cask google-chrome yes Mainstream browser homebrew-latest Verified with brew info --cask google-chrome on 2026-06-02
browser firefox Firefox cask firefox no Open-source browser homebrew-latest Verified with brew info --cask firefox on 2026-06-02
browser brave Brave cask brave-browser no Privacy-focused browser homebrew-latest Verified with brew info --cask brave-browser on 2026-06-02
runtime node-npm Node.js/npm external nvm no Node.js runtime plus npm package manager nvm latest,lts External version manager via nvm
runtime bun Bun external bun.com/install no JavaScript runtime, package manager, and bundler bun-installer latest Official Bun installer
devops gh GitHub CLI formula gh yes GitHub from the terminal homebrew-latest Verified with brew info gh on 2026-06-02
devops aws-cli AWS CLI formula awscli no Amazon Web Services command-line interface homebrew-latest Verified with brew info awscli on 2026-06-02
infra terraform Terraform version-manager tenv:tf no HashiCorp infrastructure-as-code CLI tenv latest Managed by tenv
infra opentofu OpenTofu version-manager tenv:tofu no Open-source Terraform-compatible IaC CLI tenv latest Managed by tenv
infra terragrunt Terragrunt version-manager tenv:tg no Terraform/OpenTofu wrapper for DRY configs tenv latest Managed by tenv
containers colima Colima formula colima no Container runtime for macOS with minimal setup homebrew-latest Verified with brew info colima on 2026-06-02
productivity raycast Raycast cask raycast no Launcher and productivity utility homebrew-latest Verified with brew info --cask raycast on 2026-06-02
category id label kind package default description version_strategy versions min_macos arch notes
ide vscode Visual Studio Code cask visual-studio-code yes General-purpose code editor homebrew-latest Verified with brew info --cask visual-studio-code on 2026-06-02
ide cursor Cursor cask cursor no AI-assisted code editor homebrew-latest Verified with brew info --cask cursor on 2026-06-02
ide zed Zed cask zed no High-performance code editor homebrew-latest Verified with brew info --cask zed on 2026-06-02
ide antigravity-ide Antigravity cask antigravity-ide no Google AI coding agent IDE homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
ide kiro Kiro cask kiro no AWS agent-centric IDE for spec-driven development homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
ide sublime-text Sublime Text cask sublime-text no Text editor for code, markup, and prose homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
terminal ghostty Ghostty cask ghostty no GPU-accelerated terminal emulator with native macOS UI homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
terminal warp Warp cask warp no Rust-based terminal with developer workflow features homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
ai codex-cli Codex CLI cask codex no OpenAI command-line coding agent homebrew-latest Verified with brew info --cask codex on 2026-06-02
ai codex-desktop Codex Desktop cask codex-app no OpenAI desktop app for managing Codex coding agents homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
ai chatgpt-desktop ChatGPT Desktop cask chatgpt no OpenAI ChatGPT desktop app, separate from Codex; requires macOS 14+ and Apple Silicon homebrew-latest 14 arm64 Verified with Homebrew Formulae API on 2026-06-05
ai claude-code-cli Claude Code CLI cask claude-code no Anthropic terminal-based coding assistant homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
ai claude-code-desktop Claude Code Desktop cask claude no Claude Desktop app with Claude Code graphical workflows homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
ai pi-cli Pi CLI formula pi-coding-agent no Minimal extensible terminal coding harness homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
ai opencode-cli OpenCode CLI formula opencode no AI coding agent built for the terminal homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
ai opencode-desktop OpenCode Desktop cask opencode-desktop no Desktop client for the OpenCode coding agent homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
browser chrome Google Chrome cask google-chrome yes Mainstream browser homebrew-latest Verified with brew info --cask google-chrome on 2026-06-02
browser firefox Firefox cask firefox no Open-source browser homebrew-latest Verified with brew info --cask firefox on 2026-06-02
browser brave Brave cask brave-browser no Privacy-focused browser homebrew-latest Verified with brew info --cask brave-browser on 2026-06-02
browser zen Zen Browser cask zen no Gecko-based browser with a privacy-focused interface homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
communication slack Slack cask slack no Team messaging and collaboration app homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
communication teams Microsoft Teams cask microsoft-teams no Microsoft team chat and video meetings app homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
runtime node-npm Node.js/npm external nvm no Node.js runtime plus npm package manager nvm latest,lts External version manager via nvm
runtime bun Bun external bun.com/install no JavaScript runtime, package manager, and bundler bun-installer latest Official Bun installer
devops gh GitHub CLI formula gh yes GitHub from the terminal homebrew-latest Verified with brew info gh on 2026-06-02
devops aws-cli AWS CLI formula awscli no Amazon Web Services command-line interface homebrew-latest Verified with brew info awscli on 2026-06-02
devops awsume awsume formula awsume no AWS role and account switching helper homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
infra terraform Terraform version-manager tenv:tf no HashiCorp infrastructure-as-code CLI tenv latest Managed by tenv
infra opentofu OpenTofu version-manager tenv:tofu no Open-source Terraform-compatible IaC CLI tenv latest Managed by tenv
infra terraspace Terraspace tap-formula boltops-tools/software/terraspace no Framework for Terraform/OpenTofu project structure and workflows homebrew-latest Verified with Terraspace Homebrew install docs on 2026-06-05
infra terragrunt Terragrunt version-manager tenv:tg no Terraform/OpenTofu wrapper for DRY configs tenv latest Managed by tenv
containers orbstack OrbStack cask orbstack no Fast Docker and Linux machine runtime for macOS; requires macOS 14+ homebrew-latest 14 Verified with Homebrew Formulae API on 2026-06-05
containers docker-desktop Docker Desktop cask docker-desktop no Docker GUI and runtime bundle for macOS; requires macOS 14+ homebrew-latest 14 Verified with Homebrew Formulae API on 2026-06-05
containers docker-cli Docker CLI formula docker no Standalone Docker command-line client homebrew-latest Verified with Homebrew Formulae API on 2026-06-05
containers colima Colima formula colima no Container runtime for macOS with minimal setup homebrew-latest Verified with brew info colima on 2026-06-02
productivity raycast Raycast cask raycast no Launcher and productivity utility homebrew-latest Verified with brew info --cask raycast on 2026-06-02
62 changes: 41 additions & 21 deletions docs/rig-v1-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -243,33 +243,53 @@ For v1, a **TSV file** is the right choice because a fresh Mac has the tools to
Recommended catalog fields:

```text
category id label kind package default description version_strategy versions notes
category id label kind package default description version_strategy versions min_macos arch notes
```

The `description` field is required and should be short enough to show inside prompts, `rig list`, and dry-run output. `version_strategy` explains whether the tool is installed as the current Homebrew/package-manager version or whether the user can choose from supported versions. `versions` is empty for unversioned items and a catalog-maintained list for tools where version selection is supported.
The `description` field is required and should be short enough to show inside
prompts, `rig list`, and dry-run output. `version_strategy` explains whether
the tool is installed as the current Homebrew/package-manager version or whether
the user can choose from supported versions. `versions` is empty for unversioned
items and a catalog-maintained list for tools where version selection is
supported. `min_macos` is empty for normal entries and set to the minimum
supported macOS major version when Homebrew or the vendor requires one. `arch`
is empty for normal entries and set to a required machine architecture such as
`arm64` when Homebrew or the vendor requires one. Selected entries with unmet
`min_macos` or `arch` fail before writing config or rendering an install plan.

Example rows:

```text
ide vscode Visual Studio Code cask visual-studio-code yes General-purpose code editor homebrew-latest Verify cask name
ide cursor Cursor cask cursor no AI-assisted code editor homebrew-latest Verify cask name
ide kiro Kiro cask kiro no Agentic IDE homebrew-latest Verify cask name
ai codex-cli Codex CLI cask codex no OpenAI command-line coding agent homebrew-latest Verify current cask/formula choice
ai codex-desktop Codex Desktop cask codex-app no Desktop app for managing Codex coding agents homebrew-latest Verify current cask name
ai claude-code-cli Claude Code CLI cask claude-code no Anthropic terminal-based coding assistant homebrew-channel stable,latest Use claude-code or claude-code@latest
ai claude-desktop Claude Desktop cask claude no Anthropic desktop app that can support Claude Code workflows homebrew-latest Use official Claude desktop cask
ai pi-coding-agent Pi Coding Agent external @earendil-works/pi-coding-agent no Minimal extensible terminal coding harness npm-or-vendor latest,<supported versions> Install from pi.dev/npm; use --ignore-scripts for npm/pnpm/bun package path
ai opencode OpenCode tap-formula opencode-ai/tap/opencode no Open-source terminal coding agent homebrew-or-vendor latest,<supported versions> Homebrew tap for latest; vendor installer supports VERSION
browser chrome Google Chrome cask google-chrome yes Mainstream browser homebrew-latest Verify cask name
browser firefox Firefox cask firefox no Open-source browser homebrew-latest Verify cask name
browser brave Brave cask brave-browser no Privacy-focused browser homebrew-latest Verify cask name
browser zen Zen Browser cask zen no Gecko-based browser homebrew-latest Verify cask name
runtime node-npm Node.js/npm external nvm no Node.js runtime plus npm package manager nvm latest,lts,<node versions> npm version follows Node unless user opts into npm upgrade
runtime bun Bun external bun.com/install no JavaScript runtime, package manager, and bundler bun-installer latest,<bun versions> Use Homebrew only for latest Homebrew-managed Bun
infra terraform Terraform version-manager tenv:tf no HashiCorp infrastructure-as-code CLI tenv latest,<terraform versions> Avoid disabled Homebrew core formula
infra opentofu OpenTofu version-manager tenv:tofu no Open-source Terraform-compatible IaC CLI tenv latest,<opentofu versions> Managed by tenv
infra terraspace Terraspace tap-formula boltops-tools/software/terraspace no Framework for Terraform/OpenTofu project structure and workflows homebrew-latest Specific versions deferred unless RubyGems/Bundler path is added
infra terragrunt Terragrunt version-manager tenv:tg no Wrapper for reusable Terraform/OpenTofu configuration and remote state tenv latest,<terragrunt versions> Managed by tenv
ide vscode Visual Studio Code cask visual-studio-code yes General-purpose code editor homebrew-latest Verify cask name
ide cursor Cursor cask cursor no AI-assisted code editor homebrew-latest Verify cask name
ide antigravity-ide Antigravity cask antigravity-ide no Google AI coding agent IDE homebrew-latest Verify cask name
ide kiro Kiro cask kiro no Agentic IDE homebrew-latest Verify cask name
ide sublime-text Sublime Text cask sublime-text no Text editor for code, markup, and prose homebrew-latest Verify cask name
terminal ghostty Ghostty cask ghostty no GPU-accelerated terminal emulator homebrew-latest Verify cask name
terminal warp Warp cask warp no Rust-based terminal homebrew-latest Verify cask name
ai codex-cli Codex CLI cask codex no OpenAI command-line coding agent homebrew-latest Verify current cask/formula choice
ai codex-desktop Codex Desktop cask codex-app no Desktop app for managing Codex coding agents homebrew-latest Verify current cask name
ai chatgpt-desktop ChatGPT Desktop cask chatgpt no OpenAI ChatGPT desktop app, separate from Codex; requires macOS 14+ and Apple Silicon homebrew-latest 14 arm64 Verify current cask name
ai claude-code-cli Claude Code CLI cask claude-code no Anthropic terminal-based coding assistant homebrew-latest Use stable Homebrew cask
ai claude-code-desktop Claude Code Desktop cask claude no Claude Desktop app with Claude Code workflows homebrew-latest Use official Claude desktop cask
ai pi-cli Pi CLI formula pi-coding-agent no Minimal extensible terminal coding harness homebrew-latest Homebrew formula packages the pi.dev CLI
ai opencode-cli OpenCode CLI formula opencode no AI coding agent built for the terminal homebrew-latest Homebrew core formula
ai opencode-desktop OpenCode Desktop cask opencode-desktop no Desktop client for the OpenCode coding agent homebrew-latest Verify cask name
browser chrome Google Chrome cask google-chrome yes Mainstream browser homebrew-latest Verify cask name
browser firefox Firefox cask firefox no Open-source browser homebrew-latest Verify cask name
browser brave Brave cask brave-browser no Privacy-focused browser homebrew-latest Verify cask name
browser zen Zen Browser cask zen no Gecko-based browser homebrew-latest Verify cask name
communication slack Slack cask slack no Team messaging and collaboration app homebrew-latest Verify cask name
communication teams Microsoft Teams cask microsoft-teams no Microsoft team chat and video meetings app homebrew-latest Verify cask name
runtime node-npm Node.js/npm external nvm no Node.js runtime plus npm package manager nvm latest,lts,<node versions> npm version follows Node unless user opts into npm upgrade
runtime bun Bun external bun.com/install no JavaScript runtime, package manager, and bundler bun-installer latest,<bun versions> Use Homebrew only for latest Homebrew-managed Bun
infra terraform Terraform version-manager tenv:tf no HashiCorp infrastructure-as-code CLI tenv latest,<terraform versions> Avoid disabled Homebrew core formula
infra opentofu OpenTofu version-manager tenv:tofu no Open-source Terraform-compatible IaC CLI tenv latest,<opentofu versions> Managed by tenv
infra terraspace Terraspace tap-formula boltops-tools/software/terraspace no Framework for Terraform/OpenTofu project structure and workflows homebrew-latest Specific versions deferred unless RubyGems/Bundler path is added
infra terragrunt Terragrunt version-manager tenv:tg no Wrapper for reusable Terraform/OpenTofu configuration and remote state tenv latest,<terragrunt versions> Managed by tenv
containers orbstack OrbStack cask orbstack no Fast Docker and Linux machine runtime for macOS; requires macOS 14+ homebrew-latest 14 Verify cask name
containers docker-desktop Docker Desktop cask docker-desktop no Docker GUI and runtime bundle for macOS; requires macOS 14+ homebrew-latest 14 Verify current cask name
containers docker-cli Docker CLI formula docker no Standalone Docker command-line client homebrew-latest Verify formula name
```

Before implementation, actual Homebrew formula/cask names and external installer sources should be verified with `brew info`, `brew info --cask`, official package-manager metadata, or the vendor's official installation docs because package names and distribution methods can change. Items that cannot be installed automatically and safely should not pretend to be installable; they should be disabled with a clear reason or omitted until a supported installer is available.
Expand Down
45 changes: 39 additions & 6 deletions lib/rig/catalog.sh
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,31 @@ rig_validate_version_strategy() {
return 1
}

rig_validate_min_macos() {
case "$1" in
""|[0-9]*)
;;
*)
return 1
;;
esac
case "$1" in
*[!0-9]*)
return 1
;;
esac
return 0
}

rig_validate_arch_requirement() {
case "$1" in
""|arm64|x86_64)
return 0
;;
esac
return 1
}

rig_validate_default_flag() {
case "$1" in
yes|no)
Expand Down Expand Up @@ -188,12 +213,12 @@ $id

rig_validate_tools_row() {
local catalog_path line_no record
local category id label kind package default_flag description version_strategy _versions _notes
local category id label kind package default_flag description version_strategy _versions min_macos arch _notes
local tap_owner tap_rest tap_name formula_name
catalog_path=$1
line_no=$2
record=$3
IFS="$RIG_TSV_DELIMITER" read -r category id label kind package default_flag description version_strategy _versions _notes < <(printf '%s\n' "$record")
IFS="$RIG_TSV_DELIMITER" read -r category id label kind package default_flag description version_strategy _versions min_macos arch _notes < <(printf '%s\n' "$record")

if ! rig_validate_id "$category"; then
rig_print_error "$catalog_path:$line_no: invalid category: $category"
Expand Down Expand Up @@ -257,6 +282,14 @@ rig_validate_tools_row() {
rig_print_error "$catalog_path:$line_no: invalid version strategy: $version_strategy"
return 1
fi
if ! rig_validate_min_macos "$min_macos"; then
rig_print_error "$catalog_path:$line_no: invalid min_macos: $min_macos"
return 1
fi
if ! rig_validate_arch_requirement "$arch"; then
rig_print_error "$catalog_path:$line_no: invalid arch: $arch"
return 1
fi
return 0
}

Expand Down Expand Up @@ -400,8 +433,8 @@ rig_validate_generated_defaults_content() {

rig_validate_tools_catalog() {
rig_validate_catalog "$1" "tools" \
'category id label kind package default description version_strategy versions notes' \
10 2 rig_validate_tools_row
'category id label kind package default description version_strategy versions min_macos arch notes' \
12 2 rig_validate_tools_row
}

rig_validate_defaults_catalog() {
Expand Down Expand Up @@ -494,7 +527,7 @@ rig_validate_tool_version() {
}

rig_tool_category_exists() {
local wanted record found category _id _label _kind _package _default_flag _description _version_strategy _versions _notes
local wanted record found category _id _label _kind _package _default_flag _description _version_strategy _versions _min_macos _arch _notes
wanted=$1
found=no
while IFS= read -r record || [ "$record" != "" ]; do
Expand All @@ -504,7 +537,7 @@ rig_tool_category_exists() {
if [ "$found" = "yes" ]; then
continue
fi
IFS="$RIG_TSV_DELIMITER" read -r category _id _label _kind _package _default_flag _description _version_strategy _versions _notes < <(printf '%s\n' "$record")
IFS="$RIG_TSV_DELIMITER" read -r category _id _label _kind _package _default_flag _description _version_strategy _versions _min_macos _arch _notes < <(printf '%s\n' "$record")
if [ "$category" = "$wanted" ]; then
found=yes
fi
Expand Down
Loading
Loading