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

# Kill Switch

> Top-level emergency controls for halting agents, runs, or missions.

The **Kill Switch** route lives at `/kill-switch` (top-level sidebar entry, separate from settings). Use it to immediately halt a misbehaving agent, runaway run, or compromised mission. Active kill switches are scoped per organization.

## Layout

The page has two sections:

1. **Active kill switches** — table of currently-killed targets with target type, target ID, reason, killed-at timestamp, and a per-row **Revive** button.
2. **Emergency Kill** dialog — opens from the page header. Pick a target type (`agent`, `run`, or `mission`), enter the target ID, and supply a short reason (≤2,000 chars).

The header shows a live count: *"3 Active Kill Switches"*.

## Killing a target

1. Click **Emergency Kill** in the page header.
2. Select target type from the dropdown.
3. Paste the `agent_id`, `run_id`, or `mission_id`.
4. Add a reason. The reason is shown in interventions and audit logs.
5. Click **Kill** to commit.

Once killed, the SDK's `GET /api/v1/kill-switch/check` returns `is_killed: true` and the next `@guarded_action` call raises a `PolicyViolationError`. The blocked attempt is recorded as a `HARD_BLOCK` intervention with the killing user attributed.

<Warning>
  Kill is **immediate** and applies to all SDK clients reading from this org. There is no undo — the only way back is **Revive**.
</Warning>

## Reviving a target

Click **Revive** on the row. The kill switch is marked inactive and the SDK begins allowing actions again. The original kill record is preserved (with `revived_by` and `revived_at` populated) for audit.

## When to use

* **Agent** — a deployed agent is hallucinating, leaking PII, or burning budget. Killing it stops every run currently in flight for that `agent_id`.
* **Run** — a single in-flight run is misbehaving but the agent code is fine; kill the `run_id` to stop just that execution.
* **Mission** — kill all runs that share a mission ID (used for multi-agent or multi-step missions).

## API

The page is a thin client over the kill-switch API:

* `POST /api/v1/kill-switch/kill`
* `POST /api/v1/kill-switch/revive`
* `GET /api/v1/kill-switch/active`
* `GET /api/v1/kill-switch/check`

Full reference: [Platform → Kill Switch API](/platform/kill-switch).

## See also

* [Platform → Kill Switch API](/platform/kill-switch)
* [Console → Interventions](/console/interventions) — kill blocks appear as `HARD_BLOCK`
