{
  "title": "One-shot reminder",
  "content": "openclaw cron add --name \"Call back\" --at \"2h\" --session main --system-event \"Call back the client\" --wake now\nbash theme={null}\nopenclaw cron add \\\n  --name \"Check project\" \\\n  --every \"4h\" \\\n  --session main \\\n  --system-event \"Time for a project health check\" \\\n  --wake now\nbash theme={null}\nopenclaw cron add \\\n  --name \"Deep analysis\" \\\n  --cron \"0 6 * * 0\" \\\n  --session isolated \\\n  --message \"Weekly codebase analysis...\" \\\n  --model opus \\\n  --thinking high \\\n  --announce\n```\n\n## Cost Considerations\n\n| Mechanism       | Cost Profile                                            |\n| --------------- | ------------------------------------------------------- |\n| Heartbeat       | One turn every N minutes; scales with HEARTBEAT.md size |\n| Cron (main)     | Adds event to next heartbeat (no isolated turn)         |\n| Cron (isolated) | Full agent turn per job; can use cheaper model          |\n\n* Keep `HEARTBEAT.md` small to minimize token overhead.\n* Batch similar checks into heartbeat instead of multiple cron jobs.\n* Use `target: \"none\"` on heartbeat if you only want internal processing.\n* Use isolated cron with a cheaper model for routine tasks.\n\n* [Heartbeat](/gateway/heartbeat) - full heartbeat configuration\n* [Cron jobs](/automation/cron-jobs) - full cron CLI and API reference\n* [System](/cli/system) - system events + heartbeat controls",
  "code_samples": [
    {
      "code": "## Lobster: Deterministic workflows with approvals\n\nLobster is the workflow runtime for **multi-step tool pipelines** that need deterministic execution and explicit approvals.\nUse it when the task is more than a single agent turn, and you want a resumable workflow with human checkpoints.\n\n### When Lobster fits\n\n* **Multi-step automation**: You need a fixed pipeline of tool calls, not a one-off prompt.\n* **Approval gates**: Side effects should pause until you approve, then resume.\n* **Resumable runs**: Continue a paused workflow without re-running earlier steps.\n\n### How it pairs with heartbeat and cron\n\n* **Heartbeat/cron** decide *when* a run happens.\n* **Lobster** defines *what steps* happen once the run starts.\n\nFor scheduled workflows, use cron or heartbeat to trigger an agent turn that calls Lobster.\nFor ad-hoc workflows, call Lobster directly.\n\n### Operational notes (from the code)\n\n* Lobster runs as a **local subprocess** (`lobster` CLI) in tool mode and returns a **JSON envelope**.\n* If the tool returns `needs_approval`, you resume with a `resumeToken` and `approve` flag.\n* The tool is an **optional plugin**; enable it additively via `tools.alsoAllow: [\"lobster\"]` (recommended).\n* If you pass `lobsterPath`, it must be an **absolute path**.\n\nSee [Lobster](/tools/lobster) for full usage and examples.\n\n## Main Session vs Isolated Session\n\nBoth heartbeat and cron can interact with the main session, but differently:\n\n|         | Heartbeat                       | Cron (main)              | Cron (isolated)            |\n| ------- | ------------------------------- | ------------------------ | -------------------------- |\n| Session | Main                            | Main (via system event)  | `cron:<jobId>`             |\n| History | Shared                          | Shared                   | Fresh each run             |\n| Context | Full                            | Full                     | None (starts clean)        |\n| Model   | Main session model              | Main session model       | Can override               |\n| Output  | Delivered if not `HEARTBEAT_OK` | Heartbeat prompt + event | Announce summary (default) |\n\n### When to use main session cron\n\nUse `--session main` with `--system-event` when you want:\n\n* The reminder/event to appear in main session context\n* The agent to handle it during the next heartbeat with full context\n* No separate isolated run",
      "language": "unknown"
    },
    {
      "code": "### When to use isolated cron\n\nUse `--session isolated` when you want:\n\n* A clean slate without prior context\n* Different model or thinking settings\n* Announce summaries directly to a channel\n* History that doesn't clutter main session",
      "language": "unknown"
    }
  ],
  "headings": [
    {
      "level": "h2",
      "text": "Lobster: Deterministic workflows with approvals",
      "id": "lobster:-deterministic-workflows-with-approvals"
    },
    {
      "level": "h3",
      "text": "When Lobster fits",
      "id": "when-lobster-fits"
    },
    {
      "level": "h3",
      "text": "How it pairs with heartbeat and cron",
      "id": "how-it-pairs-with-heartbeat-and-cron"
    },
    {
      "level": "h3",
      "text": "Operational notes (from the code)",
      "id": "operational-notes-(from-the-code)"
    },
    {
      "level": "h2",
      "text": "Main Session vs Isolated Session",
      "id": "main-session-vs-isolated-session"
    },
    {
      "level": "h3",
      "text": "When to use main session cron",
      "id": "when-to-use-main-session-cron"
    },
    {
      "level": "h3",
      "text": "When to use isolated cron",
      "id": "when-to-use-isolated-cron"
    },
    {
      "level": "h2",
      "text": "Cost Considerations",
      "id": "cost-considerations"
    },
    {
      "level": "h2",
      "text": "Related",
      "id": "related"
    }
  ],
  "url": "llms-txt#one-shot-reminder",
  "links": []
}