skill.registry

Page actions AI-ready formats and sharing
Open LLM text
Share with AI
Ask Claude Ask ChatGPT Ask Gemini Ask Copilot

Skill registry — manifest-indexed multi-skill mount for Orrery-style apps.

ASkillRegistrystores skills by name, mounts each via use_skill() onto one app (aggregated /mcp), exposes a discovery route that lists…

Skill registry — manifest-indexed multi-skill mount for Orrery-style apps.

ASkillRegistrystores skills by name, mounts each via use_skill() onto one app (aggregated /mcp), exposes a discovery route that lists frozen manifests, and bridges ToolEventBus into a live invocation-log EventStream.

When anEnvKeystoreis passed to mount() / mount_skills(), the host-level key-status tool is registered for the union of skill provider_keys (presence only — secret values never enter the MCP response).

Console UI lives inchirp.skill.console (mount_console). This module owns registry + discovery + the live-log SSE bridge.

skill.registry

Name Type Default Description
type
qualified_name
element_type
description
source_file
line_number
is_autodoc
autodoc_element
_autodoc_template
_autodoc_url_path
_autodoc_page_type
title
doc_content_hash

Symbols on this page

SkillRegistry
class

Manifest-indexed store of skills to mount onto a single Chirp app.

Setup-only mutation (add) until mount() / mount_skills() runs; afterwards the registry is read-only. Thread-safe for concurrent setup registration (free-threading).

After the app freezes,manifests() returns the immutable content- digested manifests finalized by each skill's freeze-time domain hook.

mount_skills
function
def mount_skills(app: App, skills: SkillRegistry | Iterable[Skill], *, discovery_path: str = DEFAULT_DISCOVERY_PATH, invocation_log_path: str | None = DEFAULT_INVOCATION_LOG_PATH, keystore: EnvKeystore | None = None) -> SkillRegistry

Mount skills ontoappand expose discovery + live invocation log.

Accepts either a pre-builtSkillRegistryor an iterable of Skillinstances. Each skill is mounted via use_skill() onto the same app — Chirp's existing MCP surface then serves one aggregated/mcpwith all tools.

The discovery route (default/skills) returns a JSON document of skill manifests so agents can list what the host mounts. The invocation log route (default/invocations/live) streams ToolCallEvent fragments over SSE; passinvocation_log_path=Noneto skip it.

Whenkeystore is an EnvKeystore, also registers the host-levelkey-statustool for declared provider key names (presence only; secret values never enter the response).

Returns theSkillRegistry(creating one when given an iterable).

Parameters

Name Type Default Description
app App
skills SkillRegistry | Iterable[Skill]
discovery_path str DEFAULT_DISCOVERY_PATH
invocation_log_path str | None DEFAULT_INVOCATION_LOG_PATH
keystore EnvKeystore | None None

View source · /home/runner/work/chirp/chirp/site/../src/chirp/skill/registry.py:1