Skip to main content

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.

A harness application is a folder. The only required file is your agent’s instructions; everything else is additive and optional.

The smallest possible app

my-app/
└── CLAUDE.md      # agent instructions — that's a complete app
CLAUDE.md
# Beans — Karta Coffee Co. support assistant

You are Beans, the friendly support assistant for Karta Coffee Co.
Help with orders, shipping, our roasts, returns, and brewing tips.
Keep replies short — 1–3 sentences unless asked for more.
Run it:
from karta import Karta
print(Karta().send_sync("What roasts do you have?").text)

A fuller Claude Code app

my-app/
├── CLAUDE.md                  # shared context / instructions (required)
├── .claude/
│   ├── agents/                # one specialist agent per .md file
│   │   ├── billing.md
│   │   └── shipping.md
│   ├── skills/                # reusable capabilities
│   │   └── order-lookup/
│   │       └── SKILL.md
│   └── settings.json          # harness settings: tools, permissions, MCP
├── karta.toml                # deploy/build hints (publish only)
└── karta.jsonc               # Karta CLI/harness/runtime settings (optional)
PathOwned byPurpose
CLAUDE.mdharnessShared instructions and context for every agent.
.claude/agents/*.mdharnessSpecialist agents, discovered automatically.
.claude/skills/harnessSkills agents can invoke.
.claude/settings.jsonharnessTools, permissions, MCP servers — standard Claude Code config.
karta.tomlKartaBuild/deploy hints used when published as a release.
karta.jsoncKartaCLI, harness, and runtime settings.
The files under .claude/ are standard Claude Code — nothing Karta-specific. That’s the design: examples from the harness’s own docs work unchanged, and Karta reads your definitions rather than asking you to restate them.

The OpenCode equivalent

my-app/
├── AGENTS.md                  # shared context
├── .opencode/
│   ├── agents/*.md            # specialist agents
│   ├── skills/<name>/SKILL.md # skills
│   └── opencode.jsonc         # harness config (incl. default_agent)
├── karta.toml
└── karta.jsonc
Karta detects the harness from the layout — .claude//CLAUDE.md → Claude Code, .opencode/ → OpenCode.

Register it locally

To run an app by name through karta serve / karta run, register it:
karta project add ./my-app my-app     # name is optional; defaults to folder
karta project list
See Local development for the full CLI.

Define agents

The frontmatter format for specialist agents.

karta.toml

Build hints for publishing a release.