Skip to content
Back to skills

Diagnose

ASecurity

Check memory daemon health and troubleshoot connectivity issues. Use when memory tools aren't working, at session start if something seems wrong, or when user asks about memory status.

  • 290 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 7, 2026
toolspythonshellbashsqldatabase

Works with

  • claude code
  • mcp

Security analysis

A96/100
  • mediumUses curl or wget to download content

Pro shows the line behind each finding and how to fix it

Scanned February 12, 2026

npx -y skills add kbanc85/claudia --skill diagnose --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Diagnose?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Diagnose
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kbanc85-diagnose/badge)](https://www.skillsdirectory.com/skills/kbanc85-diagnose)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: diagnose
description: Check memory daemon health and troubleshoot connectivity issues. Use when memory tools aren't working, at session start if something seems wrong, or when user asks about memory status.
effort-level: low
---

# Diagnose

System health check for Claudia's memory infrastructure. Run this when:
- Memory tools seem unavailable
- Session context isn't loading
- User asks "is my memory working?"
- Something feels off with persistence

## Process

### Step 1: Check MCP Tool Availability

First, verify what memory tools are available:

```
List your available tools that start with "memory."
```

**Expected tools:**
- `memory.session_context`
- `memory.remember`
- `memory.recall`
- `memory.about`
- `memory.entity`
- `memory.relate`
- `memory.file`
- `memory.batch`
- `memory.end_session`
- `memory.buffer_turn`
- `memory.reflections`
- `memory.predictions`
- `memory.consolidate`

If NO memory tools appear, the daemon isn't connected via MCP.

### Step 2: Test Memory Connection

If tools are available, try a simple operation:

```
Call memory.session_context with no arguments
```

**Possible outcomes:**
- Success with context: Memory system fully operational
- Success but empty: Working but no data yet (new install)
- Error/timeout: Daemon running but unhealthy
- Tool not found: MCP connection broken

### Step 2.5: Detect Platform

Run: `uname -s 2>/dev/null || echo Windows`

Use the appropriate command set below (macOS/Linux or Windows).

### Step 3: Check Daemon Process

**macOS/Linux:**

```bash
# Check if daemon process is running
ps aux | grep claudia_memory | grep -v grep

# Check health endpoint
curl -s http://localhost:3848/health || echo "Health endpoint not responding"

# Check recent daemon logs
tail -20 ~/.claudia/daemon-stderr.log 2>/dev/null || echo "No daemon log found"

# Check database exists and has data
ls -la ~/.claudia/memory/*.db 2>/dev/null || echo "No database found"
sqlite3 ~/.claudia/memory/claudia.db "SELECT COUNT(*) as memories FROM memories; SELECT COUNT(*) as entities FROM entities;" 2>/dev/null || echo "Cannot query database"
```

**Windows (PowerShell):**

```powershell
# Check if daemon process is running
Get-Process python* | Where-Object { $_.CommandLine -like '*claudia_memory*' } 2>$null
# Fallback if CommandLine isn't available:
tasklist /FI "IMAGENAME eq python.exe" /V 2>$null | findstr claudia

# Check health endpoint
try { (Invoke-WebRequest -Uri 'http://localhost:3848/health' -UseBasicParsing -TimeoutSec 5).Content } catch { "Health endpoint not responding" }

# Check recent daemon logs
Get-Content -Tail 20 "$env:USERPROFILE\.claudia\daemon-stderr.log" 2>$null

# Check database exists and has data
dir "$env:USERPROFILE\.claudia\memory\*.db" 2>$null
& "$env:USERPROFILE\.claudia\daemon\venv\Scripts\python.exe" -c "import sqlite3; conn = sqlite3.connect('$env:USERPROFILE\.claudia\memory\claudia.db'); print('memories:', conn.execute('SELECT COUNT(*) FROM memories').fetchone()[0]); print('entities:', conn.execute('SELECT COUNT(*) FROM entities').fetchone()[0])"

# Check Task Scheduler status
Get-ScheduledTask -TaskName 'ClaudiaMemoryDaemon' -ErrorAction SilentlyContinue | Select-Object State
```

### Step 4: Report Results

Format the diagnosis as:

```
---
**Memory System Diagnosis**

| Component | Status | Details |
|-----------|--------|---------|
| MCP Tools | ✅/❌ | [count] tools available |
| Daemon Process | ✅/❌ | [PID or "not running"] |
| Health Endpoint | ✅/❌ | [response or error] |
| Database | ✅/❌ | [path, size, record counts] |
| Session Context | ✅/❌ | [loaded or error] |

**Overall:** [Healthy / Degraded / Not Connected]

[If issues found, provide specific fix instructions]
---
```

## Common Issues and Fixes

### Issue: No memory tools available

**Cause:** MCP server not configured or not started

**Fix:**
1. Check `.mcp.json` exists and has claudia_memory configured
2. Restart Claude Code to reload MCP configuration
3. Check `~/.claudia/daemon-stderr.log` for startup errors

### Issue: Daemon not running

**Cause:** Daemon crashed or was never started

**Fix (macOS/Linux):**
```bash
# Start the daemon manually
cd ~/.claudia/daemon && source venv/bin/activate
python -m claudia_memory &

# Or reinstall
cd [claudia-install-dir] && ./memory-daemon/scripts/install.sh
```

**Fix (Windows PowerShell):**
```powershell
# Start the daemon manually
& "$env:USERPROFILE\.claudia\daemon\venv\Scripts\Activate.ps1"
python -m claudia_memory

# Or reinstall
cd [claudia-install-dir]
powershell -ExecutionPolicy Bypass -File memory-daemon\scripts\install.ps1
```

### Issue: Health endpoint not responding

**Cause:** Python 3.14 compatibility issue (fixed in v1.21.1+) or daemon crashed after startup

**Fix:**
1. Check daemon logs: `tail -50 ~/.claudia/daemon-stderr.log`
2. Look for "RuntimeError" or "event loop" errors
3. Update to latest Claudia version: `npx get-claudia .`

### Issue: Database empty or missing

**Cause:** Fresh install or database corruption

**Fix:**
1. If fresh install: Normal, database populates as you use Claudia
2. If was working before: Check for database file, may need to restore from backup

### Issue: MCP tools available but calls fail

**Cause:** Daemon process exists but is unhealthy

**Fix (macOS/Linux):**
1. Kill the old process: `pkill -f claudia_memory`
2. Restart Claude Code (this restarts the MCP server)
3. Check logs for specific errors

**Fix (Windows):**
1. Kill the old process: `taskkill /F /FI "IMAGENAME eq python.exe"` (or use Task Manager)
2. Restart Claude Code (this restarts the MCP server)
3. Check logs: `Get-Content -Tail 50 "$env:USERPROFILE\.claudia\daemon-stderr.log"`

### Issue: .mcp.json uses wrong entry point

**Detection:** Check the `args` array in `.mcp.json` for the `claudia-memory` server. If it says `claudia_memory.mcp.server` instead of `claudia_memory`, it bypasses project isolation, the health server, and background scheduling.

**Fix:** Update the args in `.mcp.json` to:
```json
"args": ["-m", "claudia_memory", "--project-dir", "${workspaceFolder}"]
```
Then restart Claude Code.

## Automatic Recovery

If the daemon needs restart and user confirms:

**macOS/Linux:**
```bash
# Kill any existing daemon
pkill -f claudia_memory 2>/dev/null

# Wait for cleanup
sleep 2

# Verify it's stopped
ps aux | grep claudia_memory | grep -v grep && echo "Still running, may need manual kill"
```

**Windows (PowerShell):**
```powershell
# Kill any existing daemon
Get-Process python* -ErrorAction SilentlyContinue | Where-Object { $_.CommandLine -like '*claudia_memory*' } | Stop-Process -Force

# Wait for cleanup
Start-Sleep -Seconds 2

# Verify it's stopped
Get-Process python* -ErrorAction SilentlyContinue | Where-Object { $_.CommandLine -like '*claudia_memory*' }
```

Then instruct user to restart Claude Code, which will spawn a fresh daemon via MCP.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…