Skills
Install, publish, and manage skills — reusable agent behaviors and tool sets
/api/agents/{id}/skillsAuthorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Path Parameters
Response Body
application/json
curl -X GET "http://localhost:3013/api/agents/string/skills"{
"skills": [
{
"id": "string",
"name": "string",
"description": "string",
"content": "string",
"type": "remote",
"scope": "global",
"ownerAgentId": "string",
"sourceUrl": "string",
"sourceRepo": "string",
"sourcePath": "string",
"sourceBranch": "string",
"sourceHash": "string",
"isComplex": true,
"allowedTools": "string",
"model": "string",
"effort": "string",
"context": "string",
"agent": "string",
"disableModelInvocation": true,
"userInvocable": true,
"version": 0,
"isEnabled": true,
"systemDefault": true,
"invocationCount": 0,
"lastInvokedAt": "string",
"createdAt": "string",
"lastUpdatedAt": "string",
"lastFetchedAt": "string",
"isActive": true,
"installedAt": "string"
}
],
"total": 0,
"signature": "string"
}/api/agents/{id}/skills/signatureAuthorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Path Parameters
Response Body
application/json
curl -X GET "http://localhost:3013/api/agents/string/skills/signature"{
"hash": "string",
"count": 0,
"generatedAt": "string"
}/api/skillsAuthorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Query Parameters
"full" | "slim"Response Body
application/json
curl -X GET "http://localhost:3013/api/skills"{
"skills": [
{
"id": "string",
"name": "string",
"description": "string",
"content": "string",
"type": "remote",
"scope": "global",
"ownerAgentId": "string",
"sourceUrl": "string",
"sourceRepo": "string",
"sourcePath": "string",
"sourceBranch": "string",
"sourceHash": "string",
"isComplex": true,
"allowedTools": "string",
"model": "string",
"effort": "string",
"context": "string",
"agent": "string",
"disableModelInvocation": true,
"userInvocable": true,
"version": 0,
"isEnabled": true,
"systemDefault": true,
"invocationCount": 0,
"lastInvokedAt": "string",
"createdAt": "string",
"lastUpdatedAt": "string",
"lastFetchedAt": "string"
}
],
"total": 0
}/api/skillsAuthorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "http://localhost:3013/api/skills" \ -H "Content-Type: application/json" \ -d '{ "content": "string" }'{
"skill": {
"id": "string",
"name": "string",
"description": "string",
"content": "string",
"type": "remote",
"scope": "global",
"ownerAgentId": "string",
"sourceUrl": "string",
"sourceRepo": "string",
"sourcePath": "string",
"sourceBranch": "string",
"sourceHash": "string",
"isComplex": true,
"allowedTools": "string",
"model": "string",
"effort": "string",
"context": "string",
"agent": "string",
"disableModelInvocation": true,
"userInvocable": true,
"version": 0,
"isEnabled": true,
"systemDefault": true,
"invocationCount": 0,
"lastInvokedAt": "string",
"createdAt": "string",
"lastUpdatedAt": "string",
"lastFetchedAt": "string"
}
}{
"error": "string",
"property1": null,
"property2": null
}/api/skills/{id}Authorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Path Parameters
Response Body
application/json
application/json
application/json
curl -X DELETE "http://localhost:3013/api/skills/string"{
"success": true
}{
"error": "string",
"property1": null,
"property2": null
}{
"error": "string",
"property1": null,
"property2": null
}/api/skills/{id}Authorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Path Parameters
Response Body
application/json
application/json
curl -X GET "http://localhost:3013/api/skills/string"{
"id": "string",
"name": "string",
"description": "string",
"content": "string",
"type": "remote",
"scope": "global",
"ownerAgentId": "string",
"sourceUrl": "string",
"sourceRepo": "string",
"sourcePath": "string",
"sourceBranch": "string",
"sourceHash": "string",
"isComplex": true,
"allowedTools": "string",
"model": "string",
"effort": "string",
"context": "string",
"agent": "string",
"disableModelInvocation": true,
"userInvocable": true,
"version": 0,
"isEnabled": true,
"systemDefault": true,
"invocationCount": 0,
"lastInvokedAt": "string",
"createdAt": "string",
"lastUpdatedAt": "string",
"lastFetchedAt": "string"
}{
"error": "string",
"property1": null,
"property2": null
}/api/skills/{id}Authorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X PUT "http://localhost:3013/api/skills/string" \ -H "Content-Type: application/json" \ -d '{ "property1": null, "property2": null }'{
"skill": {
"id": "string",
"name": "string",
"description": "string",
"content": "string",
"type": "remote",
"scope": "global",
"ownerAgentId": "string",
"sourceUrl": "string",
"sourceRepo": "string",
"sourcePath": "string",
"sourceBranch": "string",
"sourceHash": "string",
"isComplex": true,
"allowedTools": "string",
"model": "string",
"effort": "string",
"context": "string",
"agent": "string",
"disableModelInvocation": true,
"userInvocable": true,
"version": 0,
"isEnabled": true,
"systemDefault": true,
"invocationCount": 0,
"lastInvokedAt": "string",
"createdAt": "string",
"lastUpdatedAt": "string",
"lastFetchedAt": "string"
}
}{
"error": "string",
"property1": null,
"property2": null
}{
"error": "string",
"property1": null,
"property2": null
}/api/skills/{id}/filesAuthorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Path Parameters
Response Body
application/json
application/json
curl -X GET "http://localhost:3013/api/skills/string/files"{
"files": [
{
"id": "string",
"skillId": "string",
"path": "string",
"mimeType": "string",
"isBinary": true,
"size": 0,
"createdAt": "string",
"lastUpdatedAt": "string"
}
],
"total": 0
}{
"error": "string",
"property1": null,
"property2": null
}/api/skills/{id}/filesAuthorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "http://localhost:3013/api/skills/string/files" \ -H "Content-Type: application/json" \ -d '{ "files": [ { "content": "string", "path": "string" } ] }'{
"files": [
{
"id": "string",
"skillId": "string",
"path": "string",
"content": "string",
"mimeType": "string",
"isBinary": true,
"size": 0,
"createdAt": "string",
"lastUpdatedAt": "string"
}
],
"total": 0,
"skill": {
"id": "string",
"name": "string",
"description": "string",
"content": "string",
"type": "remote",
"scope": "global",
"ownerAgentId": "string",
"sourceUrl": "string",
"sourceRepo": "string",
"sourcePath": "string",
"sourceBranch": "string",
"sourceHash": "string",
"isComplex": true,
"allowedTools": "string",
"model": "string",
"effort": "string",
"context": "string",
"agent": "string",
"disableModelInvocation": true,
"userInvocable": true,
"version": 0,
"isEnabled": true,
"systemDefault": true,
"invocationCount": 0,
"lastInvokedAt": "string",
"createdAt": "string",
"lastUpdatedAt": "string",
"lastFetchedAt": "string"
}
}{
"error": "string",
"property1": null,
"property2": null
}{
"error": "string",
"property1": null,
"property2": null
}/api/skills/{id}/files/{path}Authorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Path Parameters
Response Body
application/json
application/json
curl -X DELETE "http://localhost:3013/api/skills/string/files/string"{
"success": true,
"skill": {
"id": "string",
"name": "string",
"description": "string",
"content": "string",
"type": "remote",
"scope": "global",
"ownerAgentId": "string",
"sourceUrl": "string",
"sourceRepo": "string",
"sourcePath": "string",
"sourceBranch": "string",
"sourceHash": "string",
"isComplex": true,
"allowedTools": "string",
"model": "string",
"effort": "string",
"context": "string",
"agent": "string",
"disableModelInvocation": true,
"userInvocable": true,
"version": 0,
"isEnabled": true,
"systemDefault": true,
"invocationCount": 0,
"lastInvokedAt": "string",
"createdAt": "string",
"lastUpdatedAt": "string",
"lastFetchedAt": "string"
}
}{
"error": "string",
"property1": null,
"property2": null
}/api/skills/{id}/files/{path}Authorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Path Parameters
Response Body
application/json
application/json
curl -X GET "http://localhost:3013/api/skills/string/files/string"{
"file": {
"id": "string",
"skillId": "string",
"path": "string",
"content": "string",
"mimeType": "string",
"isBinary": true,
"size": 0,
"createdAt": "string",
"lastUpdatedAt": "string"
}
}{
"error": "string",
"property1": null,
"property2": null
}/api/skills/{id}/files/{path}Authorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X PUT "http://localhost:3013/api/skills/string/files/string" \ -H "Content-Type: application/json" \ -d '{ "content": "string" }'{
"file": {
"id": "string",
"skillId": "string",
"path": "string",
"content": "string",
"mimeType": "string",
"isBinary": true,
"size": 0,
"createdAt": "string",
"lastUpdatedAt": "string"
},
"skill": {
"id": "string",
"name": "string",
"description": "string",
"content": "string",
"type": "remote",
"scope": "global",
"ownerAgentId": "string",
"sourceUrl": "string",
"sourceRepo": "string",
"sourcePath": "string",
"sourceBranch": "string",
"sourceHash": "string",
"isComplex": true,
"allowedTools": "string",
"model": "string",
"effort": "string",
"context": "string",
"agent": "string",
"disableModelInvocation": true,
"userInvocable": true,
"version": 0,
"isEnabled": true,
"systemDefault": true,
"invocationCount": 0,
"lastInvokedAt": "string",
"createdAt": "string",
"lastUpdatedAt": "string",
"lastFetchedAt": "string"
}
}{
"error": "string",
"property1": null,
"property2": null
}{
"error": "string",
"property1": null,
"property2": null
}/api/skills/{id}/installAuthorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "http://localhost:3013/api/skills/string/install" \ -H "Content-Type: application/json" \ -d '{ "agentId": "string" }'{
"agentSkill": {
"id": "string",
"agentId": "string",
"skillId": "string",
"isActive": true,
"installedAt": "string"
}
}{
"error": "string",
"property1": null,
"property2": null
}/api/skills/{id}/install/{agentId}Authorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Path Parameters
Response Body
application/json
curl -X DELETE "http://localhost:3013/api/skills/string/install/string"{
"success": true
}/api/skills/{id}/usageAuthorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Path Parameters
Query Parameters
"7d" | "30d" | "all"-840 <= value <= 840Response Body
application/json
application/json
curl -X GET "http://localhost:3013/api/skills/string/usage"{
"skillId": "string",
"window": "7d",
"since": "string",
"generatedAt": "string",
"totals": {
"invocations": 0,
"distinctAgents": 0,
"distinctTasks": 0,
"tokens": 0
},
"daily": [
{
"date": "string",
"invocations": 0,
"skills": 0,
"tasks": 0
}
],
"byAgent": [
{
"agentId": "string",
"agentName": "string",
"invocations": 0,
"lastInvokedAt": "string"
}
],
"byHarness": [
{
"key": "string",
"invocations": 0
}
],
"byVia": [
{
"key": "string",
"invocations": 0
}
],
"recent": [
{
"id": "string",
"agentId": "string",
"agentName": "string",
"taskId": "string",
"taskTitle": "string",
"harness": "string",
"via": "string",
"skillVersion": 0,
"tokenCount": 0,
"createdAt": "string"
}
]
}{
"error": "string",
"property1": null,
"property2": null
}/api/skills/install-remoteAuthorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "http://localhost:3013/api/skills/install-remote" \ -H "Content-Type: application/json" \ -d '{ "sourceRepo": "string" }'{
"skill": {
"id": "string",
"name": "string",
"description": "string",
"content": "string",
"type": "remote",
"scope": "global",
"ownerAgentId": "string",
"sourceUrl": "string",
"sourceRepo": "string",
"sourcePath": "string",
"sourceBranch": "string",
"sourceHash": "string",
"isComplex": true,
"allowedTools": "string",
"model": "string",
"effort": "string",
"context": "string",
"agent": "string",
"disableModelInvocation": true,
"userInvocable": true,
"version": 0,
"isEnabled": true,
"systemDefault": true,
"invocationCount": 0,
"lastInvokedAt": "string",
"createdAt": "string",
"lastUpdatedAt": "string",
"lastFetchedAt": "string"
}
}{
"error": "string",
"property1": null,
"property2": null
}/api/skills/sync-filesystemAuthorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Response Body
application/json
curl -X POST "http://localhost:3013/api/skills/sync-filesystem"{
"synced": 0,
"removed": 0,
"errors": [
"string"
],
"message": "string"
}/api/skills/sync-remoteAuthorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "http://localhost:3013/api/skills/sync-remote" \ -H "Content-Type: application/json" \ -d '{}'{
"updated": 0,
"checked": 0,
"errors": [
"string"
]
}/api/skills/usageAuthorization
bearerAuth API key via Authorization: Bearer <API_KEY>
In: header
Query Parameters
"7d" | "30d" | "all"-840 <= value <= 840Response Body
application/json
curl -X GET "http://localhost:3013/api/skills/usage"{
"window": "7d",
"since": "string",
"trackingSince": "string",
"generatedAt": "string",
"totals": {
"invocations": 0,
"distinctSkills": 0,
"distinctAgents": 0,
"distinctTasks": 0,
"unresolved": 0,
"tokens": 0
},
"taskAdoption": {
"tasks": 0,
"tasksWithSkill": 0,
"since": "string"
},
"daily": [
{
"date": "string",
"invocations": 0,
"skills": 0,
"tasks": 0
}
],
"byHarness": [
{
"key": "string",
"invocations": 0
}
],
"bySkill": [
{
"skillId": "string",
"skillName": "string",
"invocations": 0,
"agents": 0,
"tokens": 0,
"lastInvokedAt": "string"
}
],
"agents": [
{
"agentId": "string",
"agentName": "string",
"isLead": true,
"installed": 0,
"installedUsed": 0,
"skillsUsed": 0,
"invocations": 0,
"lastInvokedAt": "string"
}
],
"unused": [
{
"id": "string",
"name": "string",
"scope": "string",
"type": "string",
"systemDefault": true,
"installedEverywhere": true,
"installedAgents": 0,
"invocationCount": 0,
"lastInvokedAt": "string"
}
]
}