Skip to main content
Skillware Logo

A Python framework for modular, self-contained skill management for machines.


License Python Version PyPI Version Total PyPI downloads


Skillware is an open-source framework and registry for modular, actionable Agent capabilities. It installs know-how for AI agents, or modular Skills (code, contract, and host guidance) decoupling capability from intelligence. In short, don't prompt your agents, equip them.

"I know Kung Fu." - Neo

Mission

Every new agent stack tends to reinvent tool schemas, system prompts, and safety rules. Skillware packages each capability as a self-contained bundle and adapts it to Gemini, Claude, OpenAI, Ollama, and other OpenAI-compatible hosts. For the full story and roadmap, see Vision.

A Skill in this framework provides everything an Agent needs to master a domain:

  1. Contract: Constitution, safety boundaries, and typed I/O baked into the bundle.
  2. Effect: Executable Python so agents run real work, not guess it.
  3. Directive: System instructions and cognitive maps so any host uses the capability as intended.
  4. Assurance: Offline tests that Effect honors Contract before a skill joins the registry.
  5. Interface: Standardized tool schemas for any LLM or agent runtime.

Optional Corpus and Reference assets extend bundles when needed. Every bundled registry skill also ships Presentation (card.json) for catalog and UI metadata. Full reference: Introduction — Skill anatomy.

Skill library

Browse capabilities by category in the Skill library or on our site ↗.

How it works

flowchart LR
    Registry[Registry] -->|Load| Loader[Loader]
    Loader -->|Adapt| AnyHost["Any Host"]

Install the registry once. Skillware loads a bundle, adapts it to your host's tool format, and your app runs the agent loop (Gemini, Claude, Ollama, custom scripts, …). See the Introduction for loader details, Agent loops for the execution pattern, and Skill chaining for multi-skill sessions (SkillContext, named chains:).

Architecture

This repository is organized into a core framework, a registry of skills, and documentation. Runnable provider scripts are indexed in examples/README.md.

Skillware/
├── docs/                       # Introduction, testing, skill catalog, usage guides (docs/usage/)
├── examples/                   # Provider reference scripts — usage demos, not pytest (see examples/README.md)
├── skills/                     # Skill Registry
│   └── category/               # Domain boundaries (e.g., finance)
│       └── skill_name/         # The Skill bundle
│           ├── manifest.yaml   # Contract: schema, constitution, issuer
│           ├── skill.py        # Effect: deterministic execution
│           ├── instructions.md # Directive: host guidance
│           ├── card.json       # Presentation: catalog / UI metadata
│           └── test_skill.py   # Assurance (required for registry skills)
├── skillware/                  # Core Framework Package
│   ├── cli.py                  # Command-line interface
│   ├── context.py              # SkillContext — multi-skill registry host context
│   ├── chains.py               # Named skill chain runner (run_chain, validate_chain)
│   └── core/
│       ├── base_skill.py       # Abstract Base Class for skills
│       ├── chains_config.py    # chains: YAML parsing
│       ├── env.py              # Environment Management
│       └── loader.py           # Universal Skill Loader and Model Adapter
├── templates/                  # Boilerplate templates for new skills
│   └── python_skill/           # Standard template with required files
└── tests/                      # Clone-repo tests (framework + optional maintainer skill tests)
    ├── test_*.py               # Framework tests (loader, CLI, issuer, …)
    └── skills/                 # Optional maintainer skill tests (edge cases)

Quick Start

Requires Python 3.10 or newer (see requires-python in pyproject.toml).

1. Installation

You can install Skillware directly from PyPI:

pip install skillware

Or for development, clone the repository and install in editable mode:

git clone https://github.com/arpahls/skillware.git
cd skillware
pip install -e ".[dev,all]"

For documentation-only work, pip install -e ".[dev]" is enough. Skill and framework contributors should use [dev,all] to match CI (see TESTING.md and Install extras).

Note: Every skill has a dedicated pip extra (pip install "skillware[category_skill]"). The SkillLoader validates manifest.yaml on load and suggests the matching extra when packages are missing. See Install extras.

2. Verify your installation

skillware list
skillware paths

You should see a table of bundled registry skills and a paths summary confirming install and discovery. Bundled skills from pip install skillware are always available — an empty local skills/ folder does not disable them.

For path tiers, shadowing, config files, and the interactive menu, see CLI — paths & tiers, CLI — config, and Finding skills on disk. If skillware is not on your PATH, use python -m skillware list (CLI Reference).

3. Configuration

Skill paths (optional): copy .skillware.yaml.example to .skillware.yaml in your project root, or use the interactive menu (4 / paths) to persist project and external skill roots. Inspect merged settings with skillware config show. See CLI — config.

API keys: copy the environment template and add your keys.

Unix / macOS:

cp .env.example .env

Windows (PowerShell):

Copy-Item .env.example .env

Edit .env with agent keys (for example Gemini) and any keys your skills need. Agent keys power your LLM client; skill keys are declared per skill in the Skill library. See API keys for skills for setup, security, and framework variables.

Note: any loaded skill runs in your process and can read every variable in os.environ. Before wiring in real keys — especially with skills you did not write — see the skill trust model.

4. Usage Example (Gemini)

Requires pip install "skillware[gemini]" (dev: pip install -e ".[gemini]") and GOOGLE_API_KEY. The skill itself is offline — no skill API keys. For setup details see Gemini usage guide. Multi-turn loops: Agent loops.

import google.genai as genai
from google.genai import types
from skillware.core.loader import SkillLoader

bundle = SkillLoader.load_skill("monitoring/token_limiter")
skill = bundle["class"]()
tool = SkillLoader.to_gemini_tool(bundle)

client = genai.Client()
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=(
        "Check token budget for task_id demo_run: "
        "current_token_count 95000, max_allowed_tokens 100000."
    ),
    config=types.GenerateContentConfig(
        tools=[tool],
        system_instruction=bundle["instructions"],
    ),
)

for part in response.candidates[0].content.parts:
    if part.function_call:
        print(skill.execute(dict(part.function_call.args)))
    else:
        print(part.text)

For other providers and integration patterns, see the usage guides.

Documentation

Topic Links
Introduction Introduction · Vision · Comparison
Usage guides Skill Library · Usage Guide · Skill chaining · OpenAI-compatible hosts · Install extras · Examples · Agent Loops · API Keys · CLI
Security Skill trust model · SECURITY.md
Contributing Contributing · Agent Native Workflow · Testing · Changelog

Contributing

Skills, docs, tests, and framework fixes are welcome. Start with Contributing, Agent Native Workflow, and Testing. See the Agent Code of Conduct. Open PRs with the pull request template.

Comparison

Skillware differs from the Model Context Protocol (MCP), and Agent Skills (SKILL.md) in several ways:

  • Model Agnostic: Native adapters for Gemini, Claude, Ollama, and OpenAI.
  • Code-First: Skills are executable Python packages, not just server specs.
  • Runtime-Focused: Provides tools for the application, not just recipes for an IDE.

Read the full comparison here.

Stats

PePy.tech dashboard PyPI Stats dashboard Total downloads (PePy)

PyPI download counts measure install activity from public aggregators (including CI and mirrors), not unique users. Use the badge links above for charts and version breakdowns.

Citing

DOI 10.5281/zenodo.21552745

If you use Skillware in research or products, please cite it using CITATION.cff (GitHub Cite this repository) or the Zenodo concept DOI above. That DOI is stable across releases. For reproducibility, also record the Skillware version you used (PyPI or Git tag, for example 0.5.4).

Contact

For questions, suggestions, or contributions, please open an issue or reach out to us:

For skill-specific questions or reaching a skill's maintainer, check issuer and author details on the skill card, in the repo Skill Library, or on our website's skills catalog ↗.


ARPA Logo
Built & Maintained by ARPA Hellenic Logical Systems & the Community

Metadata

Release files for skillware 0.5.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for skillware 0.5.4
File Size Uploaded
skillware-0.5.4.tar.gz 706.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for skillware 0.5.4
File Interpreter ABI Platform
skillware-0.5.4-py3-none-any.whl Python 3 none any Details

Total release size: 1.4 MB

Release files / skillware-0.5.4.tar.gz

Download URL skillware-0.5.4.tar.gz
Size 706.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ca47b06d8c822194e8637d118a13cfb857a4213cc06fbbaaa563a327b3942b00
BLAKE2b-256 checksum
How to use checksums
cab38bbb9234df801f6a5cd292ac1a08c7af20962a5bf4b9608a9ddb3215959d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release files / skillware-0.5.4-py3-none-any.whl

Download URL skillware-0.5.4-py3-none-any.whl
Size 738.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f0815ada892515fe667f9b3a69a8cb05242686e15989a2121deafc2684ca313a
BLAKE2b-256 checksum
How to use checksums
69832202df164b8a8f5d78abd63d85595d494234660928ad03b860afdf6eee90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

This release

0.5.4 This release

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release 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