Skip to main content
Skill reload refreshes a running agent’s skill index so newly installed, edited, or removed skills are available on the next turn — no restart needed.

Quick Start

1

Reload in a live session

2

Scan from another shell

praisonai skills reload is a cross-process scan, not a live-session refresh — a separate process has no running session to reload. Use it to confirm a praisonai skills install <url> or a SKILL.md edit landed on disk. To refresh a running session, call SkillManager.reload() in-process.

How It Works

reload() re-scans the same directories the manager last discovered, diffs the fresh scan against the in-memory registry, and swaps the index atomically. Changes take effect on the next turn via to_prompt(), never mid-turn — so a reload is prompt-cache-safe.

Choosing where to reload from

Pick the live primitive for a running session; pick the CLI to check disk from another shell.

What Reload Guarantees


Behaviour under edge cases

The SKILL.md mtime baseline is recorded at load time, so an edit made after discover() but before the first reload() still shows up as changed.
A skill registered out-of-band with add_skill() was never part of a discovery scan, so reload() leaves it untouched and never lists it under removed.
Recording a use rewrites SKILL.md frontmatter, but the manager refreshes its own mtime baseline afterwards — so the next reload() does not report the skill as changed, and the same activated object is kept.
A deleted skill directory is dropped and its cached instructions cleared. Unchanged skills keep the same LoadedSkill instance, so activation and telemetry carry across the reload.
Calling reload() before any explicit discover() still returns a valid diff with the three keys — it simply scans the default sources.

Common Patterns

Refresh after a skill install from a bot or gateway

Watch-and-reload while authoring a skill

Reload and confirm a specific skill is live


Best Practices

Reload is safe by design — the index swap never takes effect mid-turn — but calling it between turns keeps the mental model simple: the next to_prompt() reflects the change.
Surface {added, changed, removed} after a reload so people see exactly what moved: +1 added / ~1 changed / -0 removed.
praisonai skills reload scans disk in its own process and cannot refresh a parent session. To pick up new skills in a running agent, call SkillManager.reload() in that same process.
Change detection keys on the skill name and its SKILL.md mtime. Renaming a skill reads as a removed + added pair and drops its telemetry — prefer editing content over renaming so usage counts survive.

Create, edit, patch, and archive skills
Provenance, telemetry, archive/restore, rollback
Load SKILL.md skills on agents
Group related skills into reusable sets