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

# Use Claude Agent as a harness lane

> Qualify a Claude Agent SDK adapter without changing the Agent, Environment, or Session model.

`claude-code` is a replaceable harness lane inside Checkfu's canonical product
model. It is not another Agent type, deployment object, transcript, or policy
authority.

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
Agent → AgentVersion
+ Environment
→ Session → Run → RunAttempt
```

First complete the [hosted quickstart](/getting-started/quickstart). It teaches
the canonical Agent, Environment, Session, and event path without making a
particular harness a prerequisite.

<Warning>
  This flow runs from a Checkfu source checkout.
  Part of this flow is behind a rollout fence; a deployment that has not enabled it refuses the request rather than running it.
  Confirm [capability status](/getting-started/status) before making availability part of your application's contract.
</Warning>

## Prepare and qualify the lane

Build the reviewed adapter image from the Checkfu source checkout:

```sh theme={"theme":{"light":"github-light","dark":"github-dark"}}
pnpm --filter @checkfu/harness-managed-adapter image:build --harness claude-code
```

Keep the immutable image digest printed by the command.

Follow [Bring a custom harness](/guides/bring-a-custom-harness) for the exact
image, protocol, conformance, and evidence workflow. Low-level release and
registration records are execution-lane artifacts only. They never replace the
AgentVersion or Environment frozen by Session admission.

The adapter's supported model wire must match the admitted model route. Provider credentials stay at the trusted model boundary and never enter the image or harness configuration.

## Create the Agent and start a Session

Create or update the Agent through the current Agent operation. A material
change creates the next immutable AgentVersion automatically; there is no
separate Draft, Release, deployment, or publish lifecycle.

Select the Environment separately when starting the Session:

```ts theme={"theme":{"light":"github-light","dark":"github-dark"}}
const session = await checkfu.sessions.create({
  agent: { type: "agent", id: agent.id },
  environment_id: environment.id,
})

await checkfu.sessions.events.send(session.id, {
  type: "user.message",
  payload: {
    content: "Describe the capabilities and limits of this execution lane.",
    caused_by: { kind: "api" },
  },
})
```

Authenticated server context supplies durable actor attribution. Read
settlement from the ordered Session event log rather than process exit, stream
closure, or harness-native narration.

## Support boundary

Qualification applies to one exact immutable tuple. It does not make this lane
a global default or prove every capability, provider, retention posture, or
execution locus. Re-check [capability status](/getting-started/status) before
using it in production.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.