diff --git a/AGENTS.md b/AGENTS.md index 861d38d..e971052 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -33,5 +33,5 @@ Practical rule: **edit the `.example` source, not the generated symlink target.* ## Maintenance -- `./update_mac.sh` — macOS update runner. Default (no args) runs `--brew-update --cleanup --diagnostics --update-others`; other flags: `--system-update`, `--permission-fix` (strips Caskroom/App quarantine xattrs). Run `./update_mac.sh --help` for the list. `--update-others` also updates Alacritty from its verified upstream release and antidote plugins (not updated at shell start), tmux plugins (TPM) and nvim plugins (vim-plug, headless), cleaning plugins no longer in the config, then runs `claude --update`, `codex update`, and `pi update` (incl. extensions) when installed. +- `./update_mac.sh` — macOS update runner. Default (no args) runs `--brew-update --cleanup --diagnostics --update-others`; other flags: `--system-update`, `--permission-fix` (strips Caskroom/App quarantine xattrs). Run `./update_mac.sh --help` for the list. `--update-others` also updates Alacritty from its verified upstream release and antidote plugins (not updated at shell start), tmux plugins (TPM) and nvim plugins (vim-plug, headless), cleaning plugins no longer in the config, then runs `claude --update` (+ marketplaces and user-scope plugins), `codex update` (+ Git plugin marketplaces), and `pi update` (incl. extensions) when installed, plus `skills update --global` (brew `skills`) for skills in `~/.agents/skills`. MCP servers need nothing: they're remote or launched via `npx …@latest`. - `brew_autoupdate` — runs scheduled brew and Alacritty auto-updates. diff --git a/setup_mac.sh b/setup_mac.sh index 634ca41..fc6c6d2 100755 --- a/setup_mac.sh +++ b/setup_mac.sh @@ -6,7 +6,7 @@ # Distributed under terms of the MIT license. # -brew install neovim tmux coreutils cmake golang jq npm prettier virtualenvwrapper fzf git-delta +brew install neovim tmux coreutils cmake golang jq npm prettier virtualenvwrapper fzf git-delta skills brew install --cask font-fira-mono-nerd-font 1password-cli ./install_alacritty_mac.sh BREW_PREFIX="$(brew --prefix)" diff --git a/update_mac.sh b/update_mac.sh index c46d218..5d155e6 100755 --- a/update_mac.sh +++ b/update_mac.sh @@ -66,11 +66,28 @@ function update_others { if [ -x "$(command -v claude)" ]; then echo "-- CLAUDE" claude --update + echo "-- CLAUDE PLUGINS" + claude plugin marketplace update + # No pipe into the loop: update must keep the terminal as stdin for its + # confirm prompt (bun's kqueue rejects a `< /dev/tty` redirect) + plugins=$(claude plugin list --json \ + | python3 -c 'import json, sys; print(*(p["id"] for p in json.load(sys.stdin) if p["scope"] == "user"))') + for plugin in $plugins; do + claude plugin update --scope user "$plugin" + done fi if [ -x "$(command -v codex)" ]; then echo "-- CODEX" codex update + echo "-- CODEX PLUGINS" + codex plugin marketplace upgrade + fi + + # Skills installed via the skills CLI (shared by Claude, Codex, ...) + if [ -f "$HOME/.agents/.skill-lock.json" ] && [ -x "$(command -v skills)" ]; then + echo "-- SKILLS" + skills update --global --yes fi if [ -x "$(command -v pi)" ]; then