core/skills/remove/SKILL.md
Remove service container, quadlet file, and charly.yml entry. MUST be invoked before any work involving: charly remove command, cleaning up containers, removing quadlets, or purging volumes.
npx skillsauth add overthinkos/overthink-plugins removeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Removes a service container along with its quadlet file and charly.yml entry. Optionally purges named volumes and runs lifecycle hooks before removal.
| Action | Command | Description |
|--------|---------|-------------|
| Remove container | charly remove <image> | Remove container, quadlet, and deploy entry |
| Purge volumes | charly remove <image> --purge | Also remove named volumes |
| Keep deploy entry | charly remove <image> --keep-deploy | Keep charly.yml entry for re-configuration |
| With env vars | charly remove <image> -e KEY=VALUE | Pass env vars to pre_remove hooks |
# Remove a service (container + quadlet + charly.yml entry)
charly remove jupyter
# Remove and purge all named volumes
charly remove ollama --purge
# Remove but keep charly.yml entry for later re-configuration
charly remove immich --keep-deploy
# Pass environment variables to pre_remove hooks
charly remove openclaw -e CLEANUP_MODE=full
| Flag | Description |
|------|-------------|
| --purge | Also remove named volumes associated with the image |
| --keep-deploy | Preserve the charly.yml entry (useful for re-running charly config) |
| -e, --env KEY=VALUE | Pass environment variables to pre_remove lifecycle hooks |
pre_remove lifecycle hooks (if defined in image labels)--keep-deploy)--purge: removes named volumes (charly-<image>-<name>)Images can define pre_remove hooks that run before the container is removed. These are useful for graceful shutdown, data export, or cleanup tasks. Use -e to pass context to hooks.
Remove specific instances with -i:
charly remove selkies-desktop -i 192.241.92.221 # Remove instance
charly remove selkies-desktop -i 192.241.92.221 --purge # Also purge volumes
Instance removal automatically cleans the instance's env_provide and mcp_provide from charly.yml provides section. Other instances of the same base image are unaffected.
/charly-build:pull -- Prerequisite: fetch the image into local storage; handles remote refs (@github.com/...) and the ErrImageNotLocal recovery path
/charly-core:stop -- Stop without removing
/charly-core:charly-config -- Configure/reconfigure services (see "Full instance removal" for 3-step cleanup)
/charly-core:deploy -- Deploy.yml management, tunnel configuration
/charly-core:service -- Full service lifecycle
/charly-build:charly-mcp-cmd -- after charly config remove cleans this instance's mcp_provide from the global provides.mcp: list, consumers' CHARLY_MCP_SERVERS no longer lists it; use charly check live <consumer> --filter mcp to confirm the cleanup propagated
tools
Use when authoring or modifying a charly PLUGIN — a candy with a `plugin:` block that contributes Providers (verbs/kinds/deploy-targets/steps/builders/commands), its own CUE schema, builtin (compiled-in) or external (out-of-tree git repo). Covers the unified Provider model, the per-plugin CUE-schema contract (single source → Go params for dev + schema-over-Describe RPC for runtime), the SDK, and the loader.
tools
The CUE data-validation / configuration CLI (cue), pinned to v0.16.1. Use when working with the cue candy, installing the cue binary into a box or onto a target:local dev host, or running the offline schema-vendoring pipeline that feeds charly's egress validation.
tools
CUE EGRESS validation — validating (and, where it adds value, generating) the config files charly WRITES to a system BEFORE the bytes hit disk. MUST be invoked before working on charly/egress.go, the vendored schemas under candy/plugin-egress/egress-schemas/vendor/, the ValidateEgress / registerVendoredEgressKind path, the offline `task cue:vendor` pipeline, or adding an egress schema for any written artifact (cloud-init, k8s manifests, traefik routes, runtime config, install ledger, systemd/quadlet units, ssh_config, libvirt XML).
tools
Kubernetes cluster-probe declarative check verb — the `kube:` check verb (nodes, pods, ingress, storage class, addon health, apply/delete, and arbitrary resource GETs) served out-of-process by the candy/plugin-kube plugin (vendored client-go; no external kubectl required).