# How a request flows (/claude-and-chatgpt-2/architecture/how-a-request-flows)

---
type: Document
title: "How a request flows"
description: "The path of one request in a cloud Claude session, from the app to the model. Also the evidence that the harness is Claude Code in a Firecracker microVM."
status: stable
order: 0.41
ksor:
  owner: team:panaversity
  audience: [ public ]
  approval:
    by: process:panaversity
    at: 2026-11-09T20:42:36Z
chapter: "F00A"
part: Front
expert_status: required
concepts: [ "Request flow" ]
last_verified: 2026-11-09
sources:
  - id: cowork-architecture
    title: "Claude Cowork architecture overview (Anthropic, verified 2026-11-09)"
    resource: https://support.claude.com/en/articles/14479288-claude-cowork-architecture-overview
  - id: code-tab
    title: "Claude Desktop: Code tab docs (Anthropic, verified 2026-11-09)"
    resource: https://code.claude.com/docs/en/desktop?facet1=pdf
  - id: author-inspection
    title: "Panaversity's inspection of a cloud Claude session: a process and environment inspection on November 9, 2026"
    resource: "appendix-reproducing-the-observations.md"
generated:
  at: 2026-11-09T20:42:36Z
  by: process:panaversity
trust_tier: unverified
build_id: sha256:46fd53c5d7ab1c14f6347908d45c9fdaecda4d914439923ee878bdcecd57803e
dirty: true
ksor_version: 0.0.60
---

### The path of one request

![How one request flows in a cloud Claude session. Two-way arrows link the browser or app, the Anthropic backend (sign-in, routing, chat history), the harness (Claude Code, inside the session cloud VM) and the stateless model. From the harness, tool calls go to the VM, Anthropic services, connected apps and your computer. Notes say the harness ran inside the VM in the session examined, and the two roles can also run apart.](img/how-one-request-flows.png)

**[Vendor-documented]** In cloud sessions, the agent loop and the code run on Anthropic's servers.[^cowork-architecture] **[Observed]** The harness is Claude Code. The sandbox is configured to send model requests to Anthropic's API endpoint, the web address that receives requests for the model. **[Inferred]** The backend sits between the UI and the harness. The harness calls the model at each step. It runs the tool calls it gets back, and it repeats this until the model gives a final reply.

Read the figure from left to right. Your message goes to the backend, then to the harness. The harness sends the context to the model. The model sends back text or a tool call. The harness runs a tool call in one of four places and returns the result. Of the four layers (UI, backend, harness and model), only the harness sat inside the VM in the session examined.

### Evidence: Claude Code runs in the VM

**[Observed]** On November 9, 2026, we inspected the session's running programs and environment. Its harness is Claude Code. This is one session. It shows the setup exists, not that every plan or surface uses it. The [appendix](appendix-reproducing-the-observations.md) gives the commands.[^author-inspection]

A few terms help with the table. A **process** is a running program. Each process has a number, its **PID** (process ID). PID 1 is the first program a computer starts. A **child process** is a program that another program started. An **environment variable** is a named setting that programs can read, such as `CLAUDE_CODE_REMOTE=true`.

| Evidence | What it shows |
| --- | --- |
| `/opt/claude-code/bin/claude` is a running process (PID 92) | The Claude Code program itself runs in the VM |
| Shell commands run as its child processes | That Claude Code process starts every Bash tool call |
| It was launched by `environment-manager task-run --session cse_… --session-mode resume` | A session manager starts it for each chat session and resumes it |
| `CLAUDE_CODE_REMOTE=true`, `CLAUDE_CODE_ENTRYPOINT=remote_cowork`, `CLAUDE_CODE_SESSION_ORIGIN=claude_ai_chat` | This is a remote Claude Code session, started from a claude.ai chat |
| `ANTHROPIC_BASE_URL=https://api.anthropic.com` | The environment is configured to send Anthropic API requests to this endpoint. This does not prove where inference physically runs |
| PID 1 is `/process_api --firecracker-init …` | The VM is a Firecracker microVM. Firecracker is the lightweight VM technology behind AWS Lambda |
| PID 1 had been up for about 19 minutes, which puts its start at about 02:26 UTC | Inferred: a new VM after the overnight gap. A paused and restored VM may not count paused time, so this is not proof. See [The sandbox and its state](the-sandbox-and-its-state.md#when-the-vm-is-paused-restored-or-replaced) |

**[Observed]** It is a specially configured Claude Code, not the plain CLI (the program you type into in a terminal). Environment variables set its feature flags, the switches that turn features on or off. They turn on artifacts, memory, background tasks and auto-compaction at 80%. Auto-compaction means the harness shortens the context by itself when it is 80% full.

**[Observed]** The running program reports version 2.1.319, and the `claude` command points to it. The variable `CLAUDE_CODE_VERSION=2.1.42` does not match. The reason is unknown.

### Chat or a task?

**[Observed]** The session was started from a claude.ai chat (`SESSION_ORIGIN=claude_ai_chat`). But its harness reports `ENTRYPOINT=remote_cowork`. **[Inferred]** This chat ran on the cloud runtime behind tasks in a conversation. Anthropic's documents call that runtime Cowork, which is why its Cowork architecture overview applies here. **[Unknown]** Whether every Claude chat runs this way. The desktop documentation still describes separate Chat, Cowork and Code tabs.[^code-tab] The Tour describes the [Code tab and its environments](../tour/claude-code-tab.md) in detail.

[^cowork-architecture]: As verified on November 9, 2026. Claude Cowork architecture overview, Anthropic.
[^author-inspection]: Panaversity's inspection of a cloud Claude session on November 9, 2026. The method is in the appendix.
[^code-tab]: Claude Desktop: Code tab docs, Anthropic.
