Agentic.Skill.Service
(agentic v0.2.2)
Copy Markdown
Workspace-scoped skill management.
Skills are folders in workspace/skills/<name>/ containing a SKILL.md file
(YAML frontmatter + markdown body) and optional scripts/, references/,
and assets/ directories.
Supports installing skills from GitHub repos in owner/repo or
owner/repo/subpath format, and searching via the GitHub code search API.
GitHub Authentication
GitHub API calls work without authentication for public repos (with lower
rate limits). To use authenticated requests, pass a :get_secret callback
in opts:
Service.search("query", get_secret: fn service, key -> {:ok, token} end)The callback receives ("github", "api_key") and should return
{:ok, token} or :error.
Summary
Functions
Analyze a skill's model tier requirements.
Fetch detailed information about a skill from GitHub without installing it.
Install a skill from a GitHub repository into the workspace.
List installed skills with name and description summaries.
Read the full parsed SKILL.md content for an installed skill.
Remove an installed skill from the workspace.
Search for skills using the skills CLI (bun x skills find).
Functions
@spec analyze_model_tier(String.t(), String.t(), keyword()) :: {:ok, %{tier: atom(), reasons: [String.t()]}} | {:error, String.t()}
Analyze a skill's model tier requirements.
If the skill already has model_tier in frontmatter, returns that.
Otherwise runs static analysis and returns the recommended tier with reasons.
Options:
:storage— a%Storage.Context{}
Fetch detailed information about a skill from GitHub without installing it.
The repo_spec can be:
"owner/repo"— looks for SKILL.md at root"owner/repo/path/to/skill"— skill in a subdirectory
Returns skill metadata (name, description, license, compatibility), full instructions, GitHub repo stats (stars, description, last push date, license, language), and the skills.sh audit URL.
Options:
:get_secret— callback for GitHub API authentication- Other options forwarded to
Reqfor testing.
Install a skill from a GitHub repository into the workspace.
The repo_spec can be:
"owner/repo"— installs from repo root (expects SKILL.md at root)"owner/repo/path/to/skill"— installs from a subdirectory
Options:
:storage— a%Storage.Context{}:get_secret— callback for GitHub API authentication- Other options forwarded to
Reqfor testing.
List installed skills with name and description summaries.
Options:
:storage— a%Storage.Context{}(default: local backend for workspace_root)
@spec read(String.t(), String.t(), keyword()) :: {:ok, Agentic.Skill.Parser.parsed_skill()} | {:error, String.t()}
Read the full parsed SKILL.md content for an installed skill.
Options:
:storage— a%Storage.Context{}
Remove an installed skill from the workspace.
Options:
:storage— a%Storage.Context{}
Search for skills using the skills CLI (bun x skills find).
Falls back to GitHub code search API if bun is not available.
The skills CLI does not require authentication.
Options:
:get_secret— callbackfn(service, key) -> {:ok, token} | :error endfor GitHub API authentication. Falls back toGITHUB_TOKENenv var.- Other options forwarded to
Reqfor testing.