From bento
Updates a bento install on a remote server via SSH, re-running the bootstrap unattended to pull latest code and redeploy managed stacks. Use for updating bento or redeploying stacks.
How this skill is triggered — by the user, by Claude, or both
Slash command
/bento:updateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are operating bento on a remote machine. An update redeploys running
You are operating bento on a remote machine. An update redeploys running services (brief downtime) and may reboot the host. Confirm with the user before proceeding. All artifacts stay in English.
<host>"If the user wants to add NEW apps (not update existing), use /bento:deploy.
For a fresh server, /bento:install.
ssh -o ConnectTimeout=5 "$user@$host" "echo SSH_OK".ssh "$user@$host" "test -f ~/.config/bento/state.json && echo BENTO_OK". If absent, stop.ssh "$user@$host" "jq -r '.bootstrap | .base_domain, .admin_email, .advertise_addr' ~/.config/bento/state.json"
stable; main or a feature branch only if the user asks).Re-run the bootstrap one-liner unattended with the saved values. boot.sh
re-clones the latest ref into ~/.local/share/bento, install.sh re-applies
every step idempotently (hardening is a no-op when already done), reconciles
state.stacks against Portainer, and redeploys the managed stacks.
ssh "$user@$host" "\
BENTO_UNATTENDED=1 \
BENTO_REF=<ref> \
BENTO_BASE_DOMAIN=<base_domain> \
BENTO_ADMIN_EMAIL=<admin_email> \
${ADVERTISE_ADDR:+BENTO_ADVERTISE_ADDR=$ADVERTISE_ADDR} \
bash <(curl -sSL https://raw.githubusercontent.com/felipefontoura/bento/<ref>/boot.sh)"
If the run prints BENTO_REBOOT_SENTINEL, the VPS will reboot and the
bento-resume.service unit continues on next boot — follow the
"Post-hardening reboot" steps from the install skill (poll SSH back, then
journalctl -u bento-resume.service -f).
Surgical alternative (no hardening pass, no reboot risk): the interactive Update menu does a
git fetch + reset --hardand redeploys only stacks whosecompose.yml/manifest.jsonchanged. It is interactive and not cleanly scriptable over SSH — if the user wants that precise behaviour, tell them to runbash ~/.local/share/bento/install.shand pick Update.
After the run settles, do the read-only checks from /bento:status:
docker service ls --filter label=BENTO_MANAGED=true all at expected replicas,
and curl -sI each app URL. Report what changed and flag any service stuck
below its desired replica count.
npx claudepluginhub felipefontoura/bento --plugin bentoDeploys additional application stacks on a VPS already running bento via SSH. Use when adding apps like n8n or Chatwoot to an existing bento server.
Discovers MCP servers from Claude Code configs, detects dependencies, updates packages using best practices. Run after fresh installs, connection errors, or periodically.
Deploys Julian app to exe.xyz VMs: provisions new instances with SSH VM creation, bun/npm install, dir setup; or updates existing via git push. Tracks in instances.json.