feat(install): unify per-platform installers into install.sh / install.ps1#123
Conversation
…l.ps1 Replace 7 nearly-identical .<platform>/INSTALL.md files with one install.sh + install.ps1 that enumerate skills dynamically from understand-anything-plugin/skills/ — the previous hardcoded list of 6 was already stale, missing understand-domain and understand-knowledge. Supported usage: install.sh <platform> # gemini/codex/opencode/pi/openclaw/antigravity/vscode install.sh # interactive prompt; reads /dev/tty so curl|sh works install.sh --update # git pull on the shared checkout install.sh --uninstall <plat> # removes skill links for that platform Single shared checkout at ~/.understand-anything/repo (override via UA_DIR). Antigravity keeps its existing ~/.gemini/antigravity/skills path for backward compatibility; OpenClaw keeps its folder-symlink style. Universal ~/.understand-anything-plugin link unchanged. README.md and the 6 translated READMEs replace the old per-platform "Fetch and follow instructions from .../<plat>/INSTALL.md" blocks with a single curl|sh / iwr|iex one-liner. Compatibility tables updated. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
966d607 to
8956696
Compare
💡 Codex ReviewUnderstand-Anything/install.ps1 Lines 176 to 177 in 966d607
Understand-Anything/install.sh Lines 189 to 191 in 966d607 The uninstall flow exits early when ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
… uninstall - install.ps1 (P1): refuse to delete real files/directories; only remove paths that are actual junctions/symlinks. Closes a data-loss path where Cmd-Uninstall would Remove-Item -Recurse a pre-existing user directory at ~/.understand-anything-plugin (Cmd-Install correctly skipped touching it, but uninstall did not). Cmd-Uninstall and Unlink-Skills now both go through Remove-Reparse, which uses DirectoryInfo.Delete() so a junction's target is never followed. - install.sh (P2): --uninstall no longer exits early when the checkout has been deleted. The per-skill unlinker falls back to scanning the target dir for stale symlinks pointing into the plugin tree, so users can clean up after manually rm -rf'ing the checkout. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
.<platform>/INSTALL.mdfiles (gemini/codex/opencode/pi/openclaw/antigravity/vscode) with a singleinstall.sh+install.ps1at the repo root. Skills are enumerated dynamically fromunderstand-anything-plugin/skills/— the old hardcoded list of 6 was already stale (missingunderstand-domainandunderstand-knowledge).~/.understand-anything/repo(override viaUA_DIR). Antigravity keeps its existing~/.gemini/antigravity/skillspath for backward compatibility; OpenClaw keeps its folder-symlink style. Universal~/.understand-anything-pluginlink unchanged.README.mdand 6 translated READMEs (READMEs/*.md) replace the per-platform "Fetch and follow instructions from .../<plat>/INSTALL.md" blocks with onecurl | bash/iwr | iexone-liner. Compatibility tables updated to showinstall.sh codex, etc.__pycache__/to.gitignore.Usage
Windows:
iwr -useb https://raw.githubusercontent.com/Lum1104/Understand-Anything/main/install.ps1 | iexTest plan
bash -n install.sh— syntax checkgit, exercising all 7 platforms — verified per-skill symlinks land in~/.agents/skills/(gemini/codex/opencode/pi), folder symlinks land in~/.openclaw/skills/understand-anythingand~/.gemini/antigravity/skills/understand-anything, and per-skill links land in~/.copilot/skills/for vscode--uninstall <plat>removes the skill links and the universal plugin link, keeps the shared checkout--updaterunsgit pull --ff-onlyon the existing checkout--helpprints usagegrep -n 'INSTALL.md' README.md READMEs/*.md— empty (no stale links)install.ps1curl | bashworks against the livemainbranch once this PR landsNotes
plugin.jsonfiles.~/.gemini/understand-anything, etc.) are not affected — their installs keep working until they re-run the new script, which clones into~/.understand-anything/repoinstead.🤖 Generated with Claude Code