From alfred-dev
Checks installed version of Alfred Dev plugin from cache, fetches latest GitHub release, compares semver, and applies update on user confirmation via menu.
npx claudepluginhub 686f6c61/alfred-dev --plugin alfred-dev# Actualizar Alfred Dev Eres Alfred. El usuario quiere comprobar si hay una version nueva del plugin. Sigue estos pasos al pie de la letra. ## Paso 1: obtener la version instalada Ejecuta con Bash: Si no se puede leer, busca la version en el fichero `plugin.json` mas cercano dentro de `~/.claude/plugins/cache/alfred-dev/`. El script selecciona la version mas reciente por fecha de modificacion para evitar errores cuando coexistan varias versiones en cache. ## Paso 2: consultar la ultima release en GitHub Ejecuta con Bash: Extrae del JSON: `tag_name` (version), `name` (titulo), `bo...
/update-pluginUpdates plugins from the marketplace interactively with version detection, automatic backup, verification, and rollback on failure. Supports --check-only, --yes, --json, and other flags.
/fire-updateChecks for plugin updates from GitHub repository, applies with backups, views history/version, or rolls back. Supports action argument (check/default, apply, history, version, rollback).
/ai-coding-configInteractively sets up or updates AI coding configurations for Claude Code, Cursor, Aider, and Continue. Detects tools, manages repo, guides plugin installation. Supports update argument.
/releaseAutomates complete release workflow: analyzes git changes for semantic version bump, updates files/docs/changelog, commits/tags/pushes to remote, creates release on GitHub/GitLab/Bitbucket.
/vt-update-workflowChecks current virtual-team plugin version from manifest and package.json, shows install location, optionally checks for git updates with --check, and displays update instructions.
/updateUpdates GSD to latest version via npm after version check, fetches and displays changelog, confirms with clean install warning, executes update, clears cache, reminds to restart.
Share bugs, ideas, or general feedback.
Eres Alfred. El usuario quiere comprobar si hay una version nueva del plugin. Sigue estos pasos al pie de la letra.
Ejecuta con Bash:
python3 -c "
import json, os, glob, sys
candidates = sorted(
glob.glob(os.path.expanduser('~/.claude/plugins/cache/alfred-dev/**/.claude-plugin/plugin.json'), recursive=True),
key=os.path.getmtime,
reverse=True
)
if not candidates:
print('desconocida')
sys.exit(0)
with open(candidates[0]) as f:
print(json.load(f).get('version', 'desconocida'))
" 2>/dev/null || echo "desconocida"
Si no se puede leer, busca la version en el fichero plugin.json mas cercano dentro de ~/.claude/plugins/cache/alfred-dev/. El script selecciona la version mas reciente por fecha de modificacion para evitar errores cuando coexistan varias versiones en cache.
Ejecuta con Bash:
curl -s --max-time 10 "https://api.github.com/repos/686f6c61/alfred-dev/releases/latest"
Extrae del JSON: tag_name (version), name (titulo), body (notas de la release), published_at (fecha).
Si la peticion falla (sin red, rate limit, timeout), informa del error y sugiere reintentarlo mas tarde. No sigas adelante. En concreto:
"message": "API rate limit exceeded", informa al usuario de que ha superado el limite de peticiones de GitHub y que puede reintentar en unos minutos o pasar un token con -H "Authorization: token ...".tag_name, es una respuesta inesperada. Muestra el contenido raw y aborta.Valida que tag_name tiene formato semver valido: debe coincidir con el patron v?X.Y.Z donde X, Y, Z son numeros (por ejemplo v0.3.0 o 0.3.0). Si no coincide, muestra un aviso y aborta: el formato de la release no es el esperado.
Normaliza tag_name (sin la v inicial) y la version instalada a tuplas
numericas (major, minor, patch) y comparalas como semver real. Nunca
compares las versiones como texto plano (0.10.0 es mayor que 0.9.0).
Si necesitas una comparacion determinista, ejecuta con Bash:
python3 - <<'PY'
def parse(value):
return tuple(int(part) for part in value.strip().lstrip('v').split('.'))
installed = "VERSION_INSTALADA"
latest = "TAG_NAME"
print(parse(latest) > parse(installed))
PY
Sustituye VERSION_INSTALADA y TAG_NAME por los valores reales del paso 1 y 2.
Muestra al usuario:
Despues usa un único AskUserQuestion con menú seleccionable real. No
dejes la decisión en texto libre. Las dos opciones deben ser:
Informa de que no hay actualizaciones disponibles y muestra la version actual. Fin.
Si el usuario acepta, primero detecta la plataforma y despues ejecuta el instalador correspondiente.
Ejecuta con Bash:
uname -s 2>/dev/null || echo "Windows"
Darwin o Linux: es macOS o Linux, usa el instalador bash.Windows / MINGW / MSYS / CYGWIN: es Windows, usa el instalador PowerShell.curl -fsSL https://raw.githubusercontent.com/686f6c61/alfred-dev/main/install.sh | bash
irm https://raw.githubusercontent.com/686f6c61/alfred-dev/main/install.ps1 | iex
Despues de que termine, informa al usuario de que debe reiniciar Claude Code (cerrar y volver a abrir) para que los cambios surtan efecto. Los plugins se cargan al inicio de sesion.