---
title: "Switch a plugin off or back on for one agent or one chat [write]"
method: PUT
path: "/plugins/{name}/off"
---

# Switch a plugin off or back on for one agent or one chat \[write\]

`PUT /plugins/{name}/off`

## Request

- Base URL: `https://api.agentsky.dev/v1`
- URL: `https://api.agentsky.dev/v1/plugins/{name}/off`
- Auth: HTTP bearer

Exactly one of `agent_id` (the agent's list, AgentSpec pluginsOff, written as PATCH /agents/{id} pluginsOff) or `session_id` (the chat's own list). Available to a chat = added to the workspace − off for its agent − off for the chat. Tools, connected apps and chat apps stop at once (a call answers 403 plugin_off); skills and MCP servers from the chat's next start. `off: false` only takes the plugin out of that list; it never adds what the workspace has not added. A tool is named by its group (tool:exa.web) or one capability (tool:exa.search). A merged product's first id switches every id of it (app:slack_v2 also writes app:slack, app:slack_bot and chat:slack); an alias switches only itself. Mac features and browser logins are 422 not_switchable.

## Path parameters

- `name` string, required

## Request body

- object
  - `agent_id` string
  - `session_id` string
  - `off` boolean, required

## Response `200`

OK

- object
  - `plugin_id` string, required
  - `off` boolean, required
  - `agent_id` string
  - `session_id` string
  - `plugins_off` string[], required: That agent's or chat's whole list after the switch

## Other responses

- `default`: Error — { error: { code, message, request_id } }

## Changes

- **2026-11-02** `e5e8f0229a99`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/agentsky/apis/agentsky-developer-api/changes/plugins/:name/off/put.md)

---

[API](https://skmtc.dev/agentsky/apis/agentsky-developer-api.md) - [All operations](https://skmtc.dev/agentsky/apis/agentsky-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/agentsky/apis/agentsky-developer-api/revisions/8280a065ef6a?raw)
