Skills API

Installed skills — the tool-providing units competencies depend on. Fully live.

Endpoints

MethodPathActionDescription
GET/skillsAgentListList installed skills (excludes platform-bundled ones)
POST/skills/installSkillInstallInstall a skill from a local path
GET/skills/{id}AgentListGet skill detail

There is no dedicated SkillRead action — list/detail are gated on the same broadly-readable AgentList action as most other read endpoints. SkillInstall is admin/operator/developer.


GET /skills

curl -H "Api-Version: v1" -H "Authorization: Bearer hzn_sk_..." \
  http://localhost:4200/skills

Response (200) — SkillInfo[]

{
  "skills": [
    {
      "id": "postgresql-connector",
      "name": "PostgreSQL Connector",
      "version": "2.1.0",
      "tools": ["query", "list_tables", "describe_table", "execute"],
      "runtime": "Wasm",
      "bundled": false
    }
  ]
}

Platform-bundled (compile-time embedded) skills are filtered out of this list entirely (bundled: true skills never appear here).


POST /skills/install

curl -X POST -H "Api-Version: v1" -H "Authorization: Bearer hzn_sk_..." \
  -H "Content-Type: application/json" \
  -d '{"path": "/opt/hoziron/packages/custom-tool"}' \
  http://localhost:4200/skills/install

Response (201)

{"id": "custom-tool"}

GET /skills/{id}

Response (200) — SkillDetail

{
  "id": "postgresql-connector",
  "name": "PostgreSQL Connector",
  "version": "2.1.0",
  "description": "PostgreSQL database query and schema tools",
  "tools": [
    {
      "name": "query",
      "description": "Execute a read-only SQL query",
      "input_schema": {"type": "object", "properties": {"sql": {"type": "string"}}}
    }
  ],
  "runtime": "Wasm",
  "requirements": {}
}

Note tools here is an array of full tool definitions ({name, description, input_schema}), not just an array of tool-name strings as the summary GET /skills response's tools field is.