# Uninstall

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

- Skill: `sbusso/uninstall` (Agent Skill)
- Install (CLI): `npx skillmds@latest add sbusso/uninstall`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sbusso/uninstall/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: sbusso (https://skillmd.com/u/sbusso)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/sbusso/uninstall

---


# 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:**
```bash
DIRNAME=$(basename "$(pwd)")
PLIST_NAME="com.claudeclaw.${DIRNAME}"
PLIST_PATH="$HOME/Library/LaunchAgents/${PLIST_NAME}.plist"
```

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

### 2. Check if service exists

```bash
# 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:
```bash
# 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:**
```bash
launchctl bootout "gui/$(id -u)/${PLIST_NAME}" 2>/dev/null || true
rm -f "$PLIST_PATH"
```

**Linux:**
```bash
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

```bash
# 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

```bash
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
```

