Skip to content
Automation
Skill

/plugin-uninstall

Uninstall an EvoNexus plugin, reverting the files it copied and running its uninstall.sql. Use when the user asks to remove, uninstall, or delete a plugin. Triggers on "desinstala plugin X", "remove plugin X", "uninstall plugin X", "tira o plugin Y".

From plugin
evo-nexus
520193 skills38 agents40 commands9 MCP
Install
$ npx -y skills add evolution-foundation/evo-nexus --skill plugin-uninstall --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/plugin-uninstall

Context preview

The summary Claude sees to decide when to auto-load this skill.

Uninstall an EvoNexus plugin, reverting the files it copied and running its uninstall.sql. Use when the user asks to remove, uninstall, or delete a plugin. Triggers on "desinstala plugin X", "remove plugin X", "uninstall plugin X", "tira o plugin Y".

SKILL.md

plugin-uninstall.SKILL.md
name: plugin-uninstall
description: Uninstall an EvoNexus plugin, reverting the files it copied and running its uninstall.sql. Use when the user asks to remove, uninstall, or delete a plugin. Triggers on "desinstala plugin X", "remove plugin X", "uninstall plugin X", "tira o plugin Y".
metadata:
  category: plugins
  version: 1.0.0

Plugin Uninstall

Remove a plugin from the workspace using `DELETE /api/plugins/<slug>`. Uninstall is reverse-order via `.install-manifest.json`.

How to use

Step 1 — Resolve the slug

If not given, call list and ask which one:

from dashboard.backend.sdk_client import evo

plugins = evo.get("/api/plugins")

Validate exists:

detail = evo.get(f"/api/plugins/{slug}")

If HTTP 404, say so and stop.

Step 2 — Show what will be removed

Read `manifest` from detail. Summarise:

  • Files in `.claude/agents/plugin-<slug>-*.md`, `.claude/skills/plugin-<slug>-*/`, `.claude/commands/plugin-<slug>-*.md`, `.claude/rules/plugin-<slug>-*.md`
  • Heartbeats registered by the plugin (disappear from `/heartbeats`)
  • Routines (scheduler SIGHUP reload on removal)
  • Claude hook handlers under `plugins/<slug>/claude-hook-handlers/`
  • Contents of `migrations/uninstall.sql` — full text
  • Contents of `hooks/pre-uninstall.sh` and `hooks/post-uninstall.sh` — full text

**Important**: user data created **inside** plugin-managed tables is usually DROPped by uninstall SQL. Tell the user explicitly and ask if they want to export first.

Step 3 — Require explicit confirmation

Accept only clear affirmatives. If user hesitates, offer:

  • Export first via `GET /api/plugins/<slug>/readonly-data/<query>` if declared
  • Disable instead of remove: `evo.patch(f"/api/plugins/{slug}", {"enabled": False})` — reversible, keeps data

Step 4 — Run uninstall

evo.delete(f"/api/plugins/{slug}")

Step 5 — Report

On success, summarise: files removed, tables dropped, hooks cleared. Point to `/plugins` for confirmation.

Error handling

  • `HTTP 404 not_found` — slug doesn't exist. Reprompt.
  • `HTTP 409 uninstall_failed` — reverse-order chain failed. Surface specific step. Offer manual recovery (delete `plugins/<slug>/` after fixing, then retry).
  • `HTTP 500 sql_rollback_failed` — rare. DB may be inconsistent. Check `ADWs/logs/plugins/`.

Notes for the agent

  • Disable ≠ uninstall. Disable keeps data and is reversible.
  • If plugin has routines, scheduler reloads automatically. If offline, user must restart.
Read more
Ships withevo-nexus

The open source operating system for AI-powered businesses

Get the whole plugin

Other skills on evo-nexus.