hzl
OpenClaw's persistent task database. Coordinate sub-agents, checkpoint progress, survive session boundaries.
Install
mkdir -p .claude/skills/hzl && curl -L -o skill.zip "https://mcp.directory/api/skills/download/7537" && unzip -o skill.zip -d .claude/skills/hzl && rm skill.zipInstalls to .claude/skills/hzl
About this skill
HZL: Persistent task ledger for agents
HZL (https://hzl-tasks.com) is a local-first task ledger that agents use to:
- Plan multi-step work into projects + tasks
- Checkpoint progress so work survives session boundaries
- Route work to the right agent via project pools
- Coordinate across multiple agents with leases and dependencies
This skill teaches an agent how to use the hzl CLI.
When to use HZL
OpenClaw has no native task tracking. Unlike Claude Code (which has TodoWrite) or Codex (which has update_plan), OpenClaw relies on memory and markdown files for tracking work. HZL fills this gap.
Use HZL for:
- Multi-step projects with real sequencing or handoffs
- Work that may outlive this session or involve multiple agents
- Anything where "resume exactly where we left off" matters
- Delegating work to another agent and needing recovery if they fail
Skip HZL for:
- Truly trivial one-step tasks you will complete immediately
- Time-based reminders (use OpenClaw Cron instead)
- Longform notes or knowledge capture (use memory files)
Rule of thumb: If you feel tempted to make a multi-step plan, or there is any chance you will not finish in this session, use HZL.
⚠️ DESTRUCTIVE COMMANDS — READ FIRST
| Command | Effect |
|---|---|
hzl init --force | DELETES ALL DATA. Prompts for confirmation. |
hzl init --force --yes | DELETES ALL DATA WITHOUT CONFIRMATION. |
hzl task prune ... --yes | PERMANENTLY DELETES old done/archived tasks and history. |
Never run these unless the user explicitly asks you to delete data. There is no undo.
Core concepts
- Project: container for tasks. In single-agent setups, use one shared project. In multi-agent setups, use one project per agent role (pool routing).
- Task: top-level work item. Use parent tasks for multi-step initiatives.
- Subtask: breakdown of a task (
--parent <id>). Max 1 level of nesting. Parent tasks are never returned byhzl task claim --next. - Checkpoint: short progress snapshot for session recovery.
- Lease: time-limited claim that enables stuck detection in multi-agent flows.
Project setup
Single-agent setup
Use one shared project. Requests and initiatives become parent tasks, not new projects.
hzl project list # Check first — only create if missing
hzl project create openclaw
Everything goes into openclaw. hzl task claim --next -P openclaw always works.
Multi-agent setup (pool routing)
Use one project per agent role. Tasks assigned to a project (not a specific agent) can be claimed by any agent monitoring that pool. This is the correct pattern when a role may scale to multiple agents.
hzl project create research
hzl project create writing
hzl project create coding
hzl project create marketing
hzl project create coordination # for cross-agent work
Pool routing rule: assign tasks to a project without --agent. Any eligible agent claims with --next.
# Assigning work to the research pool (no --agent)
hzl task add "Research competitor pricing" -P research -s ready
# Kenji (or any researcher) claims it
hzl task claim --next -P research --agent kenji
Agent routing: when --agent is set at task creation, only that agent (or agents with no assignment) can claim it via --next. Tasks with no agent are available to everyone.
# Pre-route a task to a specific agent
hzl task add "Review Clara's PR" -P coding -s ready --agent kenji
# Kenji claims it (matches agent)
hzl task claim --next -P coding --agent kenji # ✓ returns it
# Ada tries — skipped because it's assigned to kenji
hzl task claim --next -P coding --agent ada # ✗ skips it
Use --agent on task creation when you specifically want one person. Omit it when any eligible agent in the pool should pick it up.
Session start (primary workflow)
With workflow commands (HZL v2+)
hzl workflow run start --agent <agent-id> --project <project> --json
--project is required — agents must scope to their assigned pool. Use --any-project to intentionally scan all projects (e.g. coordination agents).
This handles expired-lease recovery and new-task claiming in one command. If a task is returned, work on it. If nothing is returned, the queue is empty. Agent routing applies: tasks assigned to other agents are skipped.
Without workflow commands (fallback)
hzl agent status # Who's active? What's running?
hzl task list -P <project> --available # What's ready?
hzl task stuck # Any expired leases?
hzl task stuck --stale # Also check for stale tasks (no checkpoints)
# If stuck tasks exist, read their state before claiming
hzl task show <stuck-id> --view standard --json
hzl task steal <stuck-id> --if-expired --agent <agent-id> --lease 30
hzl task show <stuck-id> --view standard --json | jq '.checkpoints[-1]'
# Otherwise claim next available
hzl task claim --next -P <project> --agent <agent-id>
Core workflows
Adding work
hzl task add "Feature X" -P openclaw -s ready # Single-agent
hzl task add "Research topic Y" -P research -s ready # Pool-routed (multi-agent)
hzl task add "Subtask A" --parent <id> # Subtask
hzl task add "Subtask B" --parent <id> --depends-on <a-id> # With dependency
Working a task
hzl task claim <id> # Claim specific task
hzl task claim --next -P <project> # Claim next available
hzl task checkpoint <id> "milestone X" # Checkpoint progress
hzl task complete <id> # Finish
Status transitions
hzl task set-status <id> ready # Make claimable
hzl task set-status <id> backlog # Move back to planning
hzl task block <id> --comment "reason" # Block with reason
hzl task unblock <id> # Unblock
Statuses: backlog → ready → in_progress → done (or blocked)
Finishing subtasks
hzl task complete <subtask-id>
hzl task show <parent-id> --view summary --json # Any subtasks remaining?
hzl task complete <parent-id> # Complete parent if all done
Delegating and handing off work
Workflow commands (HZL v2+)
# Hand off to another agent or pool — complete current, create follow-on atomically
hzl workflow run handoff \
--from <task-id> \
--title "<new task title>" \
--project <pool> # --agent if specific person; --project for pool
# Delegate a subtask — creates dependency edge by default
hzl workflow run delegate \
--from <task-id> \
--title "<delegated task>" \
--project <pool> \
--pause-parent # Block parent until delegated task is done
--agent and --project guardrail: at least one is required on handoff. Omitting --agent creates a pool-routed task; --project is then required to define which pool.
Manual delegation (fallback)
hzl task add "<delegated title>" -P <pool> -s ready --depends-on <parent-id>
hzl task checkpoint <parent-id> "Delegated X to <pool> pool. Waiting on <task-id>."
hzl task block <parent-id> --comment "Waiting for <delegated-task-id>"
Dependencies
# Add dependency at creation
hzl task add "<title>" -P <project> --depends-on <other-id>
# Add dependency after creation
hzl task add-dep <task-id> <depends-on-id>
# Query dependencies
hzl dep list --agent <id> --blocking-only # What's blocking me?
hzl dep list --from-agent <id> --blocking-only # What's blocking work I created?
hzl dep list --project <p> --blocking-only # What's blocking in a pool?
hzl dep list --cross-project-only # Cross-agent blockers
# Validate no cycles
hzl validate
Cross-project dependencies are supported by default. Use hzl dep list --cross-project-only to inspect cross-project edges.
Checkpointing
Checkpoint at notable milestones or before pausing. A good checkpoint answers: "if this session died right now, could another agent resume from here?"
When to checkpoint:
- Before any tool call that might fail
- Before spawning a sub-agent
- After completing a meaningful unit of work
- Before handing off or pausing
hzl task checkpoint <id> "Implemented login flow. Next: add token refresh." --progress 50
hzl task checkpoint <id> "Token refresh done. Testing complete." --progress 100
hzl task progress <id> 75 # Set progress without a checkpoint
Lifecycle hooks
HZL sends targeted notifications for high-value transitions — currently only on_done. Other lifecycle events (stuck detection, blocking, progress) require polling. This is deliberate: hooks signal when something meaningful happens, agents and orchestrators poll for everything else.
Hooks are configured during installation (see docs-site for setup). As an agent, here's what you need to know operationally:
- Only
on_donefires. When youtask complete, HZL queues a webhook. For stuck detection, stale detection, blocking changes, or progress — poll withhzl task stuck --staleorhzl task list. - Delivery is not instant.
hzl hook drainruns on a cron schedule (typically every 2–5 minutes). Your completion is recorded immediately, but the notification reaches the gateway on the next drain cycle. - Payloads include context. Each notification carries
agent,project, and full event details. The gateway handles per-agent routing — HZL sends the same payload to one URL regardless of which agent completed the task. - If hooks seem broken, check
hzl hook drain --jsonfor delivery failures andlast_errordetails.
Multi-agent coordination with leases
# Claim with lease (prevents orphaned work)
hzl task claim <id> --agent <agent-id> --lease 30 # 30-minut
---
*Content truncated.*
More by openclaw
View all skills by openclaw →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversEnhance software testing with Playwright MCP: Fast, reliable browser automation, an innovative alternative to Selenium s
Cipher empowers agents with persistent memory using vector databases and embeddings for seamless context retention and t
Connect Supabase projects to AI with Supabase MCP Server. Standardize LLM communication for secure, efficient developmen
Deploy, monitor, and manage cloud based DBMS and cloud database management tasks on Tencent CloudBase with AI-powered to
Ask Human adds human-in-the-loop responses to AI, preventing errors on sensitive tasks like passwords and API endpoints.
Integrate with Salesforce CRM for easy data management, querying, and admin tasks using natural language. Boost your sal
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.