From agent
Wraps Claude Code as a daemon (launchd/systemd) to keep running after terminal closes. Required for HTTP bridge, webhooks, and scheduled tasks to run 24/7.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agent:service install|status|uninstall|logsinstall|status|uninstall|logsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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 |
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."service_plan({ action: "install", claudeBin: <path> })error (unsupported OS), print the error and stop.~/.claude/settings.json (prevents the most common install hang — see docs/service.md "Heads-up" note):
Read(~/.claude/settings.json). If it doesn't exist or is empty, treat as {}.skipDangerousModePermissionPrompt is already true, skip to the next sub-step.~/.claude/settings.json is missing \"skipDangerousModePermissionPrompt\": true. Without it, the service will show a 'Bypass Permissions — Do you accept?' dialog at startup that no daemon (launchd / systemd) can answer, and the install will appear to succeed but the service will hang silently. Add it now? [y/N]"jq via Bash (preserves any other keys, atomic write):
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."no, abort with a neutral acknowledgement and do not write any service files. On yes, proceed and let the user deal with it.plan.extraFiles is present, for each entry: ensure the parent dir exists (Bash(mkdir -p <dirname>)), then Write(file.path, file.content), then Bash(chmod <octal> <file.path>) using file.mode (default 0o644 when omitted). These are auxiliary scripts the unit file needs to exist before start — e.g. the resume-on-restart wrapper.Write(filePath, fileContent) — the plan tells you the pathplan.commands in order with Bash, printing the label before eachuninstall to clean up)<plan.label>. Log: <plan.logPath>. Run /agent:service status to verify."service_plan({ action: "status" })plan.commands with Bashservice_plan({ action: "uninstall" })<plan.label> service? [y/N]"plan.commandsservice_plan({ action: "logs" })tail command and print output directly./tmp/clawcode-<slug>.log directly" instead.launchctl or systemctl commands that aren't in the plan returned by service_plan — the tool is the source of truth./agent:service install with the updated flags (future: expose an extraArgs UX).docs/service.md — full doc, risks, channel-flag customizationlib/service-generator.ts — pure generatorsdocs/INDEX.mdnpx claudepluginhub crisandrews/clawcode --plugin agentPerforms first-time setup of a ClaudeClaw instance: installs dependencies, authenticates messaging channels, registers the main channel, and starts background services.
Builds persistent multi-agent operating systems on Claude Code with kernel architecture, specialist agents, slash commands, file-based memory, and scheduled automation.
Maintains, debugs, and deploys autorun hooks for Claude Code and Gemini CLI. Use for fixing hooks, debugging errors, updating versions, zombie states, invisible failures, and log diagnostics.