Skip to main content

Plug & Play skill framework โ€” connect any LLM to your PC in 3 lines

Project description

๐ŸŒณ Universal Skill Tree (UST)

Plug & Play skill framework โ€” connect any LLM to your PC in 3 lines.

from ust import enable_branch, USTAdapter

enable_branch("system")
agent = USTAdapter(api_key="sk-or-...", model="openai/gpt-4o-mini")
reply = agent.chat_sync("Open Chrome and go to github.com")

The Problem UST Solves

Building a "Jarvis"-style AI agent today means:

  • 80+ packages in requirements.txt
  • Version conflicts, broken installs, dependency hell
  • Hours of setup before writing a single line of agent code

UST separates the Brain (your LLM) from the Hands (the tools).
Install only what you need. Connect in seconds. Works with any LLM.


Installation

# Core only (ultra-light: just httpx + pydantic)
pip install universal-skill-tree

# With PC control skills
pip install 'universal-skill-tree[system]'

# With web search
pip install 'universal-skill-tree[system,web]'

# Everything
pip install 'universal-skill-tree[all]'

Or with uv (faster):

uv add 'universal-skill-tree[system]'

Quick Start

from ust import enable_branch, USTAdapter

enable_branch("system")   # Load PC control skills

agent = USTAdapter(
    api_key="sk-or-...",          # OpenRouter / OpenAI / local
    model="openai/gpt-4o-mini",   # Any OpenAI-compatible model
)

# Sync
reply = agent.chat_sync("What's my CPU usage?")

# Async
import asyncio
reply = asyncio.run(agent.chat("Open Notepad and type Hello World"))

Skill Branches

Branch Skills Install
system Shell commands, CPU/RAM info, mouse/keyboard, screenshots [system]
files Read/write files, PDF, Excel, Word docs [files]
web DuckDuckGo search, webpage fetch, scraping [web]
media System volume, audio control [media]
apps App launcher, process manager [apps]
vision Screenshot + AI analysis [vision]
osint Sherlock, Osintgram, network scans (whois, dns, geoip) [osint]
cyber Sniffnet, Trippy, network packet sniffing [cyber]
crypto Cryptocurrency prices via CCXT [crypto]
selfhosted Awesome-selfhosted apps search and Docker control [selfhosted]
aitools Awesome-ai-tools search [aitools]
agent_skills Awesome-agent-skills search [agent_skills]
mcp Awesome-mcp-servers search, Chrome DevTools MCP [mcp]
ai CrewAI tasks, LiteLLM arbitrary LLM calls [ai]
browser Playwright browser automation [browser]

System Branch โ€” Available Skills

Skill What it does
execute_command Run any shell command (cmd/bash)
get_system_info CPU%, RAM, disk, battery, top processes
manage_processes List / kill / start processes
control_window Minimize, maximize, close, focus windows
control_mouse Move, click, scroll
type_text Type text, keyboard shortcuts
manage_clipboard Read / write clipboard
take_screenshot Screenshot full screen or a region
set_volume Set volume 0โ€“100, mute/unmute (Windows)
open_application Open any app by name or path

Model Context Protocol (MCP) Integration โ€” 100% Plug & Play

UST allows you to easily connect thousands of MCP servers with zero configuration using npx. You can generate configuration blocks or directly launch these directly from your agent.

The "Meta" Tool: Search 4,800+ MCP Servers

{ "command": "npx", "args": ["-y", "a2asearch-mcp"] }

Allows the agent to search and find its own tools.

The "Mega-Pack" (62 tools in one)

{ "command": "npx", "args": ["skills", "add", "blink-new/blink-plugin"] }

Massive infrastructure pack including database, hosting, storage, and authentication tools.

Web Fundamentals

  • Web Fetch: { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-fetch"] }
  • Live Web Search (Brave): { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-brave-search"] }
  • Browser Automation (Puppeteer): { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-puppeteer"] }

Local File & Code Management

  • Filesystem: { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/your/path"] }
  • GitHub: { "command": "npx", "args": ["-y", "@github/mcp-server"] }

Advanced Reasoning & Logic

  • Sequential Thinking: { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"] } (Forces the AI to create a "thinking space" to test hypotheses and self-correct)

Audio & Media

  • Whisper Transcription: { "command": "npx", "args": ["-y", "mcp-whisper-server"] }
  • Microphone (Direct Input): { "command": "npx", "args": ["-y", "mcp-microphone"] }
  • Audio Recorder (Stream): { "command": "npx", "args": ["-y", "mcp-audio-recorder"] }
  • FFmpeg (Media Processing): { "command": "npx", "args": ["-y", "mcp-ffmpeg-server"] }

Infrastructure & Data Science

  • Docker Control: { "command": "npx", "args": ["-y", "mcp-server-docker"] }
  • SQLite Database: { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-sqlite", "--db-path", "database.db"] }

Simply paste any of these block configurations into your mcpServers setting (e.g. claude_desktop_config.json, Cursor, etc) or use the UST MCP skills to interact with them programmatically.


Adapters โ€” Supported LLM Providers

UST supports 4 native adapters out of the box so you can use absolutely any AI model:

  1. USTAdapter (Default OpenAI format) โ€” Works with OpenRouter, OpenAI, LM Studio, Ollama, etc.
  2. GeminiAdapter โ€” Google's modern Gemini SDK (@google/genai equivalent in Python).
  3. LiteLLMAdapter โ€” Over 100+ LLMs (Anthropic, Bedrock, vLLM, etc.) via litellm.
  4. OllamaAdapter โ€” Native local adapter for ollama python package.

1. Default OpenAI-compatible Adapter

# OpenRouter / OpenAI / Local LM Studio
from ust import enable_branch, USTAdapter
enable_branch("system")

# OpenRouter (default)
agent = USTAdapter(api_key="sk-or-...")

# Local LM Studio
agent = USTAdapter(
    api_key="local",
    base_url="http://localhost:1234/v1",
    model="llama-3.2-3b-instruct"
)

2. Gemini Adapter

from ust import enable_branch
from ust.core.gemini_adapter import GeminiAdapter
enable_branch("system")

agent = GeminiAdapter(model="gemini-2.5-flash", api_key="AIzaSy...")
reply = agent.chat_sync("What is my IP address?")

3. LiteLLM Adapter (Anthropic, Bedrock, etc)

from ust import enable_branch
from ust.core.litellm_adapter import LiteLLMAdapter
enable_branch("system")

# Using Anthropic Claude 3.5 Sonnet
agent = LiteLLMAdapter(model="claude-3-5-sonnet-20240620", api_key="sk-ant-...")

4. Native Ollama Adapter

from ust import enable_branch
from ust.core.ollama_adapter import OllamaAdapter
enable_branch("system")

# Requires tool-capable model
agent = OllamaAdapter(model="llama3.1")
reply = agent.chat_sync("Check my battery percentage")

Advanced Usage

from ust import enable_branch, enable_all, status, USTAdapter

# Load only what you need
enable_branch("system")
enable_branch("web")

# Inspect loaded skills
status()

# Multi-turn conversation
history = []
for user_msg in ["Open Chrome", "Go to github.com", "Take a screenshot"]:
    reply = await agent.chat(user_msg, history=history)
    history += [{"role":"user","content":user_msg},
                {"role":"assistant","content":reply}]

# Restrict tools to one branch
reply = await agent.chat("Search for Python news", branch="web")

Project Structure

universal-skill-tree/
โ”œโ”€โ”€ ust/
โ”‚   โ”œโ”€โ”€ __init__.py          โ† enable_branch(), USTAdapter
โ”‚   โ”œโ”€โ”€ core/
โ”‚   โ”‚   โ”œโ”€โ”€ registry.py      โ† Central skill registry
โ”‚   โ”‚   โ”œโ”€โ”€ executor.py      โ† Tool call dispatcher
โ”‚   โ”‚   โ””โ”€โ”€ adapter.py       โ† OpenAI-compatible LLM adapter
โ”‚   โ””โ”€โ”€ skills/
โ”‚       โ”œโ”€โ”€ system/          โ† PC control (10 skills)
โ”‚       โ”œโ”€โ”€ files/           โ† File management
โ”‚       โ”œโ”€โ”€ web/             โ† Web search & scraping
โ”‚       โ”œโ”€โ”€ media/           โ† Audio/video control
โ”‚       โ”œโ”€โ”€ apps/            โ† App launcher
โ”‚       โ”œโ”€โ”€ vision/          โ† Screenshot + vision
โ”‚       โ”œโ”€โ”€ osint/           โ† Sherlock, Osintgram
โ”‚       โ”œโ”€โ”€ cyber/           โ† Sniffnet, Trippy, Scapy
โ”‚       โ”œโ”€โ”€ crypto/          โ† Crypto tools
โ”‚       โ”œโ”€โ”€ selfhosted/      โ† Awesome-selfhosted search & Docker tools
โ”‚       โ”œโ”€โ”€ aitools/         โ† Awesome-ai-tools search
โ”‚       โ”œโ”€โ”€ agent_skills/    โ† Awesome-agent-skills search
โ”‚       โ”œโ”€โ”€ mcp/             โ† MCP servers search & Chrome DevTools
โ”‚       โ”œโ”€โ”€ browser/         โ† Playwright browser
โ”‚       โ””โ”€โ”€ ai/              โ† CrewAI and LiteLLM wrappers
โ”œโ”€โ”€ examples/
โ”‚   โ””โ”€โ”€ openrouter_agent.py  โ† Demo in 3 lines
โ””โ”€โ”€ pyproject.toml

License

MIT โ€” free to use, modify, and distribute.

Project details


Download files

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

Source Distribution

universal_skill_tree_naneg-0.1.0.tar.gz (34.6 kB view details)

Uploaded Source

Built Distribution

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

universal_skill_tree_naneg-0.1.0-py3-none-any.whl (44.4 kB view details)

Uploaded Python 3

File details

Details for the file universal_skill_tree_naneg-0.1.0.tar.gz.

File metadata

File hashes

Hashes for universal_skill_tree_naneg-0.1.0.tar.gz
Algorithm Hash digest
SHA256 03c0a6e8700f154ed6024d21526397bb30cde986b62013ec18be750533ec2a78
MD5 c767bf266ed6487d1482af6553a1476b
BLAKE2b-256 277cbc0560971495348c3bfd716b0596f82759369734f087e311eb5661baecc2

See more details on using hashes here.

File details

Details for the file universal_skill_tree_naneg-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for universal_skill_tree_naneg-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7c98fafccc2eb03af53a9d9f978d92ff5122f9fd9f08cd424417d92b9d558f15
MD5 1d384f99899f3135252551d8bd9448a0
BLAKE2b-256 41a8ff205279bfcfc506bb64786d8335395e18ff947c2e2567a9856b04dba590

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page