SkillsManager


NameSkillsManager JSON
Version 0.2.2 PyPI version JSON
download
home_pageNone
SummaryModern manager for AI skills, tools, loading, execution, and automation.
upload_time2025-07-22 20:40:30
maintainerNone
docs_urlNone
authorTristan McBride Sr.
requires_python>=3.10
licenseNone
keywords ai agents skills tools autoload productivity automation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
---
# ⚠️ SkillsManager is Deprecated

> **Deprecation Notice (July 2025):**
>
> - The SkillsManager project is now officially **deprecated** and will receive no further updates.
> - Please use **[SkillLink](https://pypi.org/project/SkillLink/)** for all new development. SkillLink is a direct evolution of SkillsManager, offering the same powerful features plus new improvements and ongoing support.
> - For file or skill syncing, use **[SyncLink](https://pypi.org/project/SyncLink/)**.
>
> | Package       | Purpose                                  |
> | ------------- | ---------------------------------------- |
> | SkillLink     | Advanced LLM skill/action management     |
> | SyncLink      | Modern skill/file syncing utility        |
> | SkillsManager | (Deprecated) – Use SkillLink instead     |
>
> **SkillLink is fully compatible with SkillsManager. Upgrade today for the latest features and improvements.**

---

# SkillsManager – Natural Language Skills for LLMs (No Vendor Lock-In, No Naming Restrictions)

## Overview

**SkillsManager** is a next-generation framework for managing and executing skills/actions with large language models (**LLMs**) using **natural language**—not vendor-bound JSON or TYPED schemas definitions.
Unlike traditional function-calling, SkillsManager lets your LLM output actions in freeform(Natural Language) text. The SkillsManager framework interprets, maps, and executes those actions using your own Python code—no matter what you call your skills/actions or where you store them.

**Highlights:**

* **Zero vendor lock-in:** Not tied to any model provider’s format or schema.
* **No naming restrictions:** Name your skills, folders, or groups anything you like—SkillsManager doesn’t care.
* **No JSON schemas:** No decorators, no rigid typing, no endless schema maintenance.
* **Natural language as the interface:** The LLM outputs actions in text, not function\_call JSON or TYPED.
* **Add/organize skills freely:** Just point SkillsManager at your code—group, reload, or restrict however you want.
* **Centralized execution:** All skill mapping, argument parsing, and execution happens in one place.

**Backward compatible:**

* **Want to stick with traditional function calling?** No problem. SkillsManager can still work with JSON and TYPED schemas definitions if you prefer that style.
* **Want to use SkillsManager with existing function calls?** You can still use it alongside traditional function calling, so you can migrate gradually or keep both styles.

> **NOTE:**
> If you want to use JSON schemas or TYPED definitions (like OpenAI, Gemini, Anthropic, etc.),
> **SkillsManager automatically generates and manages all required schemas for you based on your code and docstrings—**
> **You NEVER have to write, maintain, or register schemas manually.**

---

## Why SkillsManager?

Traditional LLM “function calling” means:

* Rigid function and argument definitions.
* Tedious JSON and TYPED schema management.
* Forced adherence to provider conventions.
* Locked into one vendor’s API.

**SkillsManager:**

* Uses only natural language—models describe actions however they want.
* Lets you migrate skills and switch model providers instantly.
* Removes all JSON and TYPED schema headaches.
* Lets you organize, group, and name skills however you want.

---

## Key Features

* **Flexible Skill Loading:**
  Add, reload, or restrict any set of skills, with any folder or group name.

* **Natural Language Action Parsing:**
  Models output plain English (or any language), and SkillsManager interprets it to execute your code.

* **Centralized Execution:**
  No scattered registries—skill mapping, argument parsing, and execution are all in one place.

---

## Organizing and Naming Your Skills

There are **no reserved names, no required folder layout, and no fixed naming conventions** in SkillsManager.
You control all naming, grouping, and structure—use whatever makes sense for your team, project, or workflow.

**Examples:**

* **Refer to SMExamples Directory or the Examples on GitHub:**

**Just point SkillsManager at any directory or skill group you want—no restrictions, ever.**

---

### Example Layouts (ALL are valid)

```
project_root/
├── Skills/ # This is just an example, you can name it whatever you want, you can even nest the directories it does not have to be at the root
│   ├── Foo/ # Can do nested folders, any names
│   │   ├── summarize.py
│   │   └── summarize_pdf.py
│   ├── Bar/
│   │   ├── sendEmail.py
│   │   └── joke_skill.py
│   ├── EmailTool.py # Or directly in the directory
│   └── ping_tool.py
├── Tools/ # This is just an example, you can name it whatever you want, you can even nest the directories it does not have to be at the root
│   ├── Foo/ # Can do nested folders, any names
│   │   ├── summarize.py
│   │   └── summarize_pdf.py
│   ├── Bar/
│   │   ├── sendEmail.py
│   │   └── joke_skill.py
│   ├── EmailTool.py # Or directly in the directory
│   └── ping_tool.py
├── SkillLoader.py # Whatever you want to call it
├── .env
└── ...

```

Or any structure you prefer.

---

## How It Works

1. **Model outputs natural language:**
   "Summarize the latest report and update our dashboard."
2. **SkillsManager parses the text** and finds the right skills (whatever you’ve named them).
3. **Skills are executed** and results returned—no schemas, no JSON or TYPED schemas, just Python code.

---

## Example: Comparing Approaches

### 1. With SkillsManager (No Naming Restrictions)

**Behind the scenes:**

* Model outputs: “Summarize PDF, then send summary via email.”
* SkillsManager parses and executes your skills, regardless of how you’ve named or grouped them.
* No decorators, no JSON no TYPED schemas.

---

### 2. Traditional Function/Tool Calling (Provider Schema Required)

* Must define every function and argument as a JSON or TYPED schema.
* Register all with the provider.
* Model outputs strict `function_call` blobs.
* You parse, validate, and execute under the provider’s constraints.

> **SkillsManager does this part for you automatically if you ever need it—no manual schemas, no boilerplate.**

---

## Adding and Organizing Skills

* Drop Python modules into any folder, with any name or grouping.
* Point SkillsManager at those folders in your class (`loadComponents`).
* No JSON or TYPED, no schemas, no required naming—total freedom.

---

## Why Use SkillsManager?

* **Never locked into a provider.**
* **No JSON or TYPED schema maintenance.**
* **Flexible skill organization:** Name and group skills however you want.
* **Production ready:** Clean, scalable, and easy to extend.

---

## FAQ

**Q: Do I need to follow a specific naming or folder structure?**
A: No. You can use any names and any folder hierarchy.

**Q: Can I use this with any LLM PROVIDER?**
A: Yes.

**Q: How does SkillsManager know what to execute?**
A: It parses the model’s plain language output and matches actions to your Python skills, regardless of naming.

**Q: Do I have to write JSON or TYPED schemas or tool definitions?**
A: **Never. SkillsManager auto-generates and manages them for you when required.**

---

## Code Examples

You can find code examples on my [GitHub repository](https://github.com/TristanMcBrideSr/TechBook).

---

## License

This project is licensed under the [Apache License, Version 2.0](LICENSE).
Copyright 2025 Tristan McBride Sr.

---

## Acknowledgements

Project by:
- Tristan McBride Sr.
- Sybil

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "SkillsManager",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "\"Tristan McBride Sr.\" <142635792+TristanMcBrideSr@users.noreply.github.com>",
    "keywords": "AI, Agents, Skills, Tools, Autoload, Productivity, Automation",
    "author": "Tristan McBride Sr.",
    "author_email": "\"Tristan McBride Sr.\" <142635792+TristanMcBrideSr@users.noreply.github.com>",
    "download_url": "https://files.pythonhosted.org/packages/c3/d6/8f7e691f85ec0c1dc17241808e338b873d10815a1c6cc3de3c48841340a1/skillsmanager-0.2.2.tar.gz",
    "platform": null,
    "description": "\ufeff\r\n---\r\n# \u26a0\ufe0f SkillsManager is Deprecated\r\n\r\n> **Deprecation Notice (July 2025):**\r\n>\r\n> - The SkillsManager project is now officially **deprecated** and will receive no further updates.\r\n> - Please use **[SkillLink](https://pypi.org/project/SkillLink/)** for all new development. SkillLink is a direct evolution of SkillsManager, offering the same powerful features plus new improvements and ongoing support.\r\n> - For file or skill syncing, use **[SyncLink](https://pypi.org/project/SyncLink/)**.\r\n>\r\n> | Package       | Purpose                                  |\r\n> | ------------- | ---------------------------------------- |\r\n> | SkillLink     | Advanced LLM skill/action management     |\r\n> | SyncLink      | Modern skill/file syncing utility        |\r\n> | SkillsManager | (Deprecated) \u2013 Use SkillLink instead     |\r\n>\r\n> **SkillLink is fully compatible with SkillsManager. Upgrade today for the latest features and improvements.**\r\n\r\n---\r\n\r\n# SkillsManager \u2013 Natural Language Skills for LLMs (No Vendor Lock-In, No Naming Restrictions)\r\n\r\n## Overview\r\n\r\n**SkillsManager** is a next-generation framework for managing and executing skills/actions with large language models (**LLMs**) using **natural language**\u2014not vendor-bound JSON or TYPED schemas definitions.\r\nUnlike traditional function-calling, SkillsManager lets your LLM output actions in freeform(Natural Language) text. The SkillsManager framework interprets, maps, and executes those actions using your own Python code\u2014no matter what you call your skills/actions or where you store them.\r\n\r\n**Highlights:**\r\n\r\n* **Zero vendor lock-in:** Not tied to any model provider\u2019s format or schema.\r\n* **No naming restrictions:** Name your skills, folders, or groups anything you like\u2014SkillsManager doesn\u2019t care.\r\n* **No JSON schemas:** No decorators, no rigid typing, no endless schema maintenance.\r\n* **Natural language as the interface:** The LLM outputs actions in text, not function\\_call JSON or TYPED.\r\n* **Add/organize skills freely:** Just point SkillsManager at your code\u2014group, reload, or restrict however you want.\r\n* **Centralized execution:** All skill mapping, argument parsing, and execution happens in one place.\r\n\r\n**Backward compatible:**\r\n\r\n* **Want to stick with traditional function calling?** No problem. SkillsManager can still work with JSON and TYPED schemas definitions if you prefer that style.\r\n* **Want to use SkillsManager with existing function calls?** You can still use it alongside traditional function calling, so you can migrate gradually or keep both styles.\r\n\r\n> **NOTE:**\r\n> If you want to use JSON schemas or TYPED definitions (like OpenAI, Gemini, Anthropic, etc.),\r\n> **SkillsManager automatically generates and manages all required schemas for you based on your code and docstrings\u2014**\r\n> **You NEVER have to write, maintain, or register schemas manually.**\r\n\r\n---\r\n\r\n## Why SkillsManager?\r\n\r\nTraditional LLM \u201cfunction calling\u201d means:\r\n\r\n* Rigid function and argument definitions.\r\n* Tedious JSON and TYPED schema management.\r\n* Forced adherence to provider conventions.\r\n* Locked into one vendor\u2019s API.\r\n\r\n**SkillsManager:**\r\n\r\n* Uses only natural language\u2014models describe actions however they want.\r\n* Lets you migrate skills and switch model providers instantly.\r\n* Removes all JSON and TYPED schema headaches.\r\n* Lets you organize, group, and name skills however you want.\r\n\r\n---\r\n\r\n## Key Features\r\n\r\n* **Flexible Skill Loading:**\r\n  Add, reload, or restrict any set of skills, with any folder or group name.\r\n\r\n* **Natural Language Action Parsing:**\r\n  Models output plain English (or any language), and SkillsManager interprets it to execute your code.\r\n\r\n* **Centralized Execution:**\r\n  No scattered registries\u2014skill mapping, argument parsing, and execution are all in one place.\r\n\r\n---\r\n\r\n## Organizing and Naming Your Skills\r\n\r\nThere are **no reserved names, no required folder layout, and no fixed naming conventions** in SkillsManager.\r\nYou control all naming, grouping, and structure\u2014use whatever makes sense for your team, project, or workflow.\r\n\r\n**Examples:**\r\n\r\n* **Refer to SMExamples Directory or the Examples on GitHub:**\r\n\r\n**Just point SkillsManager at any directory or skill group you want\u2014no restrictions, ever.**\r\n\r\n---\r\n\r\n### Example Layouts (ALL are valid)\r\n\r\n```\r\nproject_root/\r\n\u251c\u2500\u2500 Skills/ # This is just an example, you can name it whatever you want, you can even nest the directories it does not have to be at the root\r\n\u2502   \u251c\u2500\u2500 Foo/ # Can do nested folders, any names\r\n\u2502   \u2502   \u251c\u2500\u2500 summarize.py\r\n\u2502   \u2502   \u2514\u2500\u2500 summarize_pdf.py\r\n\u2502   \u251c\u2500\u2500 Bar/\r\n\u2502   \u2502   \u251c\u2500\u2500 sendEmail.py\r\n\u2502   \u2502   \u2514\u2500\u2500 joke_skill.py\r\n\u2502   \u251c\u2500\u2500 EmailTool.py # Or directly in the directory\r\n\u2502   \u2514\u2500\u2500 ping_tool.py\r\n\u251c\u2500\u2500 Tools/ # This is just an example, you can name it whatever you want, you can even nest the directories it does not have to be at the root\r\n\u2502   \u251c\u2500\u2500 Foo/ # Can do nested folders, any names\r\n\u2502   \u2502   \u251c\u2500\u2500 summarize.py\r\n\u2502   \u2502   \u2514\u2500\u2500 summarize_pdf.py\r\n\u2502   \u251c\u2500\u2500 Bar/\r\n\u2502   \u2502   \u251c\u2500\u2500 sendEmail.py\r\n\u2502   \u2502   \u2514\u2500\u2500 joke_skill.py\r\n\u2502   \u251c\u2500\u2500 EmailTool.py # Or directly in the directory\r\n\u2502   \u2514\u2500\u2500 ping_tool.py\r\n\u251c\u2500\u2500 SkillLoader.py # Whatever you want to call it\r\n\u251c\u2500\u2500 .env\r\n\u2514\u2500\u2500 ...\r\n\r\n```\r\n\r\nOr any structure you prefer.\r\n\r\n---\r\n\r\n## How It Works\r\n\r\n1. **Model outputs natural language:**\r\n   \"Summarize the latest report and update our dashboard.\"\r\n2. **SkillsManager parses the text** and finds the right skills (whatever you\u2019ve named them).\r\n3. **Skills are executed** and results returned\u2014no schemas, no JSON or TYPED schemas, just Python code.\r\n\r\n---\r\n\r\n## Example: Comparing Approaches\r\n\r\n### 1. With SkillsManager (No Naming Restrictions)\r\n\r\n**Behind the scenes:**\r\n\r\n* Model outputs: \u201cSummarize PDF, then send summary via email.\u201d\r\n* SkillsManager parses and executes your skills, regardless of how you\u2019ve named or grouped them.\r\n* No decorators, no JSON no TYPED schemas.\r\n\r\n---\r\n\r\n### 2. Traditional Function/Tool Calling (Provider Schema Required)\r\n\r\n* Must define every function and argument as a JSON or TYPED schema.\r\n* Register all with the provider.\r\n* Model outputs strict `function_call` blobs.\r\n* You parse, validate, and execute under the provider\u2019s constraints.\r\n\r\n> **SkillsManager does this part for you automatically if you ever need it\u2014no manual schemas, no boilerplate.**\r\n\r\n---\r\n\r\n## Adding and Organizing Skills\r\n\r\n* Drop Python modules into any folder, with any name or grouping.\r\n* Point SkillsManager at those folders in your class (`loadComponents`).\r\n* No JSON or TYPED, no schemas, no required naming\u2014total freedom.\r\n\r\n---\r\n\r\n## Why Use SkillsManager?\r\n\r\n* **Never locked into a provider.**\r\n* **No JSON or TYPED schema maintenance.**\r\n* **Flexible skill organization:** Name and group skills however you want.\r\n* **Production ready:** Clean, scalable, and easy to extend.\r\n\r\n---\r\n\r\n## FAQ\r\n\r\n**Q: Do I need to follow a specific naming or folder structure?**\r\nA: No. You can use any names and any folder hierarchy.\r\n\r\n**Q: Can I use this with any LLM PROVIDER?**\r\nA: Yes.\r\n\r\n**Q: How does SkillsManager know what to execute?**\r\nA: It parses the model\u2019s plain language output and matches actions to your Python skills, regardless of naming.\r\n\r\n**Q: Do I have to write JSON or TYPED schemas or tool definitions?**\r\nA: **Never. SkillsManager auto-generates and manages them for you when required.**\r\n\r\n---\r\n\r\n## Code Examples\r\n\r\nYou can find code examples on my [GitHub repository](https://github.com/TristanMcBrideSr/TechBook).\r\n\r\n---\r\n\r\n## License\r\n\r\nThis project is licensed under the [Apache License, Version 2.0](LICENSE).\r\nCopyright 2025 Tristan McBride Sr.\r\n\r\n---\r\n\r\n## Acknowledgements\r\n\r\nProject by:\r\n- Tristan McBride Sr.\r\n- Sybil\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Modern manager for AI skills, tools, loading, execution, and automation.",
    "version": "0.2.2",
    "project_urls": {
        "Homepage": "https://github.com/TristanMcBrideSr"
    },
    "split_keywords": [
        "ai",
        " agents",
        " skills",
        " tools",
        " autoload",
        " productivity",
        " automation"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "239e5b57428387c411a5745d50d437a42439a193e155e66351ef2f7035961632",
                "md5": "54cec9e5fc6cea605f1a54cd33668c1f",
                "sha256": "37d0ee7711008d736fda845f90c8d7b7ed9160650e0dcae37dc9866e0cd52e8d"
            },
            "downloads": -1,
            "filename": "skillsmanager-0.2.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "54cec9e5fc6cea605f1a54cd33668c1f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 36260,
            "upload_time": "2025-07-22T20:40:29",
            "upload_time_iso_8601": "2025-07-22T20:40:29.328520Z",
            "url": "https://files.pythonhosted.org/packages/23/9e/5b57428387c411a5745d50d437a42439a193e155e66351ef2f7035961632/skillsmanager-0.2.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c3d68f7e691f85ec0c1dc17241808e338b873d10815a1c6cc3de3c48841340a1",
                "md5": "0c8ade5b4fad1fdb5c2faa18d7252f95",
                "sha256": "8109afb79ee361ec8a1bbce1b94fd7c86ea97e1dd4928f5cdc68681c4bd091c0"
            },
            "downloads": -1,
            "filename": "skillsmanager-0.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "0c8ade5b4fad1fdb5c2faa18d7252f95",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 35197,
            "upload_time": "2025-07-22T20:40:30",
            "upload_time_iso_8601": "2025-07-22T20:40:30.170169Z",
            "url": "https://files.pythonhosted.org/packages/c3/d6/8f7e691f85ec0c1dc17241808e338b873d10815a1c6cc3de3c48841340a1/skillsmanager-0.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-22 20:40:30",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "skillsmanager"
}
        
Elapsed time: 1.89076s