diff --git a/docs/tools/lobster.md b/docs/tools/lobster.md new file mode 100644 index 000000000..bb3f4d130 --- /dev/null +++ b/docs/tools/lobster.md @@ -0,0 +1,109 @@ +--- +title: Lobster +description: Typed workflow runtime for Clawdbot — composable pipelines with approval gates. +--- + +# Lobster + +Lobster is a workflow shell that lets Clawdbot run multi-step tool sequences as a single, deterministic operation with explicit approval checkpoints. + +## Why + +Today, complex workflows require many back-and-forth tool calls. Each call costs tokens, and the LLM has to orchestrate every step. Lobster moves that orchestration into a typed runtime: + +- **One call instead of many**: Clawdbot calls `lobster.run(...)` once and gets a structured result. +- **Approvals built in**: Side effects (send email, post comment) halt the workflow until explicitly approved. +- **Resumable**: Halted workflows return a token; approve and resume without re-running everything. + +## Example: Email triage + +Without Lobster: +``` +User: "Check my email and draft replies" +→ clawd calls gmail.list +→ LLM summarizes +→ User: "draft replies to #2 and #5" +→ LLM drafts +→ User: "send #2" +→ clawd calls gmail.send +(repeat daily, no memory of what was triaged) +``` + +With Lobster: +``` +clawd calls: lobster.run("email.triage --limit 20") + +Returns: +{ + "status": "needs_approval", + "output": { + "summary": "5 need replies, 2 need action", + "drafts": [...] + }, + "requiresApproval": { + "prompt": "Send 2 draft replies?", + "resumeToken": "..." + } +} + +User approves → clawd calls: lobster.resume(token, approve: true) +→ Emails sent +``` + +One workflow. Deterministic. Safe. + +## Enable + +Lobster is an **optional** plugin tool. Enable it in your agent config: + +```json +{ + "agents": { + "list": [{ + "id": "main", + "tools": { + "allow": ["lobster"] + } + }] + } +} +``` + +You also need the `lobster` CLI installed locally. + +## Actions + +### `run` + +Execute a Lobster pipeline in tool mode. + +```json +{ + "action": "run", + "pipeline": "gog.gmail.search --query 'newer_than:1d' | email.triage", + "timeoutMs": 30000 +} +``` + +### `resume` + +Continue a halted workflow after approval. + +```json +{ + "action": "resume", + "token": "", + "approve": true +} +``` + +## Security + +- **Local subprocess only** — no network calls from the plugin itself. +- **No secrets** — Lobster doesn't manage OAuth; it calls clawd tools that do. +- **Sandbox-aware** — disabled when `ctx.sandboxed` is true. +- **Hardened** — `lobsterPath` must be absolute if specified; timeouts and output caps enforced. + +## Learn more + +- [Lobster repo](https://github.com/vignesh07/lobster) — runtime, commands, and workflow examples.