Skip to content

Manage agent skills within a workspace: browse the public marketplace, create, read, update, and delete custom skills, and toggle built-in skills on or off. Skills are reusable instructions that the agent can invoke via exec_user_script; this page documents the CRUD and discovery operations that back that workflow.


Returns the ground truth list of scripts available to the agent via exec_user_script.

{
"all": ["git-status", "run-tests", "lint-code"],
"agent": ["git-status", "lint-code"]
}
Terminal window
curl -X GET https://api.hoody.com/api/v1/exec-skills \
-H "Authorization: Bearer <token>"

GET /api/v1/workspaces/{workspaceID}/skills/marketplace

Section titled “GET /api/v1/workspaces/{workspaceID}/skills/marketplace”

Browse skills from the skillsmp.com marketplace. Results are cached for 5 minutes.

This endpoint takes a path parameter.

NameInTypeRequiredDescription
workspaceIDpathstringYesThe workspace identifier.
{
"skills": [
{
"name": "code-review-assistant",
"description": "Performs a structured code review on a pull request.",
"author": "skillsmp",
"tags": ["review", "quality"],
"downloads": 12453
},
{
"name": "sql-query-builder",
"description": "Builds safe, parameterized SQL queries from natural language.",
"author": "skillsmp",
"tags": ["database", "sql"],
"downloads": 8912
}
],
"total": 2
}
Terminal window
curl -X GET https://api.hoody.com/api/v1/workspaces/ws_8f3a1b/skills/marketplace \
-H "Authorization: Bearer <token>"

GET /api/v1/workspaces/{workspaceID}/skills/{name}

Section titled “GET /api/v1/workspaces/{workspaceID}/skills/{name}”

Get a skill by name with its full content.

NameInTypeRequiredDescription
workspaceIDpathstringYesThe workspace identifier.
namepathstringYesThe name of the skill.
{
"name": "code-review",
"description": "Reviews staged changes and reports potential issues.",
"location": "/workspaces/ws_8f3a1b/skills/code-review/SKILL.md",
"content": "# Code Review\n\nReview the diff and summarize findings by severity.",
"scope": "project",
"editable": true,
"enabled": true,
"builtin": false
}
Terminal window
curl -X GET https://api.hoody.com/api/v1/workspaces/ws_8f3a1b/skills/code-review \
-H "Authorization: Bearer <token>"

PUT /api/v1/workspaces/{workspaceID}/skills/{name}

Section titled “PUT /api/v1/workspaces/{workspaceID}/skills/{name}”

Create a new skill or update an existing one. scope is only used on create; changing a skill’s scope requires deleting and recreating it.

NameInTypeRequiredDescription
workspaceIDpathstringYesThe workspace identifier.
namepathstringYesThe name of the skill.
NameTypeRequiredDescription
descriptionstringYesA human-readable description of what the skill does.
contentstringYesThe skill body (typically Markdown instructions).
scopestringNoThe skill scope. One of project or global. Default: "project".
enabledbooleanNoWhether the skill is enabled.
{
"description": "Reviews staged changes and reports potential issues.",
"content": "# Code Review\n\nReview the diff and summarize findings by severity.",
"scope": "project",
"enabled": true
}
{
"name": "code-review",
"description": "Reviews staged changes and reports potential issues.",
"location": "/workspaces/ws_8f3a1b/skills/code-review/SKILL.md",
"content": "# Code Review\n\nReview the diff and summarize findings by severity.",
"scope": "project",
"editable": true,
"enabled": true,
"builtin": false
}
Terminal window
curl -X PUT https://api.hoody.com/api/v1/workspaces/ws_8f3a1b/skills/code-review \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"description": "Reviews staged changes and reports potential issues.",
"content": "# Code Review\n\nReview the diff and summarize findings by severity.",
"scope": "project",
"enabled": true
}'

PATCH /api/v1/workspaces/{workspaceID}/skills/{name}

Section titled “PATCH /api/v1/workspaces/{workspaceID}/skills/{name}”

Partially update an existing skill. At least one of description or content must be provided.

NameInTypeRequiredDescription
workspaceIDpathstringYesThe workspace identifier.
namepathstringYesThe name of the skill.
NameTypeRequiredDescription
descriptionstringNoA human-readable description of what the skill does.
contentstringNoThe skill body (typically Markdown instructions).
enabledbooleanNoWhether the skill is enabled.
{
"description": "Reviews staged changes and reports potential issues, with severity grouping.",
"enabled": false
}
{
"name": "code-review",
"description": "Reviews staged changes and reports potential issues, with severity grouping.",
"location": "/workspaces/ws_8f3a1b/skills/code-review/SKILL.md",
"content": "# Code Review\n\nReview the diff and summarize findings by severity.",
"scope": "project",
"editable": true,
"enabled": false,
"builtin": false
}
Terminal window
curl -X PATCH https://api.hoody.com/api/v1/workspaces/ws_8f3a1b/skills/code-review \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"description": "Reviews staged changes and reports potential issues, with severity grouping.",
"enabled": false
}'

PATCH /api/v1/workspaces/{workspaceID}/skills/builtin/{name}

Section titled “PATCH /api/v1/workspaces/{workspaceID}/skills/builtin/{name}”

Enable or disable a built-in skill.

NameInTypeRequiredDescription
workspaceIDpathstringYesThe workspace identifier.
namepathstringYesThe name of the built-in skill.
NameTypeRequiredDescription
enabledbooleanYesWhether the built-in skill should be enabled.
{
"enabled": true
}
{
"name": "web-search",
"description": "Performs a web search and summarizes the top results.",
"location": "/builtin/skills/web-search/SKILL.md",
"content": "# Web Search\n\nUse web_search to find current information.",
"scope": "project",
"editable": false,
"enabled": true,
"builtin": true
}
Terminal window
curl -X PATCH https://api.hoody.com/api/v1/workspaces/ws_8f3a1b/skills/builtin/web-search \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"enabled": true
}'

DELETE /api/v1/workspaces/{workspaceID}/skills/{name}

Section titled “DELETE /api/v1/workspaces/{workspaceID}/skills/{name}”

Delete an editable skill by name.

NameInTypeRequiredDescription
workspaceIDpathstringYesThe workspace identifier.
namepathstringYesThe name of the skill.
{
"success": true
}
Terminal window
curl -X DELETE https://api.hoody.com/api/v1/workspaces/ws_8f3a1b/skills/code-review \
-H "Authorization: Bearer <token>"