Skills give an agent reusable instructions and, optionally, tool definitions. Plugins extend the runtime through its plugin system; some contain WebAssembly code, while others package only Markdown skills. An instruction-only skill is the simplest starting point for a checklist or writing workflow.
Version notice: Checked against ZeroClaw v0.8.5 on 10 October 2026. The official macOS arm64 prebuilt binary loaded the native bundle example below. Plugin packaging was checked against tagged source documentation, not executed. Recheck these instructions against your installed release with
zeroclaw --version.
Two kinds of bundle
| Mechanism | How it loads | Official v0.8.5 prebuilt binary |
|---|---|---|
| Native shared skill bundle | [skill_bundles.ops] plus agents.assistant.skill_bundles | Supported; tested below |
| Plugin-packaged skill bundle | Plugin manifest with skill capability and a skills/ directory | Requires a plugin-enabled build |
| WebAssembly plugin | Plugin manifest, WASM component and host permissions | Requires a plugin-enabled build |
Installing a skill and loading it for an agent are separate steps. A global inventory entry is not proof that your agent can use it. Use skills list --agent assistant to inspect that agent's runtime skill set.
Load one instruction-only skill
Start with the working assistant agent in the minimal config example. These commands use a separate ./skill-demo config directory so you can test without editing your normal installation. Save the minimal config as ./skill-demo/config.toml first. Model connectivity is not needed for the loading check.
Create a folder named release-check beside skill-demo, and save this file as release-check/SKILL.md. You can also download the tested SKILL.md.
---
name: release-check
description: Review release readiness before tagging
version: 0.1.0
---
# Release check
Review the version, changelog and migration notes. Report missing checks. Do not tag, publish or change files.
README.md is optional. For native Markdown skills, the directory name supplies a name when needed, and the first non-heading paragraph can supply a description. This example uses explicit metadata to make the result easy to identify. The extra license, category and permission fields in older examples are not required Markdown skill fields.
Create the native bundle:
zeroclaw --version
zeroclaw --config-dir ./skill-demo skills bundle add ops
zeroclaw --config-dir ./skill-demo skills install ./release-check --bundle ops
The bundle command adds [skill_bundles.ops] to this config. With no directory override, its files live under ./skill-demo/shared/skills/ops/. Add the bundle assignment inside your existing [agents.assistant] table; keep its model, risk profile and workspace settings. Do not create a second table with the same name.
[agents.assistant]
model_provider = "ollama.local"
risk_profile = "reader"
skill_bundles = ["ops"]
Check the config and the skills that this agent loads:
zeroclaw --config-dir ./skill-demo config migrate --json
zeroclaw --config-dir ./skill-demo skills list --agent assistant
The tested config check returned schema_version: 3, valid: true, migrated: false and error: null. The skill command returned:
Installed skills (1):
[loaded by agent 'assistant']
release-check v0.1.0 — Review release readiness before tagging
This demonstrates runtime skill loading. It does not demonstrate a model following the instructions or performing a release review. Once your configured model is available, try:
zeroclaw --config-dir ./skill-demo agent -a assistant -m "Use release-check to review these release notes: version 1.2.0, changelog present, migration notes missing."
A useful answer should flag the missing migration notes. Review the response; model behavior is not an exact-output guarantee. The example contains no shell or HTTP tool definitions.
How loading works
An agent can load workspace skills, assigned native bundles and other enabled sources. Native bundle aliases must exist in [skill_bundles] and be listed in that agent's skill_bundles array. A bundle can be shared by several agents without copying its files into each workspace.
The global <install>/data/skills/ location is a CLI fallback. Skills installed only there do not load automatically for agents. If skills list shows a skill but skills list --agent assistant does not, check the destination bundle and agent assignment. Pass --bundle ops explicitly when installing to avoid an ambiguous destination.
In the tagged v0.8.5 config schema, full is the default prompt injection mode: skill instructions are included in the prompt. Setting [skills] prompt_injection_mode = "compact" instead advertises skill metadata and lets the agent retrieve instructions through read_skill. Skills marked always: true retain full instructions in compact mode. Check your release and runtime profile before assuming which mode is active; release-summary wording differs from the v0.8.5 schema default.
Why plugin commands fail on a prebuilt binary
The official v0.8.5 prebuilt binaries omit the plugins-wasm feature. In the tested binary, zeroclaw plugin --help returned unrecognized subcommand 'plugin'. Downloading a plugin or placing its manifest in a folder does not enable that feature. Plugin-shipped skills also need the plugin loader, even if they contain no WASM.
For native skills, use the tested bundle route above. If you need plugin distribution or execution, the tagged plugin bundle guide describes a source build with an execution backend:
cargo build --release --features plugins-wasm-cranelift
Run that command from the v0.8.5 source checkout with the required Rust build tools. This source build and plugin execution were not tested here. Confirm zeroclaw plugin --help in the resulting binary before following registry installation instructions.
A skill-only plugin bundle has a manifest declaring the skill capability, no wasm_path, and one or more skills/<name>/SKILL.md files. Each of those files needs frontmatter with non-empty name and description. Loaded IDs are qualified as plugin:<plugin-name>/<skill-name>. These plugin packaging rules differ from native loose-file authoring rules.
Instructions are not permission grants
A Markdown instruction cannot grant filesystem or network access. Actual access depends on the agent's tools, risk profile and host policy. Structured skills can define shell, HTTP or script tools, so do not assume every skill is code-free. A network task may use an existing tool or a structured skill; it does not necessarily require a WASM plugin.
Inspect a skill before installing it and use zeroclaw skills audit ./release-check for the local audit. An audit or registry label is not a guarantee of trustworthy behavior. For plugins, review the selected build's manifest, permission and signature policies rather than assuming every install verifies an Ed25519 signature or that every plugin is deterministic.
Sources and next steps
This example was checked using the official v0.8.5 release, its CLI help, tagged skill documentation, and config schema.
Continue with configuration, installation, or the runtime introduction.