Skip to content
Automation
Command

/start

Start daemon mode or run one-shot prompt/trigger

BOOST
From plugin
moazbuilds-claudeclaw
1.3k10 skills10 commands
Install
> /plugin marketplace add moazbuilds/claudeclaw
> /plugin install claudeclaw@claudeclaw

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/start

Context preview

What this command does when you run it.

Start daemon mode or run one-shot prompt/trigger

Command definition

start.md
description: Start daemon mode or run one-shot prompt/trigger

Start the heartbeat daemon for this project. Follow these steps exactly:

1. **Block home-directory starts (CRITICAL, BLOCKER)**:

  • Run `pwd` and `echo "$HOME"`.
  • If `pwd` equals `$HOME`, STOP immediately.
  • Tell the user exactly:
  • "CRITICAL BLOCKER: For security reasons, close this session and start a new one from the folder you want to initialize ClaudeClaw in."
  • Do not continue with any other step until they restart from a non-home project directory.

2. **Runtime checker (Bun + Node)**:

  • Run:
     which bun
     which node
  • If `bun` is missing:
  • Tell the user Bun is required and will be auto-installed.
  • Run:
       curl -fsSL https://bun.sh/install | bash
  • Then source the shell profile to make `bun` available in the current session:
       source ~/.bashrc 2>/dev/null || source ~/.zshrc 2>/dev/null || true
  • Verify again with `which bun`. If still not found, tell the user installation failed and to install manually from https://bun.sh, then exit.
  • Tell the user Bun was auto-installed successfully.
  • If `node` is missing:
  • Tell the user Node.js is required for the OGG converter helper.
  • Ask them to install Node.js LTS and rerun start, then exit.

3. **Check existing config**: Read `.claude/claudeclaw/settings.json` (if it exists). Determine which sections are already configured:

  • **Heartbeat configured** = `heartbeat.enabled` is `true` AND `heartbeat.prompt` is non-empty
  • **Telegram configured** = `telegram.token` is non-empty
  • **Discord configured** = `discord.token` is non-empty
  • **Security configured** = `security.level` exists and is not `"moderate"` (the default), OR `security.allowedTools`/`security.disallowedTools` are non-empty

4. **Interactive setup — smart mode** (BEFORE launching the daemon):

**If ALL three sections are already configured**, show a summary of the current config and ask ONE question:

Use AskUserQuestion:

  • "Your settings are already configured. Want to change anything?" (header: "Settings", options: "Keep current settings", "Reconfigure")

If they choose "Keep current settings", skip to step 6 (first contact question). If they choose "Reconfigure", proceed to step 5 below as if nothing was configured.

**If SOME sections are configured and others are not**, show the already-configured sections as a summary, then only ask about the unconfigured sections in step 5.

**If NOTHING is configured** (fresh install), ask about all three sections in step 5.

5. **Ask setup questions**:

Use **AskUserQuestion** to ask all unconfigured sections at once (up to 3 questions in one call):

  • **Model** (always ask if `model` is empty/unset): "Which Claude model should ClaudeClaw use?" (header: "Model", options: "opus (default)", "sonnet", "haiku", "glm")
  • **If heartbeat is NOT configured**: "Enable heartbeat? Example: I can remind you to drink water every 30 minutes, or you can fully customize what runs." (header: "Heartbeat", options: "Yes" / "No")
  • **If Telegram is NOT configured**: "Configure Telegram? Recommended if you want it 24/7 live." (header: "Telegram", options: "Yes" / "No")
  • **If Discord is NOT configured**: "Configure Discord? Connect your bot to Discord servers." (header: "Discord", options: "Yes" / "No")
  • **If security is NOT configured**: "What security level for Claude?" (header: "Security", options:
  • "Moderate (Recommended)" (description: "Full access scoped to project directory")
  • "Locked" (description: "Read-only — can only search and read files, no edits, bash, or web")
  • "Strict" (description: "Can edit files but no bash or web access")
  • "Unrestricted" (description: "Full access with no directory restriction — dangerous"))

Then, based on their answers:

  • **Model**: Set `model` in settings to their choice (e.g. `"opus"`, `"sonnet"`, `"haiku"`, `"glm"`). Default is `"opus"` if they don't pick.
  • **If model is `glm`**: Ask in normal free-form text for API token and set top-level `api` to that value (optional; user can skip). Only ask this token question when the selected model is `glm`.
  • **Agentic mode**: Use AskUserQuestion to ask:
  • "Enable agentic model routing? This automatically selects models based on task type using configurable modes." (header: "Agentic", options: "Yes — default modes (Recommended)", "No — use single model")
  • If "Yes": Set `agentic.enabled` to `true` with default modes (planning→opus, implementation→sonnet). The user can customize modes later via `/config`.
  • If "No": Set `agentic.enabled` to `false`.
  • Ask whether to set a fallback model. Recommend `glm` first so fallback uses a different provider path than the primary Claude model. If yes, set `fallback.model` and optionally `fallback.api`.
  • Ask whether to enable GLM fallback (kicks in automatically when your Claude token limit is hit). The fallback model is always `glm` — no other model is supported. Use AskUserQuestion: "Enable GLM fallback? Automatically switches to GLM when your Claude limit is hit." (header: "Fallback", options: "Yes — enable GLM fallback", "Skip"). If yes, ask in normal free-form text for the GLM API token (optional, user can skip). Set `fallback.model` to `"glm"` and `fallback.api` to the token if provided.
  • **If yes to heartbeat**: Use AskUserQuestion again with one question:
  • "How often should it run in minutes?" (header: "Interval", options: "5", "15", "30 (Recommended)", "60")
  • Set `heartbeat.enabled` to `true` and `heartbeat.interval` to their answer.
  • Ask for timezone as simple UTC offset text (example: `UTC+1`, `UTC-5`, `UTC+03:30`) and set top-level `timezone`.
  • **If heartbeat is no but `timezone` is missing**: set top-level `timezone` to `UTC+0`.
  • **If yes to Telegram**: Do NOT u
Read more
Ships withmoazbuilds-claudeclaw

A lightweight, open-source OpenClaw version built into your Claude Code.

Get the whole plugin
Stats
1,324
Stars
243
Forks
Maintained
Maintenance
TypeScript
Language
MIT
License
2mo ago
Last commit
7mo ago
Created
1d ago
Added

Repo: moazbuilds/claudeclaw

Other commands on moazbuilds-claudeclaw.