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

# Fork Workspace Chat

> Continues an existing chat on another coding agent harness in the same workspace. The source chat is left unchanged. Returns as soon as the forked chat exists, with `fork.state` set to `preparing`. The sanitized transcript handoff and the first turn run in the background, after which `fork.state` becomes `ready` or `failed`. The workspace must be active.



## OpenAPI

````yaml /openapi.json post /v1/workspaces/{workspaceId}/chats/{chatId}/fork
openapi: 3.1.0
info:
  title: Replica API
  version: 2.0.0
  description: >-
    The Replica API allows you to programmatically manage cloud workspaces for
    AI agents. Use this API to manage environments (the org-scoped primitive
    workspaces are created from — including variables, files, skills, MCPs, warm
    hooks, start hooks, and warm pools), create and manage replicas, send
    messages, manage chats, stream events, read connected repositories and
    repository sets, and configure automations.
servers:
  - url: https://api.replicas.dev
    description: Production API
security:
  - apiKey: []
tags:
  - name: Environments
    description: >-
      Manage environments — the primitive that workspaces are created from.
      Variables, files, skills, MCPs, warm-hooks, and warm-pools are all scoped
      to an environment. Every organization has a singleton Global environment
      whose values apply to every workspace. Personal environments are scoped to
      the authenticated user and can be standalone or source-backed by a team
      environment.
  - name: Repository
    description: >-
      Read repositories and repository sets connected to your organization.
      Repositories are the underlying GitHub-connection layer; bind them to an
      environment to use them in workspaces.
  - name: Replica
    description: >-
      Manage replicas (workspaces) for AI agents. Workspace creation with `POST
      /v1/replica` accepts API keys and workspace engine-secret authentication.
      Other Replica operations also accept logged-in user JWTs from first-party
      clients.
  - name: Terminal
    description: Manage interactive terminal sessions in active workspaces
  - name: Tunnels
    description: Create short-lived authenticated transports to active workspaces
  - name: Preview
    description: Manage public preview URLs for workspace ports
  - name: Profile
    description: Read and update the authenticated user's profile
  - name: Credentials
    description: >-
      Manage coding-agent credentials for an organization or the authenticated
      user
  - name: Preferences
    description: Manage organization behavior preferences
  - name: Organization roles
    description: >-
      Manage custom roles and member role assignments. Organization admins
      retain full access independently of custom roles.
  - name: Slack
    description: Connect Slack identities and route threads to Replicas workspaces
  - name: Linear
    description: Connect Linear identities to Replicas accounts
  - name: Automation
    description: >-
      Create and manage automations that trigger replicas on a schedule or in
      response to events
  - name: Downloads
    description: Download Replicas applications
  - name: Media
    description: >-
      Read workspace media and obtain short-lived download or inline preview
      URLs
  - name: Analytics
    description: >-
      Read aggregated activity and usage metrics for your organization: compute
      minutes, workspaces created by source, and pull request throughput over a
      time range.
  - name: Presence
    description: >-
      Read and report ephemeral member presence: who is online, where they are
      (environment or workspace), and whether they are typing. Presence is
      backed by short-lived keys rather than the database and broadcast to other
      members over the events stream.
  - name: Plugins
    description: >-
      Install and manage native and Composio-backed workspace plugins. A plugin
      installs for a single environment, for the whole organization (which uses
      the Global environment), or for one member personally. A workspace uses
      the most specific installation available: personal, then its own
      environment, then the environment it was branched from, then Global.
      Composio Connect Links host managed OAuth, custom OAuth, API-key,
      bearer-token, basic, and dynamic OAuth authentication without exposing
      provider credentials to Replicas.
paths:
  /v1/workspaces/{workspaceId}/chats/{chatId}/fork:
    post:
      tags:
        - Replica
      summary: Fork Workspace Chat
      description: >-
        Continues an existing chat on another coding agent harness in the same
        workspace. The source chat is left unchanged. Returns as soon as the
        forked chat exists, with `fork.state` set to `preparing`. The sanitized
        transcript handoff and the first turn run in the background, after which
        `fork.state` becomes `ready` or `failed`. The workspace must be active.
      operationId: forkWorkspaceChat
      parameters:
        - name: workspaceId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: chatId
          in: path
          required: true
          description: Chat to fork from
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ForkChatRequest'
      responses:
        '201':
          description: Forked chat created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForkWorkspaceChatResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: The requested harness is not enabled for this organization
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: >-
            The workspace is not active, or the requested harness has no
            credentials configured in it
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    ForkChatRequest:
      type: object
      description: >-
        Request body for continuing an existing chat on another coding agent
        harness
      properties:
        provider:
          type: string
          enum:
            - claude
            - codex
            - cursor
            - deepseek
            - fx
            - kimi
            - opencode
            - pi
          description: >-
            Harness to continue the chat on. It must have credentials connected
            in the workspace.
        model:
          type: string
          description: Model for the forked chat. Defaults to the harness default.
        thinkingLevel:
          type: string
          enum:
            - low
            - medium
            - high
            - xhigh
            - max
            - ultra
            - ultracode
          description: Reasoning effort for the forked chat
        title:
          type: string
          description: >-
            Title for the forked chat. Defaults to a title derived from the
            source chat.
        id:
          type: string
          format: uuid
          description: Optional client-generated chat ID.
        clientRequestId:
          type: string
          description: Opaque client-chosen id echoed back in the `chat.created` event
        enableInteractiveTools:
          type: boolean
          description: Allow the forked chat's first turn to use interactive tools
      required:
        - provider
    ForkWorkspaceChatResponse:
      type: object
      properties:
        chat:
          $ref: '#/components/schemas/WorkspaceChat'
      required:
        - chat
    WorkspaceChat:
      type: object
      properties:
        id:
          type: string
          format: uuid
        provider:
          type: string
          enum:
            - claude
            - codex
            - cursor
            - deepseek
            - fx
            - kimi
            - muse
            - opencode
            - pi
        title:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        processing:
          type: boolean
        parentChatId:
          type:
            - string
            - 'null'
          format: uuid
        lastMessageText:
          type:
            - string
            - 'null'
        fork:
          description: >-
            Fork lineage and progress, when this chat was forked from another
            chat in the workspace
          oneOf:
            - $ref: '#/components/schemas/ChatFork'
            - type: 'null'
      required:
        - id
        - provider
        - title
        - createdAt
        - updatedAt
        - processing
        - parentChatId
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message
        details:
          type:
            - string
            - 'null'
          description: Additional error details
        code:
          type: string
          description: Machine-readable error code when available
      required:
        - error
    ChatFork:
      type: object
      description: Set on a chat that was forked from another chat in the same workspace
      properties:
        source:
          type: object
          description: The chat this one was forked from
          properties:
            chatId:
              type: string
              format: uuid
            provider:
              type: string
              enum:
                - claude
                - codex
                - cursor
                - deepseek
                - fx
                - kimi
                - opencode
                - pi
            title:
              type: string
          required:
            - chatId
            - provider
            - title
        trigger:
          type: string
          enum:
            - manual
            - auto
          description: >-
            `manual` for a requested fork, `auto` when the source harness hit
            its usage limit and the owner opted into automatic fallback
        reason:
          type: string
          enum:
            - rate_limit
            - out_of_credits
          description: Why an automatic fork happened
        state:
          type: string
          enum:
            - preparing
            - ready
            - failed
          description: >-
            `preparing` while the transcript handoff is assembled; `processing`
            stays true until it leaves this state
        error:
          type: string
          description: Failure reason when `state` is `failed`
        startedAt:
          type: string
          format: date-time
        completedAt:
          type: string
          format: date-time
      required:
        - source
        - trigger
        - state
        - startedAt
  responses:
    BadRequest:
      description: Bad request - Missing or invalid parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized - Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        API key authentication. Obtain your API key from the Replicas dashboard
        under Organization → Settings → API Keys.

````