vet

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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:
MREADME.md | 17++++++++++++++---
Ainstall-skill.sh | 63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 ""