---
title: "Update a skill"
url: https://hexelstudio.com/docs/api/compute/skills/update
---

# Update a skill

**PUT** `/compute/v1/skills/{name}`

Updates an existing skill definition and recomputes content hash

## Path parameters

- `name: string`

  Skill name

## Headers

- `Authorization: string`

  `Bearer <token>`. STS access token. Obtain via POST https://sts.hexelstudio.com/token with X-API-Key header.

## Body parameters

- `content: string`

- `description: optional string`

- `name: string`

- `resources: optional map[string]`

  Resources are files written into /workspace/skills/<name>/.
Include "requirements.txt" to install Python dependencies at VM boot.

## Returns

`200` OK (`Skill`)

- `content: optional string`

- `content_hash: optional string`

- `created_at: optional string`

- `description: optional string`

- `name: optional string`

- `resources: optional map[string]`

- `updated_at: optional string`

## Errors

- `400` Bad Request
- `500` Internal Server Error

## Example

```bash
curl --request PUT \
  --url 'https://compute.hexelstudio.com/compute/v1/skills/{name}' \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{
  "content": "string",
  "description": "string",
  "name": "string",
  "resources": {
    "key": "string"
  }
}'
```

### Response (200)

```json
{
  "content": "string",
  "content_hash": "string",
  "created_at": "2026-01-01T00:00:00Z",
  "description": "string",
  "name": "string",
  "resources": {
    "key": "string"
  },
  "updated_at": "2026-01-01T00:00:00Z"
}
```

### Response (400)

```json
{
  "code": 0,
  "error_code": "string",
  "message": "string"
}
```

### Response (500)

```json
{
  "code": 0,
  "error_code": "string",
  "message": "string"
}
```
