commit 770985bccb28610c1bac075c99a3fc2a3974d055
parent c6171c3022d5b9f8006ad135769f55f180584427
Author: andrewlaack-collab <andrew.laack@imbue.com>
Date: Wed, 18 Feb 2026 18:34:42 +0000
Add one-liner skill installer with interactive project/user prompt (#96)
Co-authored-by: Andrew Laack <andrew@laack.co>
Diffstat:
2 files changed, 77 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
@@ -46,6 +46,18 @@ Vet ships as an [agent skill](https://agentskills.io) that coding agents like [O
### Install the skill
+```bash
+curl -fsSL https://raw.githubusercontent.com/imbue-ai/vet/main/install-skill.sh | bash
+```
+
+You will be prompted to choose between:
+
+- **Project level** — installs into `.agents/skills/vet/` and `.claude/skills/vet/` at the repo root (run from your repo directory)
+- **User level** — installs into `~/.agents/`, `~/.opencode/`, `~/.claude/`, and `~/.codex/` skill directories, discovered globally by all agents
+
+<details>
+<summary>Manual installation</summary>
+
#### Project Level
From the root of your git repo:
@@ -60,8 +72,6 @@ for dir in .agents .claude; do
done
```
-This places the skill in `.agents/skills/vet/` and `.claude/skills/vet/` at the repo root, which is sufficient for discovery by OpenCode, Claude Code, and Codex.
-
#### User Level
```bash
@@ -73,7 +83,8 @@ for dir in ~/.agents ~/.opencode ~/.claude ~/.codex; do
done
done
```
-This places the skill in `~/.agents/skills/vet/`, `~/.opencode/skills/vet/`, `~/.claude/skills/vet/`, and `~/.codex/skills/vet/`, so it is discovered by OpenCode, Claude Code, and Codex.
+
+</details>
### Security note
diff --git a/install-skill.sh b/install-skill.sh
@@ -0,0 +1,63 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+REPO="imbue-ai/vet"
+BRANCH="main"
+BASE_URL="https://raw.githubusercontent.com/${REPO}/${BRANCH}/skills/vet"
+FILES=(
+ "SKILL.md"
+ "scripts/export_opencode_session.py"
+ "scripts/export_codex_session.py"
+ "scripts/export_claude_code_session.py"
+)
+
+echo ""
+echo " Vet Skill Installer"
+echo " --------------------"
+echo ""
+echo " [1] Project level - install into the current repo (.agents/ and .claude/)"
+echo " [2] User level - install into your home directory (~/.agents/, ~/.opencode/, ~/.claude/, ~/.codex/)"
+echo ""
+
+printf " Choose [1/2]: "
+read -r choice </dev/tty
+
+case "$choice" in
+ 1)
+ dirs=(".agents" ".claude")
+ label="project"
+ ;;
+ 2)
+ dirs=("$HOME/.agents" "$HOME/.opencode" "$HOME/.claude" "$HOME/.codex")
+ label="user"
+ ;;
+ *)
+ echo " Invalid choice. Exiting."
+ exit 1
+ ;;
+esac
+
+echo ""
+
+for dir in "${dirs[@]}"; do
+ mkdir -p "$dir/skills/vet/scripts"
+ for file in "${FILES[@]}"; do
+ printf " Downloading %s -> %s/skills/vet/%s\n" "$file" "$dir" "$file"
+ curl -fsSL "${BASE_URL}/${file}" -o "$dir/skills/vet/$file"
+ done
+done
+
+echo ""
+echo " Done! Vet skill installed at the ${label} level."
+
+if [ "$label" = "project" ]; then
+ echo ""
+ echo " Installed to:"
+ for dir in "${dirs[@]}"; do
+ echo " $dir/skills/vet/"
+ done
+ echo ""
+ echo " You may want to commit these files to your repo."
+fi
+
+echo ""