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

# Supported harnesses

> The harness formats Karta can detect, scaffold, package, and run.

Karta runs agents that are defined for a supported harness. The agent stays in
that harness's native project layout; Karta detects the layout, packages it as a
release, and runs each turn through that harness.

Use this page to choose the `--harness` value for `karta create`, or to check
whether an existing agent project can be brought to Karta without changing its
file format.

## Current harnesses

| Harness     | CLI value     | Instruction file | Detection signal          |
| ----------- | ------------- | ---------------- | ------------------------- |
| Claude Code | `claude-code` | `CLAUDE.md`      | `.claude/` or `CLAUDE.md` |
| OpenCode    | `opencode`    | `AGENTS.md`      | `.opencode/`              |
| DeepAgents  | `deepagents`  | `AGENTS.md`      | `.deepagents/`            |
| Goose       | `goose`       | `AGENTS.md`      | `.goose/`                 |
| Codex CLI   | `codex-cli`   | `AGENTS.md`      | `.codex/config.toml`      |

For current version availability and exposed capabilities, use the public
dashboard catalog at [`/harnesses`](https://karta.sh/harnesses).

## Create a starter

```bash theme={null}
karta create support-agent --harness claude-code
karta create support-agent --harness opencode
karta create support-agent --harness deepagents
karta create support-agent --harness goose
karta create support-agent --harness codex-cli
```

`karta create` writes the native instruction file and marker directory for the
selected harness. If you already have an agent project, keep its existing
layout and run `karta setup --enable` from that folder.

## Detection rules

Karta detects the harness from the folder layout. If a folder has markers for
more than one harness, declare the harness explicitly in
[`karta.toml`](/build/karta-toml):

```toml theme={null}
[harness]
type = "claude-code"
```

Mixed markers are allowed when you declare the harness, but they are harder for
teammates and CI to reason about. Prefer one harness layout per agent project.

## What changes on Karta

Karta does not translate your agent into a Karta-specific agent format. The
harness still owns the agent loop, tools, MCP connections, context, memory
format, skills, sub-agents, and conversation history. Karta adds release
packaging, durable kartas, sessions, identity, isolation, metering, budgets,
webhooks, audit, and API surfaces around that harness-native project.

<CardGroup cols={2}>
  <Card title="Agent structure" icon="folder-tree" href="/build/agent-structure">
    See the file layout for each supported harness.
  </Card>

  <Card title="karta.toml" icon="file-code" href="/build/karta-toml">
    Declare the harness and deploy settings when auto-detection is not enough.
  </Card>
</CardGroup>
