Skip to content

Sources

Skills, rules, and subagents can come from five source types.

Source types

Source Syntax Use case
path { path = "./local/dir" } Local development, workspace-local assets
git { git = "https://...", tag = "v1.0" } Pinned remote repositories
url { url = "https://...file.md" } Raw files from the internet
registry { registry = "smithery", name = "pkg" } Named registries (future)
system { system = "name" } Personal system store

GitHub shorthand

For git-hosted skills, theta supports a compact syntax:

theta add skill owner/repo@ref
theta add skill owner/repo/subdirectory@ref
theta add skill tamarillo/skills/osint@main

This expands to { git = "https://github.com/owner/repo", subdirectory = "...", rev = "..." }.

Source types per resource

Resource path git url registry system
Skills yes yes yes future yes
Rules yes yes yes
Subagents (ref) yes

Rules use src (a LocalOrGitRef) instead of source (a SourceRef). The rule src field accepts a plain string (local path), a git table, or a system table — but not url or registry.

Resolution

Sources are resolved during theta lock:

  • path: verified to exist, content-hashed
  • git: fetched to ~/.cache/theta/git/, commit SHA pinned
  • system: resolved from ~/.local/share/theta/store/, content-hashed
  • url: fetched (future)
  • registry: resolved (future)