# Theo · Skills > Skills are the unit of reusable intelligence on Theo. A skill bundles a prompt, the right knowledge, the right tools, an optional workflow, and a manifest that describes when it should fire. Authored once, installed across every AI Worker, versioned like code. Source of truth: https://hitheo.ai/studio. Last updated: 2026-05-24. ## At a glance - Three publish scopes: private, organization, public marketplace. - Per-API-key skill bindings (api_key_skills table) so a key can be locked to an allowlist. - Skill router runs per-turn to pick which installed skills inject prompt extensions / knowledge / vision for the current request. - Skill manifest declares: name, description, keyword triggers, intensity, modelPreference, tools, knowledge, prompt extensions, regulated facts, and template hints. ## How skills are activated on a request 1. The orchestrator loads the user's installed skills. 2. The skill binding for the API key intersects the installed set (empty binding = inherit-all). 3. Caller-supplied skill slugs in the request body are added to the active set if installed. 4. The skill router scores each candidate against keyword triggers, intensity, manifest fast-path heuristics, and (if needed) a fast Haiku classifier. Top scores survive into the active set; the rest are dropped from prompt extension but their tools remain registered. 5. The orchestrator surfaces a "Skill router" tool run with the candidates and the selected set. ## Skill binding (per-API-key allowlist) - GET /api/v1/keys/{id}/skills returns the current binding. - PUT /api/v1/keys/{id}/skills replaces it. Empty = inherit-all; non-empty = strict allowlist. - Mutating a binding is gated by manageApiKeys permission and a visibility check that skills are public, authored by the caller, or org-scoped. - Audit: key.skills.updated. Webhook event: key.skills.updated (org-scoped only). ## Skill router cascade 1. Intensity-100 skill always wins (operator pinned a skill to "always fire"). 2. Manifest fast-path. Score each candidate against keyword triggers + name + description + category + slug. Top score must clear a floor and beat the runner-up by ≥1. 3. Fast LLM fallback returns at most two slugs (or "none-apply"). 4. Keyword-trigger matches always survive into the active set even if the router would otherwise drop them. ## Marketplace The public marketplace is browsable at /dashboard/skills. Skills can be filtered by category, vertical, and tool surface. Skills declared "public" are reviewed before listing. ## Knowledge attachment A skill can attach Knowledge Node files (10MB / file, 100 files / skill, 50K-token runtime budget, P1–P5 priority weighting). At runtime, the knowledge-resolver fetches the extracted text and injects it into the system prompt within the budget. See https://hitheo.ai/llms/studio.txt. ## Related machine-readable files - https://hitheo.ai/llms.txt — full index of every Theo machine-readable file. - https://hitheo.ai/llms-full.txt — long-form knowledge bundle (single fetch). - https://hitheo.ai/humans.txt — team and open-source credits. - https://hitheo.ai/lawyers.txt — trademark notice and legal contact. - https://hitheo.ai/.well-known/security.txt — security disclosure contact.