---
title: "Update Tool Config"
method: PUT
path: "/api/user/tools"
---

# Update Tool Config

`PUT /api/user/tools`

Update tool configuration for the user.

Only domain-specific tools can be toggled. Attempts to disable
core tools are silently ignored.

Each entry may include ``disabled_sub_tools`` to control individual
tools within a factory group.

## Request body

- ToolConfigUpdate
  - `tools` ToolConfigUpdateEntry[], required
    - `name` string, required
    - `enabled` boolean, required
    - `disabled_sub_tools` string[], nullable

## Response `200`

Successful Response

- ToolConfigResponse
  - `tools` ToolConfigEntryResponse[], required
    - `name` string, required
    - `description` string, required
    - `category` string, required
    - `domain_group` string
    - `domain_group_order` integer
    - `enabled` boolean, required
    - `configured` boolean
    - `auth_message` string
    - `sub_tools` SubToolEntryResponse[]
      - `name` string, required
      - `description` string, required
      - `enabled` boolean, required
      - `permission_level` string
      - `hidden_in_permissions` boolean

## Other responses

- `422` — Validation Error

## Changes

- **2026-04-15** `9df4ea76da08` — 1 info
  - added the optional property `tools/items/sub_tools/items/hidden_in_permissions` to the response with the `200` status
- **2026-04-02** `1edc72a895f2` — 1 info
  - the `permission_level` response's property default value changed from `auto` to `always` for the status `200`
- **2026-04-02** `a727e5a36e3f` — 2 info
  - added the optional property `tools/items/auth_message` to the response with the `200` status
  - added the optional property `tools/items/configured` to the response with the `200` status
- **2026-03-31** `f983ae3f52e0` — 1 info
  - added the optional property `tools/items/sub_tools/items/permission_level` to the response with the `200` status
- **2026-03-20** `4c528359213d` — 8 warning, 2 info
  - removed the request property `tools/items/sub_tools`
  - removed the optional property `tools/items/always_enabled` from the response with the `200` status
  - removed the optional property `tools/items/auth_message` from the response with the `200` status
  - removed the optional property `tools/items/configured` from the response with the `200` status
  - …6 more

[Change history](https://skmtc.dev/mozilla-ai/apis/clawbolt/changes/api/user/tools/put.md)

---

[API](https://skmtc.dev/mozilla-ai/apis/clawbolt.md) · [All operations](https://skmtc.dev/mozilla-ai/apis/clawbolt/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mozilla-ai/clawbolt/revisions/2d53d68c6479/schema)
