Skip to main content

Rustic AI Skills

Agent Skills support for the Rustic AI framework. This module provides tools for discovering, installing, parsing, and executing Agent Skills from various sources including GitHub repositories and local directories.

Overview

Agent Skills are a standardized format for packaging reusable capabilities that AI agents can invoke. This module implements:

  • SKILL.md Parser: Parse skill definitions in the Agent Skills format
  • Skill Marketplace: Discover and install skills from GitHub repositories, Git URLs, or local directories
  • Script Executor: Securely execute skill scripts (Python, Shell, JavaScript, etc.)
  • SkillToolset: Integrate skills with the ReActAgent as executable tools

Installation

cd skills
poetry install --with dev

Quick Start

Discover and Install Skills

from rustic_ai.skills import SkillMarketplace

# Initialize marketplace
marketplace = SkillMarketplace()

# Add Anthropic's official skills (pre-configured)
# marketplace.add_source("anthropic", "github", "anthropics/skills")

# Add a custom source
marketplace.add_source(
    name="my-skills",
    source_type="github",
    location="myorg/agent-skills",
)

# Discover available skills
skills = marketplace.discover()
for skill in skills:
    print(f"{skill.name}: {skill.description}")

# Install a skill
marketplace.install("pdf")

# List installed skills
installed = marketplace.list_installed()

Use Skills with ReActAgent

from pathlib import Path
from rustic_ai.skills import SkillToolset
from rustic_ai.llm_agent.react import ReActAgent, ReActAgentConfig

# Create toolset from installed skill
toolset = SkillToolset.from_path(Path("/tmp/rustic-skills/pdf"))

# Configure ReActAgent with the skill
config = ReActAgentConfig(
    model="gpt-4",
    toolset=toolset,
    system_prompt=toolset.get_system_prompt_addition(),
)

Use Multiple Skills

from rustic_ai.skills import SkillToolset

# Load multiple skills at once
toolset = SkillToolset.from_paths([
    Path("/tmp/rustic-skills/pdf"),
    Path("/tmp/rustic-skills/csv"),
    Path("/tmp/rustic-skills/web-search"),
])

# Get combined system prompt
system_prompt = toolset.get_combined_system_prompt()

Parse Skills Directly

from pathlib import Path
from rustic_ai.skills import SkillParser, parse_skill

# Parse a skill folder
skill = parse_skill(Path("./my-skill"))

print(f"Name: {skill.name}")
print(f"Description: {skill.description}")
print(f"Scripts: {[s.name for s in skill.scripts]}")
print(f"Instructions:\n{skill.instructions}")

# Lazy load metadata only (for efficient discovery)
metadata = SkillParser.parse_metadata_only(Path("./my-skill"))

Execute Scripts Directly

from rustic_ai.skills import ScriptExecutor, ExecutionConfig

# Configure executor
config = ExecutionConfig(
    timeout_seconds=60,
    env_vars={"API_KEY": "secret"},
)

executor = ScriptExecutor(config)

# Execute inline code
result = executor.execute_inline(
    code='print("Hello from skill")',
    language="python",
    args={"input": "test"},
)

if result.success:
    print(result.output)
else:
    print(f"Error: {result.error}")

Skill Format

Skills follow the Agent Skills specification:

my-skill/
├── SKILL.md           # Required: Skill definition
├── scripts/           # Optional: Executable scripts
│   ├── process.py
│   └── setup.sh
├── references/        # Optional: Reference documents
│   └── api-docs.md
└── assets/            # Optional: Template files, configs
    └── template.json

SKILL.md Format

---
name: my-skill
description: What this skill does and when to use it
allowed-tools: Read, Write, Bash
model: gpt-4
---

# My Skill

Instructions for how to use this skill...

## Usage

1. Step one
2. Step two

Components

Models

  • SkillMetadata: Lightweight metadata from SKILL.md frontmatter
  • SkillDefinition: Full skill definition with scripts, references, assets
  • SkillScript: Executable script with interpreter info
  • SkillReference: Reference document with lazy loading
  • SkillSource: Configuration for a skill source (GitHub, local, Git)
  • SkillRegistry: Registry of discovered skills

Parser

  • SkillParser: Parse SKILL.md files and discover resources
  • parse_skill(): Convenience function for full parsing
  • parse_skill_metadata(): Convenience function for metadata-only parsing

Marketplace

  • SkillMarketplace: Discover and install skills from various sources
  • Supports GitHub repositories (via GitPython)
  • Supports local directories
  • Supports arbitrary Git URLs

Executor

  • ScriptExecutor: Execute scripts with timeout and sandboxing
  • ExecutionConfig: Configuration for script execution
  • ExecutionResult: Result of script execution
  • Supports Python, Shell, JavaScript, TypeScript, Ruby

Toolset

  • SkillToolset: Convert skills to ReActToolset for use with ReActAgent (supports single or multiple skills)
  • MarketplaceSkillToolset: Auto-install skills from marketplace
  • ScriptToolParams: Parameters for script-based tools

Testing

# Run all tests
poetry run pytest

# Run with coverage
poetry run pytest --cov=rustic_ai.skills

# Run specific test file
poetry run pytest tests/test_parser.py

Development

# Format code
poetry run tox -e format

# Lint code
poetry run tox -e lint

# Run all checks
poetry run tox

License

Apache-2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rusticai_skills-0.4.1.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rusticai_skills-0.4.1-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file rusticai_skills-0.4.1.tar.gz.

File metadata

  • Download URL: rusticai_skills-0.4.1.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.12 Linux/6.17.0-1022-azure

File hashes

Hashes for rusticai_skills-0.4.1.tar.gz
Algorithm Hash digest
SHA256 272f7a476f9912d1904ea1b7f77d7ea65de42163f3cddaee25ed5bbea8ec3d7c
MD5 83e01309e703c10d1abeb53d80b23cc8
BLAKE2b-256 a4b28a22fa46edb39493153a4fb101a0c33741ae4e4dd20cad32388cb6387af0

See more details on using hashes here.

File details

Details for the file rusticai_skills-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: rusticai_skills-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 19.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.12 Linux/6.17.0-1022-azure

File hashes

Hashes for rusticai_skills-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 619c744daf7104c42eb600088245eae4b6949209feca2eac003a87de6253dc68
MD5 6310733180bc341f7085437b68ef865a
BLAKE2b-256 b023e56a31ed3547e41199dc0a9ddd4536a70bd1a18eebcf81e345500cbe6df6

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 files

0.4.0

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page