Skip to main content

Skills in embedded apps

Skills are instruction packages discovered when the full runtime starts. The SDK exposes a UI-neutral catalog so a host can list them, explain unavailable entries, and attach selected Skills to an Agent.

Choose where Skills live​

By default, the full runtime follows MicroClaw's configured data directory. An embedded application can point to its own managed directory:

let microclaw = MicroClaw::configure(config)
.data_dir("./app-data")
.skills_dir("./app-data/skills")
.build()
.await?;

Each Skill directory contains a SKILL.md. Keep the selected directory inside the application's intended data boundary and apply the same review policy you would use for executable extensions.

Build a Skill picker​

for skill in microclaw.skills().all() {
println!(
"{} | available={} | {}",
skill.name,
skill.available,
skill.unavailable_reason.as_deref().unwrap_or("ready"),
);
}

The catalog is refreshed on demand. Show description, source, and version where available. Disable unavailable Skills in the UI and surface unavailable_reason instead of letting a run fail later.

Manage Skills without restarting​

let installed = microclaw.install_skill("owner/repository/skill").await?;
let catalog = microclaw.set_skill_enabled("code-review", false)?;
let catalog = microclaw.reload_skills()?;
let removed = microclaw.remove_skill("old-skill")?;
println!("Archived at {}", removed.archived_at.display());

Use install_local_skill(path) for a local directory. Local imports are staged, reject symbolic links, and pass injection scanning before replacing an existing package. Removal is recoverable: the package moves under .archived/.

Select Skills for an Agent​

let reviewer = microclaw
.agent("reviewer")
.system_prompt("Review changes and explain concrete risks.")
.skill("code-review")
.build()?;

Agent construction validates every selected Skill. An unknown or unavailable Skill returns SdkError::SkillUnavailable before execution begins.

Product guidance​

  • Let users select Skills per Agent, not per individual event.
  • Preserve Skill IDs in application state; treat display descriptions as copy.
  • Refresh the catalog after external filesystem changes; SDK lifecycle methods refresh it automatically.
  • Keep import, review, activation, and selection as distinct actions.
  • Apply MicroClaw's existing audit and policy gates rather than inventing a second trust model in the host UI.

For the package format and governance model, read Skills, Skill architecture, and ClawHub.