Skip to main content
The palyra-skills crate provides the core logic for packaging, verifying, and managing the lifecycle of agent capabilities. It ensures that skills—which contain executable WASM modules and sensitive capability requests—are signed by trusted publishers and audited before execution.

Skill Manifest (skill.toml)

Every skill is defined by a skill.toml manifest. This file declares the skill’s identity, its entrypoint tools, and the specific capabilities (filesystem, network, secrets) it requires from the host.
FieldDescriptionSource
skill_idUnique dot-separated identifier (e.g., acme.echo_http).crates/palyra-skills/src/manifest.rs#59-59
publisherThe entity responsible for the skill. Used for namespace validation.crates/palyra-skills/src/manifest.rs#58-58
entrypoints.toolsList of tools exposed to the LLM, including JSON schemas and risk levels.crates/palyra-skills/src/manifest.rs#65-69
capabilitiesRequests for http_egress_allowlist, filesystem, and secrets.crates/palyra-skills/src/manifest.rs#99-123
quotasResource limits: fuel_budget, max_memory_bytes, and wall_clock_timeout_ms.crates/palyra-skills/src/manifest.rs#138-145
Validation Rules: Sources: crates/palyra-skills/src/manifest.rs#12-147, crates/palyra-skills/examples/echo-http/skill.toml#1-45

SkillArtifact Packaging and Signing

A .palyra-skill artifact is a signed ZIP archive containing the manifest, WASM modules, assets, and security metadata (SBOM and Provenance).

The Build Process

  1. Gather Inputs: Manifest TOML, WASM bytes, static assets, CycloneDX SBOM, and SLSA provenance crates/palyra-cli/src/commands/skills.rs#20-51.
  2. Sign: The build_signed_skill_artifact function uses an Ed25519 key to sign the SHA-256 hash of the payload crates/palyra-skills/src/lib.rs#11-11.
  3. Bundle: Files are packed into a ZIP with standard paths: skill.toml, _palyra/signature.json, _palyra/sbom.cdx.json, and _palyra/provenance.json crates/palyra-skills/src/lib.rs#13-17.
Diagram: Skill Artifact Construction Sources: crates/palyra-skills/src/lib.rs#1-33, crates/palyra-cli/src/commands/skills.rs#59-67

Trust Store and TOFU

The SkillTrustStore manages the public keys of trusted publishers. It supports Trust On First Use (TOFU) for local development or unmanaged environments. Sources: crates/palyra-skills/src/lib.rs#8-9, crates/palyra-cli/src/commands/skills.rs#106-127

Lifecycle Management

Skills move through various states managed by the CLI and the palyrad daemon.

1. Installation

The skills install command validates the artifact, verifies the signature, and extracts the contents to the managed skills directory crates/palyra-cli/src/args/skills.rs#9-34. It also registers the skill’s initial status in the JournalStore crates/palyra-cli/tests/skills_lifecycle.rs#186-197.

2. Periodic Reaudit

The daemon runs a PeriodicSkillReaudit task (via the Cron subsystem) to ensure installed skills still meet security policies.

3. Quarantine State

If a skill fails an audit or is manually flagged, it is moved to a Quarantine state. Diagram: Skill Lifecycle Transitions Sources: crates/palyra-cli/src/args/skills.rs#3-182, crates/palyra-cli/src/output/skills.rs#101-119, crates/palyra-cli/tests/skills_lifecycle.rs#125-175

Security Auditing

The audit_skill_artifact_security function performs static analysis on the skill artifact before it is allowed to run. Sources: crates/palyra-skills/src/lib.rs#11-24, crates/palyra-cli/src/output/skills.rs#85-119