Skip to content

fix: install Pinecone CLI as a Homebrew cask (formula disabled 2026-03-30) - #46

Open
mcdgavin wants to merge 1 commit into
pinecone-io:mainfrom
mcdgavin:fix/brew-cask-install
Open

fix: install Pinecone CLI as a Homebrew cask (formula disabled 2026-03-30)#46
mcdgavin wants to merge 1 commit into
pinecone-io:mainfrom
mcdgavin:fix/brew-cask-install

Conversation

@mcdgavin

@mcdgavin mcdgavin commented Sep 9, 2026

Copy link
Copy Markdown

Problem

The "Install the Pinecone CLI (Optional)" instructions no longer work. The pinecone-io/tap/pinecone formula was disabled on 2026-03-30 when the CLI migrated to a cask, so following the README today produces:

==> Tapping pinecone-io/tap
Tapped 1 cask and 1 formula (22 files, 112.5KB).
Warning: Treating pinecone-io/tap/pinecone as a formula. For the cask, use
pinecone-io/tap/pinecone or specify the `--cask` flag.
Error: pinecone-io/tap/pinecone has been disabled because it has migrated to a
cask. Reinstall with: brew uninstall pinecone-io/tap/pinecone && brew install
--cask pinecone-io/tap/pinecone! It was disabled on 2026-03-30.

Verified against the tap: Formula/pinecone.rb carries disable! date: "2026-03-30" pointing at the cask, and Casks/pinecone.rb is the live GoReleaser-generated cask (currently 1.0.1). pinecone-io/cli's README already documents the cask form.

Fix

Switch every install instruction in the plugin to a single fully qualified command:

brew install --cask pinecone-io/tap/pinecone
File Change
README.md single --cask command + upgrade note
hooks/pinecone-api-key-check.sh session-start CLI guidance now emits the --cask command

skills/cli/SKILL.md and skills/help/SKILL.md carry the same stale command but are rendered from pinecone-io/skills, where the maintainers are carrying the fix (pinecone-io/skills#33). Left for the sync.

The upgrade note tells anyone who installed before the migration to run brew uninstall pinecone-io/tap/pinecone first, since Homebrew refuses to install the cask over the disabled formula.

The hook matters most: when pc is not installed it injects the install command into Claude's context at every session start, so the agent was confidently repeating a command that errors out.

Why drop the separate brew tap step

  • brew install taps automatically for a fully qualified user/repo/name (cmd/install.rb calls tap.ensure_installed! on each named argument).
  • Since Homebrew 6.0.0, non-official taps require explicit trust. Installing a fully qualified cask trusts only that cask; the tap-then-short-name form now additionally needs brew trust. Homebrew's Tap Trust docs give brew install --cask user/repository/cask as the canonical form.
  • This matches what peer vendor taps document (e.g. HashiCorp brew install hashicorp/tap/terraform, Supabase brew install supabase/tap/supabase).

Related

Follow-up, not in this PR

The hook detects the CLI with command -v pc, so a user who installed the old formula before 2026-03-30 still reads as "installed" and never sees the migration note; their next brew upgrade fails on the disabled formula with no warning from the plugin. A one-line readlink check for a Cellar/pinecone target would catch it. Left out here to keep this PR to the install string; it is #47, independent of this one.

Verification

  • Clean-state run on Homebrew 6.0.22, starting with the tap untapped, no trust entries, and no cask installed. brew install --cask pinecone-io/tap/pinecone alone tapped pinecone-io/tap, printed Trusted cask pinecone-io/tap/pinecone (item-level trust, not whole-tap), installed cask 1.0.1, and pc version prints 1.0.1. Exit 0. Note the tap still ships the disabled formula alongside the cask (Tapped 1 cask and 1 formula), which is why the old command produced the confusing "Treating ... as a formula" warning before failing.
  • bash -n hooks/pinecone-api-key-check.sh passes, and running the hook with no PINECONE_API_KEY emits the new --cask command.
  • grep -rn "brew tap" README.md hooks returns nothing; grep -rn "brew install" README.md hooks shows only the --cask form (plus the unrelated brew install uv).
  • CHANGELOG.md is left alone since release.yml generates the entry from this PR's commit headline at merge time.

@mcdgavin
mcdgavin force-pushed the fix/brew-cask-install branch 2 times, most recently from 5eda7eb to b7e25b8 Compare September 9, 2026 16:44
@mcdgavin
mcdgavin force-pushed the fix/brew-cask-install branch from b7e25b8 to a739a2d Compare September 9, 2026 16:51
@mcdgavin mcdgavin changed the title Fix Pinecone CLI Homebrew install command (formula migrated to cask) fix: install Pinecone CLI as a Homebrew cask (formula disabled 2026-03-30) Sep 9, 2026
@mcdgavin
mcdgavin force-pushed the fix/brew-cask-install branch from a739a2d to 002e406 Compare September 9, 2026 21:08
mcdgavin added a commit to mcdgavin/skills that referenced this pull request Sep 9, 2026
…3-30)

The `pinecone-io/tap/pinecone` formula was disabled on 2026-03-30 when the
CLI migrated to a cask, so the documented `brew install pinecone-io/tap/pinecone`
now fails and tells the user to reinstall with `--cask`.

Switch every install instruction to the single fully qualified command:

    brew install --cask pinecone-io/tap/pinecone

The separate `brew tap pinecone-io/tap` step is dropped. `brew install`
taps automatically for a fully qualified name, and under Homebrew 6 tap
trust the fully qualified form grants trust to only this cask. This is the
form Homebrew's Tap Trust docs give and the form pinecone-io/cli's README
already uses.

Updated:

- README.md
- skills/pinecone-cli/SKILL.md (plus a note for users upgrading from the
  old formula)
- skills/pinecone-help/SKILL.md
- tools/test_build.py (fixture string kept in step with the docs)

Rendered `--target claude-code` output for the cli and help skills is
byte-identical to pinecone-io/pinecone-claude-code-plugin#46.
…3-30)

The `pinecone-io/tap/pinecone` formula was disabled on 2026-03-30 when the
CLI migrated to a cask, so the documented `brew install pinecone-io/tap/pinecone`
now fails with:

    Error: pinecone-io/tap/pinecone has been disabled because it has migrated
    to a cask. Reinstall with: brew uninstall pinecone-io/tap/pinecone &&
    brew install --cask pinecone-io/tap/pinecone!

Switch the plugin-owned install instructions to the single fully qualified
command:

    brew install --cask pinecone-io/tap/pinecone

The separate `brew tap pinecone-io/tap` step is dropped. `brew install`
taps automatically for a fully qualified name, and under Homebrew 6 tap
trust the fully qualified form grants trust to only this cask. This is the
form Homebrew's Tap Trust docs give and the form pinecone-io/cli's README
already uses.

Updated:

- README.md (plus a note for users upgrading from the old formula)
- hooks/pinecone-api-key-check.sh (session-start CLI guidance)

The two skills/ files carry the same command but are sync-managed from
pinecone-io/skills, where the maintainers are carrying the fix; they are
left for the sync.
@mcdgavin
mcdgavin force-pushed the fix/brew-cask-install branch from 002e406 to 8815b73 Compare September 10, 2026 01:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant