> ## Documentation Index
> Fetch the complete documentation index at: https://hub.hcompany.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> H Platform has four products: the Agents API (managed computer-use agents, base URL https://agp.eu.hcompany.ai/api/v2 or https://agp.hcompany.ai/api/v2 for the US), the Models API (OpenAI-compatible Holo vision-language models at https://api.hcompany.ai/v1), HoloDesktop CLI (Holo on the user's own desktop), and HoloTab (a free no-code Chrome extension that runs Holo in the user's browser, with recordable routines and schedules).
> Authenticate with a bearer API key from the HAI_API_KEY environment variable. SDKs: `pip install hai-agents` (Python, `from hai_agents import Client`) and `npm install hai-agents` (TypeScript, `import { HaiAgentsClient } from "hai-agents"`). CLI: `hai`.
> Agents do work in a browser or on a desktop; describe the task as an imperative instruction. To run a task quickly, prefer the pre-built agent `h/web-surfer-flash`. Read results from the session's `latest_answer` after it reaches a terminal status.
> Sessions are the unit of work; wait for a terminal status (completed, failed, timed_out, interrupted) before reading the answer. Use webhooks or the `changes` long-poll endpoint to follow progress.

# Update a skill

> Edit a skill's description or body. Agents pick up the change on their next session.

Replaces a skill's whole content. Agents pick up the change on their next session. Renames are not supported. To change a few fields, use [Patch](/agents-api/skills/patch).

**Returns** the updated [skill object](/agents-api/skills/retrieve#response).

## Path parameters

<ParamField path="name" type="string" required>
  The skill's `name` (e.g. `extract-table-data` or `myorg/web-helper`). Slash-containing names are supported.
</ParamField>

## Request body

The full skill, with the same fields and rules as [Create a skill](/agents-api/skills/create#request-body). The `name` must equal the URL identifier. Omitted fields reset to their defaults, not their stored values.

## Examples

<CodeGroup>
  ```bash cURL theme={"system"}
  curl -X PUT https://agp.eu.hcompany.ai/api/v2/skills/extract-table-data \
    -H "Authorization: Bearer $HAI_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "extract-table-data",
      "description": "Extract data from HTML tables, with CSV output support.",
      "body": "When you encounter an HTML table, extract all rows into JSON or CSV format based on the user request."
    }'
  ```

  ```python Python theme={"system"}
  from hai_agents import Client

  client = Client()

  skill = client.skills.update_skill(
      name_="extract-table-data",
      name="extract-table-data",
      description="Extract data from HTML tables, with CSV output support.",
      body="When you encounter an HTML table, extract all rows into JSON or CSV format based on the user request.",
  )
  print(skill.description)
  ```

  ```typescript TypeScript theme={"system"}
  import { HaiAgentsClient } from "hai-agents";

  const client = new HaiAgentsClient();

  const skill = await client.skills.updateSkill({
    name: "extract-table-data",
    body: {
      name: "extract-table-data",
      description: "Extract data from HTML tables, with CSV output support.",
      body: "When you encounter an HTML table, extract all rows into JSON or CSV format based on the user request.",
    },
  });
  console.log(skill.description);
  ```
</CodeGroup>

```json Response theme={"system"}
{
  "name": "extract-table-data",
  "description": "Extract data from HTML tables, with CSV output support.",
  "body": "When you encounter an HTML table, extract all rows into JSON or CSV format based on the user request.",
  "source": null,
  "url_pattern": null
}
```

## Errors

| Status | Cause |
| - | - |
| `400` | The `name` in the body does not match the URL identifier (renames are not supported). |
| `403` | The skill is reserved (`h/`) and read-only. |
| `404` | Skill not found or you don't have access. |
| `422` | Body failed validation. Common cases: empty `body`. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.