Metadata-Version: 2.4
Name: universal-skills
Version: 0.1.8
Summary: A collection of universal skills for AI agents
Author-email: Audel Rouhi <knucklessg1@gmail.com>
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: Public Domain
Classifier: Environment :: Console
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: agent-builder
Requires-Dist: PyYAML; extra == "agent-builder"
Provides-Extra: agent-workflows
Requires-Dist: httpx; extra == "agent-workflows"
Requires-Dist: PyYAML; extra == "agent-workflows"
Provides-Extra: browser-tools
Requires-Dist: playwright; extra == "browser-tools"
Requires-Dist: Pillow; extra == "browser-tools"
Provides-Extra: cloudflare-deploy
Requires-Dist: requests; extra == "cloudflare-deploy"
Requires-Dist: python-dotenv; extra == "cloudflare-deploy"
Provides-Extra: database-tools
Requires-Dist: mysql-connector-python; extra == "database-tools"
Requires-Dist: psycopg2-binary; extra == "database-tools"
Requires-Dist: pymssql; extra == "database-tools"
Provides-Extra: developer-utilities
Requires-Dist: bcrypt; extra == "developer-utilities"
Requires-Dist: cryptography; extra == "developer-utilities"
Requires-Dist: sqlparse; extra == "developer-utilities"
Requires-Dist: toml; extra == "developer-utilities"
Requires-Dist: user-agents; extra == "developer-utilities"
Requires-Dist: PyYAML; extra == "developer-utilities"
Provides-Extra: document-tools
Requires-Dist: Pillow; extra == "document-tools"
Requires-Dist: defusedxml; extra == "document-tools"
Requires-Dist: python-docx; extra == "document-tools"
Requires-Dist: EbookLib; extra == "document-tools"
Requires-Dist: lxml; extra == "document-tools"
Requires-Dist: openpyxl; extra == "document-tools"
Requires-Dist: pdf2image; extra == "document-tools"
Requires-Dist: pdfplumber; extra == "document-tools"
Requires-Dist: python-pptx; extra == "document-tools"
Requires-Dist: Pygments; extra == "document-tools"
Requires-Dist: pypdf; extra == "document-tools"
Requires-Dist: validators; extra == "document-tools"
Provides-Extra: github-tools
Requires-Dist: requests; extra == "github-tools"
Requires-Dist: python-dotenv; extra == "github-tools"
Provides-Extra: google-workspace
Requires-Dist: keyring; extra == "google-workspace"
Requires-Dist: requests; extra == "google-workspace"
Provides-Extra: jupyter-notebook
Requires-Dist: nbformat; extra == "jupyter-notebook"
Requires-Dist: nbconvert; extra == "jupyter-notebook"
Provides-Extra: mcp-builder
Requires-Dist: fastmcp; extra == "mcp-builder"
Provides-Extra: project-planning
Requires-Dist: python-dotenv; extra == "project-planning"
Requires-Dist: httpx; extra == "project-planning"
Provides-Extra: security-tools
Requires-Dist: networkx; extra == "security-tools"
Requires-Dist: requests; extra == "security-tools"
Provides-Extra: skill-builder
Requires-Dist: PyYAML; extra == "skill-builder"
Provides-Extra: skill-graph-builder
Requires-Dist: crawl4ai; extra == "skill-graph-builder"
Requires-Dist: playwright; extra == "skill-graph-builder"
Requires-Dist: psutil; extra == "skill-graph-builder"
Requires-Dist: requests; extra == "skill-graph-builder"
Provides-Extra: system-tools
Requires-Dist: psutil; extra == "system-tools"
Provides-Extra: systems-manager
Provides-Extra: web-artifacts
Requires-Dist: requests; extra == "web-artifacts"
Provides-Extra: web-crawler
Requires-Dist: crawl4ai; extra == "web-crawler"
Requires-Dist: playwright; extra == "web-crawler"
Requires-Dist: psutil; extra == "web-crawler"
Requires-Dist: requests; extra == "web-crawler"
Provides-Extra: web-searching
Requires-Dist: ddgs; extra == "web-searching"
Requires-Dist: requests; extra == "web-searching"
Provides-Extra: website-builder
Provides-Extra: all
Requires-Dist: universal-skills[agent-builder]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[agent-workflows]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[browser-tools]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[cloudflare-deploy]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[database-tools]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[developer-utilities]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[document-tools]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[github-tools]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[google-workspace]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[jupyter-notebook]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[mcp-builder]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[project-planning]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[security-tools]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[skill-builder]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[skill-graph-builder]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[system-tools]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[systems-manager]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[web-artifacts]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[web-crawler]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[web-searching]>=0.1.8; extra == "all"
Requires-Dist: universal-skills[website-builder]>=0.1.8; extra == "all"
Dynamic: license-file

# Universal Skills - Pydantic AI Skills

![PyPI - Version](https://img.shields.io/pypi/v/universal-skills)
![MCP Server](https://badge.mcpx.dev?type=server 'MCP Server')
![PyPI - Downloads](https://img.shields.io/pypi/dd/universal-skills)
![GitHub Repo stars](https://img.shields.io/github/stars/Knuckles-Team/universal-skills)
![GitHub forks](https://img.shields.io/github/forks/Knuckles-Team/universal-skills)
![GitHub contributors](https://img.shields.io/github/contributors/Knuckles-Team/universal-skills)
![PyPI - License](https://img.shields.io/pypi/l/universal-skills)
![GitHub](https://img.shields.io/github/license/Knuckles-Team/universal-skills)

![GitHub last commit (by committer)](https://img.shields.io/github/last-commit/Knuckles-Team/universal-skills)
![GitHub pull requests](https://img.shields.io/github/issues-pr/Knuckles-Team/universal-skills)
![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/Knuckles-Team/universal-skills)
![GitHub issues](https://img.shields.io/github/issues/Knuckles-Team/universal-skills)

![GitHub top language](https://img.shields.io/github/languages/top/Knuckles-Team/universal-skills)
![GitHub language count](https://img.shields.io/github/languages/count/Knuckles-Team/universal-skills)
![GitHub repo size](https://img.shields.io/github/repo-size/Knuckles-Team/universal-skills)
![GitHub repo file count (file type)](https://img.shields.io/github/directory-file-count/Knuckles-Team/universal-skills)
![PyPI - Wheel](https://img.shields.io/pypi/wheel/universal-skills)
![PyPI - Implementation](https://img.shields.io/pypi/implementation/universal-skills)

*Version: 0.1.8*

## Overview

Universal Skills is a collection of shared, reusable skills designed for Pydantic AI Agents. It provides a standardized way to give agents advanced capabilities like codebase searching, file navigation, and inter-agent communication.

## Included Skills

The following universal skills are available. You can disable specific skills by setting their corresponding environment variables to `False` (default is `True`).

| Skill Directory       | Description                                                           | Disable Flag                          | Install Command                         |
|:----------------------|:----------------------------------------------------------------------|:--------------------------------------|:----------------------------------------|
| `agent-builder`       | Templates and guidelines for building Single and Multi-Agent systems. | `AGENT_BUILDER_ENABLE=False`          | `universal-skills[agent-builder]`       |
| `agent-workflows`     | Agent-to-Agent communication, orchestration, and subagent dispatch.   | `AGENT_WORKFLOWS_ENABLE=False`        | `universal-skills[agent-workflows]`     |
| `browser-tools`       | Web browser interaction and E2E visual QA via Playwright.             | `BROWSER_TOOLS_ENABLE=False`          | `universal-skills[browser-tools]`               |
| `cloudflare-deploy`   | Deploy applications and infrastructure to Cloudflare.                 | `CLOUDFLARE_DEPLOY_ENABLE=True` (D)   | `universal-skills[cloudflare-deploy]`           |
| `database-tools`      | Connect and query PostgreSQL, MySQL, and MSSQL databases.             | `DATABASE_TOOLS_ENABLE=False`         | `universal-skills[database-tools]`      |
| `developer-utilities` | Formatting, conversion, generation, cryptographic, and networking.    | `DEVELOPER_UTILITIES_ENABLE=False`    | `universal-skills[developer-utilities]` |
| `document-tools`      | Read, edit, analyze, or create document files (PDF, spreadsheet, etc) | `DOCUMENT_TOOLS_ENABLE=False`         | `universal-skills[document-tools]`      |
| `github-tools`        | GitHub workflows, PR comments, CI fixes, and git practices.           | `GITHUB_TOOLS_ENABLE=False`           | `universal-skills[github-tools]`        |
| `google-workspace`    | Google Workspace ecosystem integration (Gmail, Drive, Docs, etc).     | `GOOGLE_WORKSPACE_ENABLE=True` (D)    | `universal-skills[google-workspace]`    |
| `jupyter-notebook`    | Create, scaffold, or edit Jupyter notebooks.                          | `JUPYTER_NOTEBOOK_ENABLE=True` (D)    | `universal-skills[jupyter-notebook]`    |
| `mcp-builder`         | Guide for creating high-quality FastMCP servers.                      | `MCP_BUILDER_ENABLE=False`            | `universal-skills[mcp-builder]`         |
| `project-planning`    | High-level reasoning, brainstorming, debugging, and research.         | `PROJECT_PLANNING_ENABLE=False`       | `universal-skills[project-planning]`    |
| `security-tools`      | Threat modeling, Sentry error logs, and security code analysis.       | `SECURITY_TOOLS_ENABLE=False`         | `universal-skills[security-tools]`      |
| `skill-builder`       | Tooling for creating and standardizing new universal skills.          | `SKILL_BUILDER_ENABLE=False`          | `universal-skills[skill-builder]`       |
| `skill-graph-builder` | Transform website documentation into indexed agent skills.            | `SKILL_GRAPH_BUILDER_ENABLE=True` (D) | `universal-skills[skill-graph-builder]` |
| `system-tools`        | Hardware and OS operations (screenshots, bluetooth, tmux).            | `SYSTEM_TOOLS_ENABLE=False`           | `universal-skills[system-tools]`        |
| `systems-manager`     | Fast codebase search, file navigation, and structural code analysis.  | `SYSTEMS_MANAGER_ENABLE=False`        | `universal-skills[systems-manager]`     |
| `web-artifacts`       | Frontend design, UI building, and artifact generation.                | `WEB_ARTIFACTS_ENABLE=False`          | `universal-skills[web-artifacts]`       |
| `website-builder`     | World-class frontend engineer for cinematic landing pages.            | `WEBSITE_BUILDER_ENABLE=False`        | `universal-skills[website-builder]`             |
| `web-crawler`         | High-speed recursive web crawling and sitemap processing.             | `WEB_CRAWLER_ENABLE=True` (D)         | `universal-skills[web-crawler]`         |
| `web-searching`       | Search the web via DDG, Google, Bing, or Searxng.                     | `WEB_SEARCHING_ENABLE=False`          | `universal-skills[web-searching]`       |

## Building Your Own Skill-Graphs

Universal Skills includes a `skill-graph-builder` that allows you to transform any website's documentation into an indexed knowledge base for your agents. These are stored in your local cache directory (`~/.cache/universal-skills/skill-graphs`) and can be enabled via environment variables.

### Example: Creating a Skill-Graph

You can prompt your agent to build a skill-graph for any technical documentation:

> "Use the skill-graph-builder to crawl https://ai.pydantic.dev and create a skill-graph named 'pydantic-ai-docs'."

Once built, the graph will be available in your cache.

### Enabling Your Graphs

To use a manually built graph, set its corresponding enable flag to `True`:

```bash
export PYDANTIC_AI_DOCS_ENABLE=True
```

## Installation

```bash
# Install with all standard skills
pip install universal-skills[all]

# Or install specific skill categories
pip install universal-skills[systems-manager,web-crawler]
```

## Usage

Universal skills are typically loaded using the `get_universal_skills_path()` utility, which can be integrated into your agent's toolset. The utility will automatically respect the environment variables shown above to filter out disabled skills.

```python
from universal_skills.skill_utilities import get_universal_skills_path, get_skill_graph_path
from pydantic_ai_skills import SkillsToolset

# Load enabled universal skills
skills_directories = [get_universal_skills_path(), get_skill_graph_path()]
skills = SkillsToolset(directories=skills_directories)
```
