โ† Back to Clawdbot Tools
Clawdbot Tools by @kesslerio

lobster-jobs

Transform OpenClaw cron jobs into Lobster workflows

0
Source Code

lobster-jobs

Transform OpenClaw cron jobs into Lobster workflows with approval gates and resumable execution.

Purpose

OpenClaw cron jobs are either:

  • systemEvent: Simple shell commands (fully deterministic)
  • agentTurn: Natural language instructions spawning AI agents (flexible but token-heavy)

Lobster workflows offer:

  • Deterministic execution: No LLM re-planning each step
  • Approval gates: Hard stops requiring explicit user approval
  • Stateful execution: Remembers cursors/checkpoints
  • Resumability: Pauses and resumes exactly where left off

This skill helps analyze existing cron jobs and transform them into Lobster workflows.

Commands

Tier 1 (Available Now)

lobster-jobs list

List all cron jobs with their Lobster readiness score.

Output categories:

  • โœ… Fully Migratable: Simple shell commands (systemEvent)
  • ๐ŸŸก Partial Migration: Mixed deterministic + LLM steps (agentTurn)
  • โŒ Not Migratable: Heavy LLM reasoning required

lobster-jobs inspect <job-id>

Inspect a specific cron job with detailed migration assessment.

Shows:

  • Job metadata (schedule, target, payload type)
  • Lobster migration status and reason
  • Payload preview
  • Migration recommendation

lobster-jobs validate <workflow-file>

Validate a Lobster workflow YAML file against schema.

Checks:

  • Required fields (name, steps)
  • Step structure (id, command)
  • Approval gate syntax
  • Condition syntax

Tier 2 (Available Now)

lobster-jobs convert <job-id>

Transform a cron job into a Lobster workflow.

lobster-jobs convert 17fe68ca
lobster-jobs convert 17fe68ca --output-dir ~/workflows
lobster-jobs convert 17fe68ca --force  # Overwrite existing

Generates:

  • .lobster workflow file in ~/.lobster/workflows/
  • Extracts commands from systemEvent or agentTurn payloads
  • Auto-validates generated workflow

Options:

  • --output-dir, -o: Custom output directory
  • --force, -f: Overwrite existing workflow
  • --keep-on-error: Keep file even if validation fails

lobster-jobs new <name>

Create a new Lobster workflow from scratch using templates.

lobster-jobs new my-workflow
lobster-jobs new my-workflow --template with-approval
lobster-jobs new my-workflow --template stateful

Templates:

  • simple-shell: Basic command execution
  • with-approval: Approval gate workflow
  • stateful: Workflow with cursor/state tracking

Installation

# Add to PATH
export PATH="$PATH:/home/art/niemand/skills/lobster-jobs/bin"

# Or create symlink
ln -s /home/art/niemand/skills/lobster-jobs/bin/lobster-jobs ~/.local/bin/

Quick Start

# See all your cron jobs and their migration status
lobster-jobs list

# Inspect a specific job
lobster-jobs inspect 17fe68ca

# Convert a job to Lobster workflow
lobster-jobs convert 17fe68ca

# Create a new workflow from template
lobster-jobs new my-workflow --template with-approval

# Validate a workflow file
lobster-jobs validate ~/.lobster/workflows/my-workflow.lobster

Workflow File Format

name: my-workflow
description: Optional description

steps:
  - id: fetch_data
    command: some-cli fetch --json
    
  - id: process
    command: some-cli process
    stdin: $fetch_data.stdout
    
  - id: approve_send
    command: approve --prompt "Send notification?"
    approval: required
    
  - id: send
    command: message.send --channel telegram --text "Done!"
    condition: $approve_send.approved

Migration Strategy

Wrapper Approach (Recommended)

Keep cron as scheduler, change payload to call Lobster:

{
  "payload": {
    "kind": "systemEvent",
    "text": "lobster run ~/.lobster/workflows/my-workflow.lobster"
  }
}

Benefits:

  • Rollback is trivial (revert payload)
  • Incremental migration
  • Cron scheduling already works

Handling LLM Judgment

For jobs needing both deterministic steps and LLM reasoning:

steps:
  - id: gather
    command: gh issue list --json title,body
    
  - id: triage
    command: clawd.invoke
    prompt: "Classify these issues by urgency"
    
  - id: notify
    command: telegram-send

The workflow is deterministic; the LLM is a black-box step.

Edge Cases

Issue Handling
Idempotency Workflows track step completion; restart-safe
Approval timeouts Configurable timeout with default action
Secret handling Environment variables or 1Password refs
Partial failures convert validates before writing

References