@jzakirov/spawn-agent
v0.1.1
Published
Declarative subagent presets with tool enforcement for OpenClaw
Maintainers
Readme
spawn-agent
Declarative subagent presets for OpenClaw.
This plugin loads preset definitions from Markdown files with YAML frontmatter and exposes:
spawn_agent: spawn a subagent using a preset + enforce tool policyagent_presets_list: list discovered presets
Installation
openclaw plugins install @jzakirov/spawn-agentOr from a local path (development):
openclaw plugins install ./openclaw-spawn-agentPreset discovery
Presets are discovered from multiple tiers (higher priority overrides lower priority):
<workspace>/.openclaw/subagents/*.md<stateDir>/subagents/*.md- Plugin defaults:
subagents/*.md
Preset format
Each preset is a .md file with YAML frontmatter + a Markdown body used as the subagent system prompt.
Example:
---
name: reviewer
description: Read-only code reviewer focusing on bugs, security, and maintainability
model: anthropic/claude-sonnet-4-20250514
thinking: high
timeoutSeconds: 120
mode: run
cleanup: delete
sandbox: inherit
tools:
allow: [read, diffs, grep, glob]
deny: [exec, write, edit, apply_patch]
---
You are a code reviewer. Be concise. Focus on bugs, security, and maintainability.Supported frontmatter fields:
| Field | Type | Default | Notes |
|-----------------|-------------------------|------------|------|
| name | string | — | Required. Unique key used by spawn_agent. |
| description | string | "" | Shown in tool descriptions/listing. |
| model | string | — | Passed through to OpenClaw subagent spawn. |
| thinking | string | — | Passed through to OpenClaw subagent spawn. |
| timeoutSeconds| number | — | Passed through as runTimeoutSeconds. |
| mode | run | session | run | session keeps a persistent session. |
| cleanup | delete | keep | delete | Cleanup behavior for run mode. |
| sandbox | inherit | require | inherit | Whether to require sandboxing. |
| tools.allow | string[] | — | If set, only these tools are allowed. |
| tools.deny | string[] | — | Tools to deny (even if allowed). |
Tool: spawn_agent
Parameters:
agent(string, required): preset nametask(string, required): instruction for the subagentlabel(string, optional): human-readable labelthread(boolean, optional): bind to a threadmode(run|session, optional): override preset mode
Response includes childSessionKey, runId, and where the preset was resolved from.
Tool: agent_presets_list
Returns all discovered presets and their metadata, including source.
License
MIT
