# ClawRecipes

ClawRecipes logo

Latest Release License Apache 2.0 Build Status TypeScript Node.js 18+
OpenClaw Plugin CLI Tool Team Automation Workflow Engine

ClawRecipes is an **OpenClaw plugin** for scaffolding agents, teams, and file-first workflows from Markdown recipes. If you want the short version: - install the plugin - scaffold a team or agent - dispatch work into tickets - run the file-first workflow - optionally use **ClawKitchen** for a UI on top ClawRecipes is **CLI-first**. It works without a UI. --- ## What ClawRecipes does ClawRecipes gives you: - **recipes** written in Markdown - **agent scaffolding** (`openclaw recipes scaffold`) - **team scaffolding** (`openclaw recipes scaffold-team`) - **file-first ticket workflow** (`dispatch → backlog → in-progress → testing → done`) - **workflow runner utilities** for scheduled / approval-gated workflows - **workspace recipe installs** from the marketplace - **ClawHub skill installs** for agents or teams It is built for people who want durable artifacts on disk, not hidden app state. --- ## Quickstart ### 1) Install the plugin **OpenClaw plugin install (recommended)** ```bash openclaw plugins install @jiggai/recipes openclaw plugins enable recipes openclaw gateway restart openclaw plugins list ``` > If you see `plugins.allow is empty; discovered non-bundled plugins may auto-load`, run `openclaw plugins enable recipes` to explicitly allowlist the plugin and suppress the warning. > **Note:** The OpenClaw plugin installer enforces `pluginApi` version checks. If you see a version mismatch error, use the npm install method below instead. > During install you may see: `Plugin "recipes" has 2 suspicious code pattern(s)`. This is expected — ClawRecipes reads API keys from your OpenClaw config and passes them to media generation scripts (e.g., DALL-E, Kling). This is required for workflow execution and is not a security concern. **npm install** ```bash npm install @jiggai/recipes --prefix ~/.openclaw/plugins openclaw gateway restart openclaw plugins list ``` **From a local checkout (development)** ```bash git clone https://github.com/JIGGAI/ClawRecipes.git ~/ClawRecipes openclaw plugins install --link ~/ClawRecipes openclaw gateway restart openclaw plugins list ``` Then verify the commands exist: ```bash openclaw recipes list ``` More install details: [docs/INSTALLATION.md](docs/INSTALLATION.md) --- ### 2) See what recipes you have ```bash openclaw recipes list openclaw recipes show development-team openclaw recipes status development-team ``` --- ### 3) Scaffold a team ```bash openclaw recipes scaffold-team development-team \ --team-id development-team \ --apply-config \ --overwrite ``` This creates: - `~/.openclaw/workspace-development-team/` - team roles under `roles/` - ticket lanes under `work/` - optional OpenClaw agent config entries (when `--apply-config` is used) --- ### 4) Put work into the system ```bash openclaw recipes dispatch \ --team-id development-team \ --owner lead \ --request "Add a new clinic-team recipe" ``` Then work the ticket flow: ```bash openclaw recipes tickets --team-id development-team openclaw recipes take --team-id development-team --ticket 0001 --owner dev openclaw recipes handoff --team-id development-team --ticket 0001 openclaw recipes complete --team-id development-team --ticket 0001 ``` --- ## Workflow support ClawRecipes supports **file-first workflows** with: - workflow JSON files under `shared-context/workflows/` - workflow runs under `shared-context/workflow-runs/` - runner / worker execution model - approval-gated steps - tool nodes - LLM nodes ### Basic workflow commands ```bash # Run one workflow manually openclaw recipes workflows run \ --team-id development-team \ --workflow-file marketing.workflow.json # Scheduler / runner openclaw recipes workflows runner-once --team-id development-team openclaw recipes workflows runner-tick --team-id development-team --concurrency 2 # Worker / executor openclaw recipes workflows worker-tick \ --team-id development-team \ --agent-id development-team-lead ``` ### Approval flow commands ```bash # approve openclaw recipes workflows approve \ --team-id development-team \ --run-id \ --approved true # reject with note openclaw recipes workflows approve \ --team-id development-team \ --run-id \ --approved false \ --note "Tighten the X post hook" # resume an awaiting run openclaw recipes workflows resume \ --team-id development-team \ --run-id ``` ### Bundled workflow examples Four ready-to-run workflow examples ship under [`examples/workflows/`](examples/workflows/): - [`marketing-cadence-v1`](examples/workflows/marketing-cadence-v1/) — text-only marketing cadence - [`marketing-image-generation-handoff`](examples/workflows/marketing-image-generation-handoff/) — image generation + handoff to social publish - [`marketing-video-generation-handoff`](examples/workflows/marketing-video-generation-handoff/) — video generation cadence - [`social-media-publish`](examples/workflows/social-media-publish/) — handoff target that publishes via kitchen-plugin-marketing + Postiz Each example directory contains the workflow JSON, a `cron-jobs.example.json`, an `install-crons.sh` helper, and a per-example README with prerequisites and install steps. See [docs/WORKFLOW_EXAMPLES_BUNDLED.md](docs/WORKFLOW_EXAMPLES_BUNDLED.md) for the catalog, required cron jobs, and a recommendation on `agents.defaults.maxConcurrent` sizing. See also: - [docs/WORKFLOW_RUNS_FILE_FIRST.md](docs/WORKFLOW_RUNS_FILE_FIRST.md) - [docs/WORKFLOW_NODES.md](docs/WORKFLOW_NODES.md) - [docs/WORKFLOW_APPROVALS.md](docs/WORKFLOW_APPROVALS.md) - [docs/WORKFLOW_EXAMPLES.md](docs/WORKFLOW_EXAMPLES.md) — small, hand-rolled pattern snippets - [docs/WORKFLOW_EXAMPLES_BUNDLED.md](docs/WORKFLOW_EXAMPLES_BUNDLED.md) — full bundled examples + cron/concurrency guide - [docs/OUTBOUND_POSTING.md](docs/OUTBOUND_POSTING.md) --- ## Important workflow posting note This is the part most people trip over. ### What ships by default Published ClawRecipes builds are intentionally conservative: - **workflow posting side effects are not automatically turned on for every install** - the old local `marketing.post_all` posting path is **not something users should assume is active** after install ### What you should do after installing If you want workflows that actually publish content: **Recommended path** - use `outbound.post` - configure an outbound posting service - keep approval gates in the workflow **Local-controller / patched path** - if you are using a local controller-specific patch for workflow posting, you must **apply that patch after install/update** - and you may need to **explicitly tell your assistant to turn workflow posting back on** for your local environment In plain English: - installing ClawRecipes does **not** mean "workflow posting is live" - you must either: 1. configure the supported outbound posting path, or 2. reapply your local posting patch after install/update If you are using RJ's local controller flow, document and keep your patch handy. --- ## Common commands ### Recipes ```bash openclaw recipes list openclaw recipes show development-team openclaw recipes install clinic-team ``` ### Agents and teams ```bash # single agent openclaw recipes scaffold project-manager --agent-id pm --apply-config # team openclaw recipes scaffold-team development-team --team-id development-team --apply-config # add a role into an existing team openclaw recipes add-role \ --team-id development-team \ --role workflow-runner \ --recipe workflow-runner-addon \ --apply-config ``` ### Ticket workflow ```bash openclaw recipes tickets --team-id development-team openclaw recipes move-ticket --team-id development-team --ticket 0007 --to in-progress openclaw recipes assign --team-id development-team --ticket 0007 --owner dev openclaw recipes take --team-id development-team --ticket 0007 --owner dev openclaw recipes handoff --team-id development-team --ticket 0007 --tester test openclaw recipes complete --team-id development-team --ticket 0007 ``` ### Bindings ```bash openclaw recipes bindings openclaw recipes bind --agent-id dev --channel telegram --peer-kind dm --peer-id 6477250615 openclaw recipes unbind --agent-id dev --channel telegram --peer-kind dm --peer-id 6477250615 ``` ### Cleanup / removal ```bash openclaw recipes cleanup-workspaces openclaw recipes cleanup-workspaces --prefix smoke- --yes openclaw recipes remove-team --team-id development-team --plan --json openclaw recipes remove-team --team-id development-team --yes ``` Full reference: [docs/COMMANDS.md](docs/COMMANDS.md) --- ## Recommended docs order for humans If you are new, read these in order: 1. [Installation](docs/INSTALLATION.md) 2. [Commands](docs/COMMANDS.md) 3. [Team workflow](docs/TEAM_WORKFLOW.md) 4. [Workflow runs](docs/WORKFLOW_RUNS_FILE_FIRST.md) 5. [Workflow examples](docs/WORKFLOW_EXAMPLES.md) 6. [Outbound posting](docs/OUTBOUND_POSTING.md) 7. [Memory system](docs/MEMORY_SYSTEM.md) 8. [Swarm Orchestrator](docs/SWARM_ORCHESTRATOR.md) If you are building recipes: 1. [Recipe format](docs/RECIPE_FORMAT.md) 2. [Create recipe tutorial](docs/TUTORIAL_CREATE_RECIPE.md) 3. [Bundled recipes](docs/BUNDLED_RECIPES.md) If you are contributing to the codebase: 1. [Architecture](docs/ARCHITECTURE.md) 2. [Contributing](CONTRIBUTING.md) 3. [Releasing](docs/releasing.md) --- ## ClawKitchen If you want a UI for teams, workflows, goals, approvals, and management, use: - **ClawKitchen**: https://github.com/JIGGAI/ClawKitchen ClawKitchen is optional. ClawRecipes works without it. More: [docs/CLAWCIPES_KITCHEN.md](docs/CLAWCIPES_KITCHEN.md) --- ## Development ```bash npm test npm run test:coverage npm run smell-check ``` --- ## License ClawRecipes is licensed under **Apache-2.0**.