{"id":48760965,"url":"https://github.com/crisandrews/clawcode","last_synced_at":"2026-04-16T09:01:04.186Z","repository":{"id":350988927,"uuid":"1206364309","full_name":"crisandrews/ClawCode","owner":"crisandrews","description":"Persistent agents for Claude Code — personality, bilingual memory (SQLite+FTS5 / QMD), nightly dreaming, voice, and messaging plugins. One-way import from OpenClaw.","archived":false,"fork":false,"pushed_at":"2026-04-15T03:38:50.000Z","size":366,"stargazers_count":41,"open_issues_count":10,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-15T08:03:04.544Z","etag":null,"topics":["ai-agent","autonomous-agent","claude","claude-code","claude-code-plugin","dreaming","mcp","memory","openclaw","openclaw-compatible","personality","stt","tts","voice","webhooks","whatsapp"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crisandrews.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-09T20:57:18.000Z","updated_at":"2026-04-15T05:17:16.000Z","dependencies_parsed_at":"2026-04-14T07:00:29.948Z","dependency_job_id":"6170a6a6-6553-492d-b7e8-966445edeb1c","html_url":"https://github.com/crisandrews/ClawCode","commit_stats":null,"previous_names":["crisandrews/clawcode"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/crisandrews/ClawCode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisandrews%2FClawCode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisandrews%2FClawCode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisandrews%2FClawCode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisandrews%2FClawCode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crisandrews","download_url":"https://codeload.github.com/crisandrews/ClawCode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisandrews%2FClawCode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31878830,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T07:36:03.521Z","status":"ssl_error","status_checked_at":"2026-04-16T07:35:53.576Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","autonomous-agent","claude","claude-code","claude-code-plugin","dreaming","mcp","memory","openclaw","openclaw-compatible","personality","stt","tts","voice","webhooks","whatsapp"],"created_at":"2026-04-13T06:30:02.715Z","updated_at":"2026-04-16T09:01:04.076Z","avatar_url":"https://github.com/crisandrews.png","language":"TypeScript","readme":"\u003ch1 align=\"center\"\u003e🛸 ClawCode\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003ePersistent agents for Claude Code — memory, dreaming, and personality.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/crisandrews/ClawCode/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/crisandrews/ClawCode?include_prereleases\u0026style=for-the-badge\u0026color=FF6B35\" alt=\"Release\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/crisandrews/ClawCode/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/crisandrews/ClawCode?style=for-the-badge\u0026color=blue\" alt=\"Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge\" alt=\"MIT License\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/node-%E2%89%A5%2018-blue?style=for-the-badge\u0026logo=node.js\u0026logoColor=white\" alt=\"Node ≥ 18\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-macOS%20%7C%20Linux-blue?style=for-the-badge\" alt=\"Platform\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#quick-setup\"\u003eQuick Setup\u003c/a\u003e ·\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e ·\n  \u003ca href=\"#skills\"\u003eSkills\u003c/a\u003e ·\n  \u003ca href=\"#going-further\"\u003eGoing further\u003c/a\u003e ·\n  \u003ca href=\"#troubleshooting\"\u003eTroubleshooting\u003c/a\u003e ·\n  \u003ca href=\"https://github.com/crisandrews/ClawCode/issues\"\u003eIssues\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nClaude Code is stateless by default. Every session starts from zero — no memory of who you are, what you talked about, or how the agent should behave.\n\nClawCode turns Claude Code into a stateful autonomous agent. It gives Claude a persistent identity, searchable memory with bilingual recall, nightly dreaming that consolidates important memories, and a terse conversational style. The agent remembers your dog's name, warns you about allergies before suggesting food, and responds in 1–2 lines instead of paragraphs.\n\n## [Highlights](#highlights)\n\n- **[Persistent identity](#how-it-works)** — name, personality, emoji. The agent wakes up as itself on every session via lifecycle hooks that inject SOUL.md + IDENTITY.md at startup.\n- **[Active memory](#memory)** — bilingual recall (ES ↔ EN) at the start of every turn. Ask \"cómo se llama mi perro?\" and it finds \"Cookie\" from English notes. Warns about allergies before suggesting food.\n- **[Lifecycle hooks](#hooks)** — SessionStart injects identity + auto-creates crons. PreCompact flushes memory before context compression. Stop writes session summaries. SessionEnd tracks dream events.\n- **[Dreaming](#dreaming)** — nightly 3-phase consolidation (Light → REM → Deep) with 6 weighted signals. Promotes important memories to long-term storage.\n- **[Language adaptation](#how-it-works)** — detects the user's language and responds in kind. Switch mid-conversation and the agent switches too. Commands, status cards, and errors all adapt.\n- **[Voice](#voice)** — TTS via sag, ElevenLabs, OpenAI, macOS `say`. STT via local Whisper or OpenAI API.\n- **[WebChat](#webchat)** — browser chat UI with SSE real-time delivery. Conversation logs in JSONL + Markdown (same format as WhatsApp).\n- **[Messaging channels](#messaging-channels)** — WhatsApp, Telegram, Discord, iMessage, Slack via MCP plugins. No conflicts.\n- **[Slash commands everywhere](#messaging-channels)** — `/status`, `/help`, `/whoami`, `/new`, `/compact` work from CLI, WhatsApp, Telegram, Discord — same commands, formatting adapts per platform.\n- **[Smart import](#importing-agents)** — 3-tier classifier (GREEN/YELLOW/RED) for skills and crons. Step-by-step wizard with clickable options. Skipped items go to a backlog with recovery notes.\n- **[Community skills](#community-skills)** — install from GitHub with `owner/repo@branch#subdir`. OS + dependency validation.\n- **[Always-on](#always-on-service)** — launchd / systemd service. Enables dreaming + heartbeat 24/7.\n- **[Webhooks](#webhooks)** — external systems (Cloudflare Workers, GitHub Actions, CI/CD, IoT) can POST events to the agent via HTTP. The agent processes them like any other message.\n- **[Doctor](#diagnostics)** — 9 health checks (config, identity, memory, SQLite, QMD, bootstrap, HTTP, messaging, dreaming). `--fix` auto-repairs safe issues.\n- **[Terse by design](#how-it-works)** — the agent acts, doesn't narrate. Confirmations in 1-2 lines, no preambles, no recaps.\n\n## [Prerequisites](#prerequisites)\n\n- [Node.js](https://nodejs.org/) v18+\n\n## [Quick Setup](#quick-setup)\n\n**1. Create a folder for your agent.**\n\nEach agent lives in its own folder. Create one and open Claude Code there:\n\n```sh\nmkdir ~/my-agent \u0026\u0026 cd ~/my-agent\nclaude\n```\n\n**2. Install the plugin.**\n\nInside Claude Code, add the marketplace:\n\n```\n/plugin marketplace add crisandrews/ClawCode\n```\n\nThen install the plugin:\n\n```\n/plugin install agent@clawcode\n```\n\nWhen prompted for scope, select **\"Install for you, in this repo only (local scope)\"** — this keeps the agent isolated to this folder.\n\nThen reload plugins so the skills become available:\n\n```\n/reload-plugins\n```\n\n**3. Create your agent:**\n\n```\n/agent:create\n```\n\nThis starts the bootstrap ritual — a casual conversation where the agent discovers its name, personality, and emoji. You can also import an existing agent instead:\n\n```\n/agent:import\n```\n\n**4. Reload to apply the personality:**\n\n```\n/mcp\n```\n\nThe agent now wakes up with its identity on every session.\n\n## [How it works](#how-it-works)\n\nClawCode injects personality and behavior at four points in the session lifecycle:\n\n| Hook | When | What happens |\n| --- | --- | --- |\n| **SessionStart** | Session opens | Reads SOUL.md + IDENTITY.md + USER.md and injects them as context. Checks if heartbeat + dreaming crons exist — creates them if missing. |\n| **PreCompact** | Context getting full | Reminds agent to save important facts to `memory/YYYY-MM-DD.md` before compression erases them. |\n| **Stop** | Session closing | Reminds agent to write a session summary (what was discussed, decisions, open items). |\n| **SessionEnd** | Session closed | Logs a `session.end` event for the dreaming system. |\n\nThis means:\n- **Every session starts with personality** — the agent never says \"I'm Claude.\" It knows its name, vibe, and your info.\n- **Memory survives compaction** — PreCompact flushes facts before they're lost.\n- **Sessions are summarized** — the next session knows what happened in the last one.\n- **Dreaming tracks sessions** — knows when you were active, when you paused.\n\nThe agent also **detects your language** from each message and responds in kind. Switch from Spanish to English mid-conversation — the agent switches too. Status cards, error messages, and commands all adapt.\n\nFull details: [`docs/hooks.md`](docs/hooks.md)\n\n## [Features](#features)\n\n### [Memory](#memory)\n\nThe agent writes to `memory/YYYY-MM-DD.md` during sessions and searches it automatically at the start of every turn — no need to say \"search memory.\" Bilingual (Spanish ↔ English, 40+ synonym pairs), date-aware (\"hoy\" resolves to today's date), and safety-critical (warns about allergies before suggesting food). Trivial messages (greetings, \"ok\", slash commands) skip the search — no wasted context.\n\nTwo backends: **builtin** (SQLite + FTS5, works out of the box) and **QMD** (local embeddings for semantic search — install with `bun install -g qmd`).\n\nFull details: [`docs/memory.md`](docs/memory.md) · [`docs/memory-context.md`](docs/memory-context.md) · [`docs/qmd.md`](docs/qmd.md)\n\n### [Dreaming](#dreaming)\n\nNightly cron (3 AM) runs 3-phase memory consolidation:\n\n- **Light** — ingests recall signals from the day, deduplicates candidates\n- **REM** — extracts recurring themes, identifies multi-day patterns, writes reflections to `DREAMS.md`\n- **Deep** — ranks candidates with 6 weighted signals (relevance 0.30, frequency 0.24, query diversity 0.15, recency 0.15, consolidation 0.10, conceptual richness 0.06) and promotes winners to `memory/MEMORY.md`\n\nRun manually: `dream(action='run')` or preview with `dream(action='dry-run')`.\n\nFull details: [`docs/dreaming.md`](docs/dreaming.md)\n\n### [Voice](#voice)\n\nTTS via sag, ElevenLabs, OpenAI, or macOS `say`. STT via local Whisper or OpenAI Whisper API. The agent auto-selects the best available backend. Enable with `agent_config(action='set', key='voice.enabled', value='true')`.\n\nFull details: [`docs/voice.md`](docs/voice.md)\n\n### [WebChat](#webchat)\n\nBrowser-based chat UI with real-time SSE delivery. Enable the HTTP bridge, open `http://localhost:18790`. Dark/light mode, conversation logging in JSONL + Markdown (same format as WhatsApp plugin).\n\n```\nagent_config(action='set', key='http.enabled', value='true')\n/mcp\n```\n\nFull details: [`docs/webchat.md`](docs/webchat.md) · [`docs/http-bridge.md`](docs/http-bridge.md)\n\n### [Messaging channels](#messaging-channels)\n\nReach your agent from WhatsApp, Telegram, Discord, iMessage, or Slack. Each messaging plugin is an independent MCP server — no conflicts with ClawCode.\n\n```\n/agent:messaging\n```\n\nSlash commands work from any channel — `/status`, `/help`, `/whoami`, `/new`, `/compact` all respond whether the user is in the CLI terminal or chatting via WhatsApp. Formatting adapts automatically (`*bold*` for WhatsApp, `**bold**` for Telegram, standard markdown for CLI).\n\nFull details: [`docs/channels.md`](docs/channels.md)\n\n### [Importing agents](#importing-agents)\n\n`/agent:import` brings an existing agent into Claude Code with a step-by-step wizard (clickable options, one question at a time):\n\n1. **Bootstrap files** — copies SOUL.md, IDENTITY.md, USER.md, AGENTS.md, TOOLS.md, HEARTBEAT.md\n2. **Memory** — imports MEMORY.md + recent daily logs (credentials are never copied)\n3. **Memory backend** — asks: QMD (semantic search) or builtin (SQLite + FTS5)?\n4. **Skills** — classifies each skill as GREEN (portable), YELLOW (needs adaptation), or RED (incompatible). You choose: all, specific ones, or skip.\n5. **Crons** — same 3-tier classification for scheduled tasks. Prompts are adapted for Claude Code tools.\n6. **Messaging** — offers WhatsApp, Telegram, Discord, iMessage setup.\n\nFiles are copied **clean** — no annotations, no comments. Adaptation details go to `IMPORT_BACKLOG.md` so the user can revisit skipped items later. The import event is logged to memory so the agent remembers what was imported.\n\n### [Webhooks](#webhooks)\n\nExternal systems can send events to the agent via `POST /v1/webhook` (requires HTTP bridge enabled). The agent queues them and processes on the next turn.\n\nUse cases:\n- **[Email catch-all](docs/webhooks.md#cloudflare-email-worker--real-time-email-catch-all)** — Cloudflare Email Worker forwards every incoming email to the agent in real-time\n- **[Gmail push](docs/webhooks.md#gmail--real-time-push-notifications)** — Gmail notifies the agent via Pub/Sub when new emails arrive\n- **[CI/CD](docs/webhooks.md#cicd-github-actions)** — GitHub Actions sends build results → agent summarizes and notifies via WhatsApp\n- **[Scheduled tasks](docs/webhooks.md#cloudflare-worker--scheduled-tasks)** — Cloudflare Workers trigger agent actions on a cron schedule\n- **Monitoring** — uptime checker sends alert → agent investigates and reports\n- **IoT** — sensor data arrives → agent logs to memory and acts on thresholds\n\n```sh\ncurl -X POST http://localhost:18790/v1/webhook \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer your-token\" \\\n  -d '{\"event\": \"deploy\", \"status\": \"success\", \"repo\": \"my-app\"}'\n```\n\n**Security:** when the bridge is exposed to the network (`host: \"0.0.0.0\"`), a token is **required** — the bridge refuses to start without one.\n\nQueue holds up to 1000 events. Drain with `GET /v1/webhooks` or the `chat_inbox_read` MCP tool.\n\nFull details: [`docs/http-bridge.md`](docs/http-bridge.md)\n\n### [Diagnostics](#diagnostics)\n\n`/agent:doctor` runs 11 health checks: config validity, identity files, memory directory, SQLite integrity, QMD availability, bootstrap state, HTTP bridge, messaging plugins, dreaming, cron registry, jq availability. Returns a ✅/⚠️/❌ card. Use `--fix` to auto-repair safe issues (create missing `memory/`, reindex SQLite, remove stale `BOOTSTRAP.md`).\n\nFull details: [`docs/doctor.md`](docs/doctor.md)\n\n### [Cron persistence](#cron-persistence)\n\nReminders (heartbeat, dreaming, imports, and ad-hoc \"remind me in 2h\") survive session closes. ClawCode maintains a registry at `memory/crons.json` and reconciles it against the live harness on every SessionStart: anything missing gets recreated, anything live-but-unknown gets adopted. PostToolUse captures ad-hoc `CronCreate`/`CronDelete` automatically — you don't need a special command for \"remind me\".\n\nManage reminders through `/agent:crons` (aliases `/agent:reminders`, `list reminders`, `recordatorios`):\n\n```\n/agent:crons list                       # ✅⚠️⏸ status table\n/agent:crons add \"0 9 * * *\" \"email\"    # add a reminder\n/agent:crons delete 3                   # remove with AskUserQuestion confirm\n/agent:crons pause heartbeat-default    # pause without deleting\n/agent:crons reconcile                  # force sync\n/agent:crons import                     # bring OpenClaw crons into the registry\n```\n\nFull details: [`docs/crons.md`](docs/crons.md)\n\n## [Skills](#skills)\n\n| Skill | Description |\n| --- | --- |\n| `/agent:create` | Create a new agent with bootstrap ritual |\n| `/agent:import [id]` | Import an existing agent (personality + memory + skills + crons) |\n| `/agent:doctor [--fix]` | Diagnose agent health. `--fix` applies safe auto-repairs |\n| `/agent:settings` | View/modify agent config (guided) |\n| `/agent:skill install\\|list\\|remove` | Install community skills from GitHub |\n| `/agent:channels` | Messaging channel status and launch command |\n| `/agent:service install\\|status\\|uninstall\\|logs` | Always-on background service |\n| `/agent:voice status\\|setup` | TTS / STT backends |\n| `/agent:messaging` | Set up WhatsApp, Telegram, Discord, iMessage, Slack |\n| `/agent:crons` / `/agent:reminders` | Manage reminders: list, add, delete, pause, reconcile, import |\n| `/agent:heartbeat` | Memory consolidation and periodic checks |\n| `/agent:status` | Agent status dashboard |\n| `/agent:usage` | Resource usage |\n| `/agent:new` | Save session and prepare for `/clear` |\n| `/agent:compact` | Save context before compression |\n| `/whoami` | Sender info and agent identity |\n| `/help` | List all available commands (dynamic) |\n\n## [Going further](#going-further)\n\n### [Community skills](#community-skills)\n\nInstall skills from GitHub:\n\n```\n/agent:skill install alice/pomodoro\n/agent:skill install alice/skills@main#weather\n/agent:skill list\n/agent:skill remove pomodoro\n```\n\nFull details: [`docs/skill-manager.md`](docs/skill-manager.md)\n\n### [Always-on service](#always-on-service)\n\nRun the agent as a background service (launchd on macOS, systemd on Linux):\n\n```\n/agent:service install\n/agent:service status\n/agent:service logs\n```\n\nFull details: [`docs/service.md`](docs/service.md)\n\n### [Configuration](#configuration)\n\nAll settings in `agent-config.json`. Edit directly or use `agent_config`:\n\n```\nagent_config(action='get')\nagent_config(action='set', key='memory.backend', value='qmd')\n```\n\nNon-critical settings apply live. Critical settings need `/mcp` — the agent tells you which.\n\nFull details: [`docs/config-reload.md`](docs/config-reload.md)\n\n## [Updating, uninstalling, and cache](#updating-uninstalling-and-cache)\n\n**Update to the latest version:**\n\n```\n/plugin marketplace update crisandrews/ClawCode\n/plugin update agent@clawcode\n/reload-plugins\n```\n\nIf `/plugin update` says \"already at latest version\" but you know there's a new one, use the manual method: type `/plugin`, find `agent@clawcode` in the list, press Enter, and select **Update**.\n\nYour personality, memory, skills, and config are preserved — only the plugin code updates. No data loss.\n\n**Uninstall:**\n\n```\n/plugin uninstall agent@clawcode\n```\n\nYour agent files (SOUL.md, IDENTITY.md, memory/, skills/) stay in the folder — they're yours. Only the plugin code is removed.\n\n**Clear cache (if reinstall fails or behaves unexpectedly):**\n\nClose Claude, then in terminal:\n\n```sh\nrm -rf ~/.claude/plugins/cache/clawcode\n```\n\nReopen Claude and install again.\n\n### [Multiple agents](#multiple-agents)\n\nEach agent is its own folder with its own personality, memory, and config:\n\n```\n~/agent-work/      ← Agent #1\n~/agent-personal/  ← Agent #2\n```\n\nInstall the plugin in each folder with local scope. Switch: `cd ~/other-agent \u0026\u0026 claude`.\n\n## [Personality files](#personality-files)\n\nEvery agent has these files in its root. They're injected as context at session start via the SessionStart hook.\n\n| File | What it defines |\n| --- | --- |\n| `SOUL.md` | Core truths, boundaries, philosophy — the agent's deepest identity |\n| `IDENTITY.md` | Name, emoji, creature type, vibe, birth date |\n| `USER.md` | Your info: name, timezone, language, preferences |\n| `AGENTS.md` | Operational rules, safety boundaries, local skill triggers |\n| `TOOLS.md` | Platform-specific formatting (WhatsApp uses `*bold*`, Telegram uses `**bold**`) |\n| `HEARTBEAT.md` | What to check every 30 min (review daily logs, consolidate memory) |\n| `BOOTSTRAP.md` | First-run ritual (deleted after onboarding) |\n\nThe agent never says \"I'm Claude\" — it uses its name from IDENTITY.md. Even when asked directly \"are you Claude?\", it answers: \"I'm [name] — built on Claude, but with my own memory, personality, and name.\"\n\n## [Session \u0026 data](#session--data)\n\n```\n~/my-agent/\n├── SOUL.md, IDENTITY.md, USER.md     # Agent personality\n├── AGENTS.md, TOOLS.md, HEARTBEAT.md # Behavioral rules\n├── agent-config.json                 # Settings\n├── memory/\n│   ├── MEMORY.md                     # Long-term curated memory\n│   ├── YYYY-MM-DD.md                 # Daily logs (append-only)\n│   ├── .memory.sqlite                # Search index (auto-generated)\n│   └── .dreams/                      # Dream tracking data\n├── .webchat/logs/conversations/      # WebChat logs (JSONL + MD)\n├── skills/                           # Installed + imported skills\n└── IMPORT_BACKLOG.md                 # Skipped import items (if any)\n```\n\n**Conversation logs** are stored in two formats per channel:\n- **JSONL** — one JSON object per line, ideal for programmatic access and memory indexing\n- **Markdown** — human-readable chat transcript\n\n## [Troubleshooting](#troubleshooting)\n\nRun `/agent:doctor` first — it checks everything in one shot. Add `--fix` to auto-repair safe issues.\n\n- **\"Failed to reconnect to plugin:agent:clawcode\"** — Dependencies didn't install. Check Node.js v18+ (`node --version`). Then try manually: close Claude, run `cd ~/.claude/plugins/cache/clawcode/agent/*/  \u0026\u0026 npm install`, reopen Claude.\n- **Agent has no personality** — Run `/mcp` to reload. The SessionStart hook injects identity from SOUL.md + IDENTITY.md.\n- **Memory search returns nothing** — Index builds on first search. For QMD: `agent_config(action='set', key='memory.backend', value='qmd')`.\n- **Agent doesn't remember things** — The active memory reflex uses bilingual synonyms but not everything. Try different keywords.\n- **Config change didn't take effect** — Non-critical settings apply live. Critical ones need `/mcp`. The agent tells you which.\n- **Messaging channels** — Run `/agent:channels status` for installed/authenticated/active status.\n- **Crons don't persist across restarts** — Known limitation: `durable: true` is currently session-only in Claude Code. Crons are recreated automatically at each session start via the SessionStart hook (default heartbeat + dreaming). For 24/7, use `/agent:service install`.\n\n## [Important](#important)\n\n- **Crons only run while Claude Code is open** — for 24/7, use `/agent:service install`.\n- **WebChat + WhatsApp logs** are indexable via `memory.extraPaths` in config.\n- **Each agent folder is fully self-contained** — portable, backupable, deletable.\n\n## [Further reading](#further-reading)\n\nPer-feature documentation in [`docs/`](docs/INDEX.md).\n\n## [Disclaimer](#disclaimer)\n\nClawCode is an independent, open-source project. Claude is a trademark of Anthropic, PBC. ClawCode is not affiliated with or endorsed by Anthropic.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrisandrews%2Fclawcode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrisandrews%2Fclawcode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrisandrews%2Fclawcode/lists"}