about
Show the plugin source — name, version, and repo URL. Works from CLI or messaging. Triggers on /about, /version, /agent:about, /agent:version, "qué versión",…
Run the agent as an always-on background service (launchd on macOS, systemd on Linux). Triggers on /agent:service, /agent:service install, /agent:service status, /agent:service uninstall, /agent:service logs, "always-on", "background service", "correr 24/7", "run as daemon",
$ npx -y skills add crisandrews/ClawCode --skill service --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/serviceContext preview
The summary Claude sees to decide when to auto-load this skill.
Run the agent as an always-on background service (launchd on macOS, systemd on Linux). Triggers on /agent:service, /agent:service install, /agent:service status, /agent:service uninstall, /agent:service logs, "always-on", "background service", "correr 24/7", "run as daemon",
name: service description: Run the agent as an always-on background service (launchd on macOS, systemd on Linux). Triggers on /agent:service, /agent:service install, /agent:service status, /agent:service uninstall, /agent:service logs, "always-on", "background service", "correr 24/7", "run as daemon", "launchd", "systemd". user-invocable: true argument-hint: install|status|uninstall|logs
Wrap Claude Code (with ClawCode) in the OS's service manager so the agent keeps running after the terminal closes. This is what makes the HTTP bridge, WebChat, webhooks, and crons work 24/7.
This is an OPTIONAL feature. See `docs/service.md` for the full reference, risks, and how to add messaging-channel flags.
Installing the service runs Claude Code with **`--dangerously-skip-permissions`** in the background. That flag:
This is an **irrevocable trust decision for this workspace**. Only run `/agent:service install` if you understand that.
**Always prompt the user to confirm before installing.** Quote the flag by name in the confirmation. If the user hesitates or asks questions, stop and explain.
Parse the action and call `service_plan` with it.
| User says | Action argument | |---|---| | `/agent:service install` | `install` | | `/agent:service status` (or no arg) | `status` | | `/agent:service uninstall` | `uninstall` | | `/agent:service logs` | `logs` |
1. Find the `claude` binary: `Bash(which claude)`. Trim output. If empty, abort with: *"Can't find `claude` in PATH. Install Claude Code or point me at it manually."* 2. Inspect the existing service launcher (if any) and preserve its exact channel, session and other arguments. Call `channels_detect` as supporting evidence; do not replace an existing launcher with a guessed command. If Live is configured, run `live_setup_status` and follow `/agent:live` for any setup changes first. Call `service_plan({ action: "install", claudeBin: <path>, extraArgs: <existing arguments> })`. The plan adds ClawCode's Live channel when opted in and the wrapper supplies the managed web environment; it does not add or authorize WhatsApp or permission flags on behalf of the operator. 3. If the plan has `error` (unsupported OS), print the error and stop. 4. **Show the user the warning** (see Safety section). Ask explicitly: *"This will install a background service that runs with --dangerously-skip-permissions. Confirm? [y/N]"* 5. If the user says no, stop with a neutral acknowledgement. 6. If the user confirms:
`Bash: jq '. + {"skipDangerousModePermissionPrompt": true}' ~/.claude/settings.json > ~/.claude/settings.json.tmp && mv ~/.claude/settings.json.tmp ~/.claude/settings.json` (If the file did not exist, first run `Bash: echo '{}' > ~/.claude/settings.json` so `jq` has something to merge into.) Confirm with one line: *"Added skipDangerousModePermissionPrompt: true to ~/.claude/settings.json."*
7. Final line: *"Service installed. Label: `<plan.label>`. Log: `<plan.logPath>`. Run `/agent:service status` to verify."*
1. Call `service_plan({ action: "status" })` 2. Run each command from `plan.commands` with `Bash` 3. Summarize in one line: "Active" / "Not loaded" / "Unknown" based on the command output
1. Call `service_plan({ action: "uninstall" })` 2. Ask the user: *"Remove the `<plan.label>` service? [y/N]"* 3. On confirmation, run each command from `plan.commands` 4. Report: *"Service removed."*
1. Call `service_plan({ action: "logs" })` 2. Run the single `tail` command and print output directly.
Persistent agents for Claude Code as a plugin, not a harness. Memory, personality, messaging across WhatsApp, Telegram, and Discord, plus a service mode for 24/7 runs. Imports from OpenClaw.
Show the plugin source — name, version, and repo URL. Works from CLI or messaging. Triggers on /about, /version, /agent:about, /agent:version, "qué versión",…
Show messaging channel status (WhatsApp, Telegram, Discord, iMessage, Slack, Fakechat) and the launch command to load them. Triggers on /agent:channels,…
Flush important session context to daily log (manual memory flush). Does NOT invoke native /compact. Triggers on /compact, /agent:compact, /flush, "guarda…
Create a new agent in the current directory with personality files and bootstrap ritual. Triggers on /agent:create, "crear agente", "nuevo agente", "new…
Manage scheduled reminders (crons) — list, add, delete, pause, resume, reconcile, or import from OpenClaw. Triggers on /agent:crons, /agent:reminders; listing…
Run diagnostic checks on the agent workspace. Triggers on /agent:doctor, "diagnóstico", "diagnostico", "doctor", "health check", "agent health", "checkup",…