Claudeclaw uninstall

Stop and remove the ClaudeClaw background service and agents for this instance

install
source · Clone the upstream repo
git clone https://github.com/sbusso/claudeclaw
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sbusso/claudeclaw "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/uninstall" ~/.claude/skills/sbusso-claudeclaw-uninstall && rm -rf "$T"
manifest: skills/uninstall/SKILL.md
source content

Uninstall Service

Stop and remove the ClaudeClaw background service for the current instance. Data (store/, groups/, .env) is preserved — only the service unit is removed.

Flow

1. Detect OS and find service

macOS:

DIRNAME=$(basename "$(pwd)")
PLIST_NAME="com.claudeclaw.${DIRNAME}"
PLIST_PATH="$HOME/Library/LaunchAgents/${PLIST_NAME}.plist"

Linux:

DIRNAME=$(basename "$(pwd)")
SERVICE_NAME="claudeclaw-${DIRNAME}"
SERVICE_PATH="$HOME/.config/systemd/user/${SERVICE_NAME}.service"

2. Check if service exists

# macOS
[ ! -f "$PLIST_PATH" ] && echo "No service found at $PLIST_PATH" && exit 0

# Linux
[ ! -f "$SERVICE_PATH" ] && echo "No service found at $SERVICE_PATH" && exit 0

If no service file found, also check for running processes:

# macOS — check if loaded even without plist
launchctl list | grep claudeclaw
# Linux
systemctl --user list-units | grep claudeclaw

3. Confirm with user

AskUserQuestion: "Remove ClaudeClaw service for this instance? This will stop the background process. Your data (groups, messages, .env) is preserved."

4. Stop and unload

macOS:

launchctl bootout "gui/$(id -u)/${PLIST_NAME}" 2>/dev/null || true
rm -f "$PLIST_PATH"

Linux:

systemctl --user stop "$SERVICE_NAME" 2>/dev/null || true
systemctl --user disable "$SERVICE_NAME" 2>/dev/null || true
rm -f "$SERVICE_PATH"
systemctl --user daemon-reload

5. Verify stopped

# macOS
launchctl list | grep "$PLIST_NAME" && echo "WARNING: service still loaded" || echo "Service removed"

# Linux
systemctl --user is-active "$SERVICE_NAME" 2>/dev/null && echo "WARNING: service still running" || echo "Service removed"

6. Kill any orphan processes

pkill -f "dist/service.js" 2>/dev/null || true

Only kill processes whose cwd matches the current directory to avoid killing other instances.

7. Confirm

Print:

ClaudeClaw service removed for this instance.
- Service file: deleted
- Process: stopped
- Data: preserved (store/, groups/, .env still in place)
- To reinstall: run /setup