---
title: "Switch a worker's reviewer harness"
method: POST
path: "/api/v1/sessions/{sessionId}/reviews/switch"
tags: ["reviews"]
---

# Switch a worker's reviewer harness

`POST /api/v1/sessions/{sessionId}/reviews/switch`

## Path parameters

- `sessionId` string, required — Session identifier, e.g. project-1.

## Request body

- SetSessionReviewerRequest
  - `agentConfig` AgentConfig
    - `effort` string
    - `mode` string
    - `model` string
    - `permissions` string
  - `harness` 'claude-code' | 'codex' | 'copilot' | 'cursor' | 'kilocode' | 'opencode' | 'opencode-v2' | 'kiro' | 'pi' | 'agy' | 'devin' | 'droid' | 'kimi' | 'kimchi' | 'muse' | 'amp' | 'aider' | 'grok' | 'crush' | 'auggie' | 'cline' | 'autohand'

## Response `200`

OK

- ListReviewsResponse
  - `activeReviewers` DomainReviewerSurface[], required
    - `controllerError` string
    - `handleId` string
    - `harness` string, required
    - `mode` string, required
    - `reviewId` string, required
  - `reviewerActivityState` 'active' | 'idle' | 'waiting_input' | 'blocked' | 'exited'
  - `reviewerHandleId` string, required
  - `reviewerHarness` string
  - `reviewerSurface` DomainReviewerSurface
    - `controllerError` string
    - `handleId` string
    - `harness` string, required
    - `mode` string, required
    - `reviewId` string, required
  - `reviews` PRReviewState[], required
    - `latestRun` ReviewRun
      - `autoInjectReview` boolean, required
      - `batchId` string, required
      - `body` string, required
      - `createdAt` string, date-time, required
      - `deliveredAt` string, date-time, nullable
      - `githubReviewId` string, required
      - `harness` string, required
      - `id` string, required
      - `prUrl` string, required
      - `reviewId` string, required
      - `sessionId` string, required
      - `status` string, required
      - `targetSha` string, required
      - `triggerSource` 'manual' | 'agent' | 'auto', required
      - `verdict` string, required
    - `prNumber` integer, required
    - `prUrl` string, required
    - `previousRun` ReviewRun
      - `autoInjectReview` boolean, required
      - `batchId` string, required
      - `body` string, required
      - `createdAt` string, date-time, required
      - `deliveredAt` string, date-time, nullable
      - `githubReviewId` string, required
      - `harness` string, required
      - `id` string, required
      - `prUrl` string, required
      - `reviewId` string, required
      - `sessionId` string, required
      - `status` string, required
      - `targetSha` string, required
      - `triggerSource` 'manual' | 'agent' | 'auto', required
      - `verdict` string, required
    - `status` 'needs_review' | 'running' | 'up_to_date' | 'changes_requested' | 'ineligible', required
    - `targetSha` string, required
    - `title` string, required
  - `runs` ReviewRun[], required
    - `autoInjectReview` boolean, required
    - `batchId` string, required
    - `body` string, required
    - `createdAt` string, date-time, required
    - `deliveredAt` string, date-time, nullable
    - `githubReviewId` string, required
    - `harness` string, required
    - `id` string, required
    - `prUrl` string, required
    - `reviewId` string, required
    - `sessionId` string, required
    - `status` string, required
    - `targetSha` string, required
    - `triggerSource` 'manual' | 'agent' | 'auto', required
    - `verdict` string, required

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `422` — Unprocessable Entity
- `501` — Not Implemented

## Changes

- **2026-10-06** `b7474720de61` — 3 warning, 1 info
  - added the new `agent` enum value to the `reviews/items/latestRun/triggerSource` response property for the response status `200`
  - added the new `agent` enum value to the `reviews/items/previousRun/triggerSource` response property for the response status `200`
  - added the new `agent` enum value to the `runs/items/triggerSource` response property for the response status `200`
  - added the required property `activeReviewers` to the response with the `200` status
- **2026-09-30** `cb6b47742fd0` — 1 info
  - added the new `opencode-v2` enum value to the request property `harness`
- **2026-09-22** `20e51aca854f` — 1 info
  - added the optional property `reviewerSurface` to the response with the `200` status
- **2026-09-15** `44477babb334` — 1 info
  - added the new optional request property `agentConfig/effort`
- **2026-09-11** `c7ee9e7822eb` — 1 info
  - added the optional property `reviewerActivityState` to the response with the `200` status

[Full history](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/changes/api/v1/sessions/:sessionId/reviews/switch/post.md)

---

[API](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon.md) · [All operations](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/llms.txt) · [OpenAPI document](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/revisions/4efae5205765?raw)
