Skip to content

jdrhyne/lobster-workflows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🦞 Lobster Workflows

═══════════════════════════════════════════════════════════════════════════════════════
β–ˆβ–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–ˆ
β–ˆ                                                                                       β–ˆ
β–ˆ   β–ˆβ–ˆβ•—β–‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘                           β–ˆ
β–ˆ   β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•β•šβ•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—                           β–ˆ
β–ˆ   β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•¦β•β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•                           β–ˆ
β–ˆ   β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–‘β•šβ•β•β•β–ˆβ–ˆβ•—β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–ˆβ–ˆβ•”β•β•β•β–‘β–‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—                           β–ˆ
β–ˆ   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•¦β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘                           β–ˆ
β–ˆ   β•šβ•β•β•β•β•β•β•β–‘β•šβ•β•β•β•β•β–‘β•šβ•β•β•β•β•β•β–‘β•šβ•β•β•β•β•β•β–‘β–‘β–‘β–‘β•šβ•β•β–‘β–‘β–‘β•šβ•β•β•β•β•β•β•β•šβ•β•β–‘β–‘β•šβ•β•                           β–ˆ
β–ˆ                                                                                       β–ˆ
β–ˆ   β–ˆβ–ˆβ•—β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ•—β–‘β–‘β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—β–‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–‘β–ˆβ–ˆβ•—β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆ
β–ˆ   β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•—β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–‘β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•—β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β• β–ˆ
β–ˆ   β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•β•β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘ β–ˆ
β–ˆ   β–‘β–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ•‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ•”β•β•β•β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ•‘β–‘β–‘β•šβ•β•β•β–ˆβ–ˆβ•— β–ˆ
β–ˆ   β–‘β•šβ–ˆβ–ˆβ•”β•β–‘β•šβ–ˆβ–ˆβ•”β•β–‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–‘β–‘β•šβ–ˆβ–ˆβ•”β•β–‘β•šβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•  β–ˆ
β–ˆ   β–‘β–‘β•šβ•β•β–‘β–‘β–‘β•šβ•β•β–‘β–‘β–‘β•šβ•β•β•β•β•β–‘β•šβ•β•β–‘β–‘β•šβ•β•β•šβ•β•β–‘β–‘β•šβ•β•β•šβ•β•β–‘β–‘β–‘β–‘β–‘β•šβ•β•β•β•β•β•β•β–‘β•šβ•β•β•β•β•β–‘β–‘β–‘β•šβ•β•β–‘β–‘β–‘β•šβ•β•β–‘β•šβ•β•β•β•β•β•β–‘   β–ˆ
β–ˆ                                                                                       β–ˆ
β–ˆβ–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–ˆ
═════════════════════════════════════════════════════════════════════════════════════════

                    🦞  FEEL  THE  FLOW  OF  THE  LOBSTER  🦞

           PR REVIEW  ●  DEPLOY ANNOUNCE  ●  ROLL CALL  ●  X POST
                 ●  KNOWLEDGE EXTRACTION  ●  AND MORE...

        ══════════════════════════════════════════════════════════════════════
          DETERMINISTIC PIPELINES  ●  APPROVAL GATES  ●  STATE TRACKING
        ══════════════════════════════════════════════════════════════════════

                              Β©2026 JDRHYNE ENTERTAINMENT

A collection of ready-to-use Lobster workflow templates for Moltbot (formerly Clawdbot).

Lobster is a deterministic workflow engine β€” typed pipelines with approval gates, state tracking, and token-efficient automation. These workflows replace freeform LLM orchestration with predictable, repeatable pipelines.

Think of them like shell scripts for AI agents: instead of hoping the LLM figures out the right sequence every time, you define the exact steps, checkpoints, and approvals once β€” and it runs the same way every time.

Looking for agent skills and prompts instead of workflows? Check out agent-skills β€” a companion repo of skills for Moltbot, Claude Code, Codex, and other LLM agents.

🀝 Want to contribute a workflow? See Contributing below β€” PRs welcome!

Workflows

Workflow Steps Description
x-morning-post 8 Select a content seed, generate a draft via LLM, approve, and post to X
daily-roll-call 10 Create a thread, ping all agents, collect reports, compile a fleet summary
pr-review 7 Fetch GitHub PR state, diff against last run, summarize changes, post update
deploy-announce 8 Fetch release info, generate announcement, approve, post to channel + X
knowledge-extraction 13 Read daily notes, extract durable facts, write to a knowledge graph

Why Lobster?

Without Lobster With Lobster
LLM re-plans every step Deterministic pipeline
10+ tool calls per run 1 workflow call
"Please don't send" (hope) approve = hard stop
Forgets what it did yesterday Stateful β€” tracks cursors

Quick Start

1. Install Lobster

Lobster ships with Moltbot. If you have Moltbot, you have Lobster.

2. Copy a Workflow

# Clone this repo
git clone https://github.com/jdrhyne/lobster-workflows.git

# Copy a workflow to your Moltbot workspace
cp lobster-workflows/workflows/pr-review.lobster ~/my-workspace/workflows/

3. Customize

Each workflow has a Platform Customization section at the top explaining what to adapt:

# ── Platform Customization ──────────────────────────────────────────────
# This workflow uses Moltbot's message tool for notifications.
# Adapt these for your messaging platform:
#   - channel IDs β†’ your platform's channel/group/chat identifiers
#   - thread-create β†’ may not be available on all platforms
#   - message formatting β†’ some platforms use markdown, others don't
# ────────────────────────────────────────────────────────────────────────

All channel/bot references use placeholders like YOUR_CHANNEL_ID and BOT_ID_1 β€” replace these with your actual values.

4. Run

# Run a workflow
lobster run workflows/pr-review.lobster --args-json '{"repo":"owner/repo","pr":"123"}'

# Run with custom inputs
lobster run workflows/deploy-announce.lobster --args-json '{"repo":"owner/repo","channel":"123456"}'

# Run knowledge extraction (no messaging required)
lobster run workflows/knowledge-extraction.lobster

Workflow Details

🐦 X Morning Post

Human-in-the-loop content publishing pipeline.

Parse content seeds β†’ Select seed β†’ Confirm β†’ Generate draft (LLM) β†’ Approve β†’ Post via bird CLI β†’ Mark posted

Inputs: seed_id (optional), seeds_file (path to your content seeds) Tools: bird CLI, LLM via clawd.invoke Approval gates: 2 (seed selection + final post)


πŸ“‹ Daily Roll Call

Multi-agent coordination pipeline. Collects status reports from all agents and compiles a summary.

Create thread β†’ Ping agents β†’ Request reports β†’ Self-report β†’ Wait β†’ Read responses β†’ Compile summary β†’ Post

Inputs: reports_channel, wait_minutes, bot_ids, agent_labels Tools: Moltbot message + sessions_send Approval gates: 0 (fully automated) Note: Requires a platform with threading support (Discord, Slack). For non-threaded platforms, use a dedicated channel.


πŸ” PR Review

GitHub PR monitoring with change detection. Only reports when something changes.

Fetch PR details β†’ Check CI status β†’ Diff against last run β†’ Generate summary (LLM) β†’ Approve β†’ Post β†’ Save state

Inputs: repo (required), pr (required), channel (optional), changes_only (default: true) Tools: gh CLI, LLM via clawd.invoke Approval gates: 1 (before posting)


πŸš€ Deploy Announce

Release announcement pipeline with optional cross-posting.

Fetch release β†’ Find previous tag β†’ Fetch changelog β†’ Generate announcement (LLM) β†’ Approve β†’ Post to channel β†’ Optionally post to X β†’ Save state

Inputs: repo (required), channel (required), tag (optional, defaults to latest), post_to_x (default: false) Tools: gh CLI, bird CLI, LLM via clawd.invoke Approval gates: 2 (channel post + X post)


🧠 Knowledge Extraction

Extract durable facts from daily notes into a structured knowledge graph. Pairs with the knowledge-graph skill.

Read daily notes β†’ List existing entities β†’ Extract facts (LLM) β†’ Review β†’ Approve β†’ Create entities β†’ Write facts β†’ Log β†’ Save state

Inputs: date (default: today), auto_approve (default: false), workspace (default: current dir) Tools: LLM via clawd.invoke, filesystem Approval gates: 1 (fact approval, can be auto-skipped) No messaging required β€” this workflow is entirely file-based.

Platform Support

These workflows use Moltbot's message tool, which routes to whatever platform you have configured:

Platform Threads Notes
Discord βœ… Full support β€” threads, reactions, embeds
Slack βœ… Full support β€” threads, reactions
Telegram ❌ Use dedicated channels instead of threads
Signal ❌ Use dedicated groups instead of threads

Workflows that don't use messaging (like knowledge-extraction) work on any platform or none at all.

Anatomy of a Lobster Workflow

name: my-workflow
description: What it does
version: "1.0.0"

inputs:
  my_input:
    type: string
    description: What this input controls
    default: "sensible-default"

steps:
  - id: step_1
    description: What this step does
    command: shell-command-here
    output: json

  - id: step_2
    description: LLM-powered step
    command: clawd.invoke
    args:
      tool: sessions_spawn
      task: "Generate something based on ${step_1.stdout}"

  - id: approval
    description: Human checkpoint
    command: approve
    args:
      prompt: "Ready to proceed?"
    approval: required

  - id: final_step
    description: Do the thing
    command: some-command
    condition: $approval.approved

output:
  success: $final_step.success

Contributing

Have a useful workflow? PRs welcome!

  1. Add your .lobster file to workflows/
  2. Include a Platform Customization comment block
  3. Use placeholder values (YOUR_CHANNEL_ID, etc.) β€” not real IDs
  4. Add a description to this README
  5. Submit a PR

Related

License

MIT

Author

Jonathan Rhyne (@jdrhyne)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors