Skip to main content
GET
/
api
/
v1
/
fs
/
ls?uri=viking:
/
agent
/
skills
List Skills
curl --request GET \
  --url 'https://api.example.com/api/v1/fs/ls?uri=viking%3A%2F%2Fagent%2Fskills%2F'
{
  "status": "ok",
  "result": [
    {
      "name": "search-web",
      "uri": "viking://agent/skills/search-web/",
      "type": "directory"
    },
    {
      "name": "calculator",
      "uri": "viking://agent/skills/calculator/",
      "type": "directory"
    },
    {
      "name": "code-runner",
      "uri": "viking://agent/skills/code-runner/",
      "type": "directory"
    }
  ],
  "time": 0.05
}
List all available skills in the knowledge base. Skills can be invoked by agents to perform specific tasks.
Skills are stored at viking://agent/skills/ in the Agent General File System (AGFS).

Authentication

Requires API key authentication via X-API-Key header.

Query Parameters

uri
string
required
The URI to list. Use viking://agent/skills/ to list all skills.
simple
boolean
default:"false"
If true, returns only skill names. If false, returns full metadata.

Response

status
string
Response status (ok or error)
result
array
Array of skills with metadata
time
number
Request processing time in seconds

Example

curl -X GET "http://localhost:1933/api/v1/fs/ls?uri=viking://agent/skills/" \
  -H "X-API-Key: your-key"
{
  "status": "ok",
  "result": [
    {
      "name": "search-web",
      "uri": "viking://agent/skills/search-web/",
      "type": "directory"
    },
    {
      "name": "calculator",
      "uri": "viking://agent/skills/calculator/",
      "type": "directory"
    },
    {
      "name": "code-runner",
      "uri": "viking://agent/skills/code-runner/",
      "type": "directory"
    }
  ],
  "time": 0.05
}

Skill Storage Structure

Each skill is stored as a directory containing:
  • .abstract.md - L0: Brief description
  • .overview.md - L1: Parameters and usage
  • SKILL.md - L2: Full documentation
  • Auxiliary files - Any additional resources

Reading Skill Content

After listing skills, use the content API to read skill documentation at different levels:
uri = "viking://agent/skills/search-web/"

# L0: Brief description
abstract = client.abstract(uri)

# L1: Parameters and usage overview
overview = client.overview(uri)

# L2: Full skill documentation
content = client.read(uri)