Skip to main content

Overview

Skill loaders discover and load skills from various sources. Pass one or more loaders to Skills():
from upsonic.skills import Skills, LocalSkills, BuiltinSkills

skills = Skills(loaders=[
    BuiltinSkills(),
    LocalSkills("./my-skills"),
])
When multiple loaders provide a skill with the same name, later loaders override earlier ones.

Available Loaders

LocalSkills

Load skills from local filesystem directories. Supports single skill folders or parent directories with multiple skills.

BuiltinSkills

Use skills bundled with Upsonic — code-review, summarization, and data-analysis. No setup required.

InlineSkills

Define skills programmatically in code using Skill objects — no filesystem needed.

GitHubSkills

Download skills from GitHub repositories. Supports private repos, branch selection, and local caching.

URLSkills

Load skills from remote zip or tar archives via HTTP. Supports custom headers for authentication.

Combining Loaders

Mix and match loaders to layer skills — start with defaults, add shared skills, then apply project-specific overrides:
from upsonic import Agent, Task
from upsonic.skills import Skills, LocalSkills, BuiltinSkills, GitHubSkills

skills = Skills(loaders=[
    BuiltinSkills(),                                  # Base: built-in skills
    GitHubSkills(repo="myorg/shared-skills"),          # Shared team skills
    LocalSkills("./project-skills"),                   # Project overrides
])

agent = Agent(
    model="anthropic/claude-sonnet-4-6",
    name="My Agent",
    role="Development Assistant",
    goal="Help with development tasks",
    skills=skills,
)

task = Task(description="Analyze this code for quality issues and summarize the findings.")
result = agent.print_do(task)

Remote Loader Caching

All remote loaders (GitHubSkills, URLSkills) cache downloads locally to avoid repeated network requests:
ParameterTypeDefaultDescription
cache_dirstr~/.upsonic/skills_cache/Directory for cached downloads
cache_ttlint3600Cache TTL in seconds (1 hour)
validateboolTrueValidate skills on load
force_refreshboolFalseBypass cache and re-download