# Karta > Heroku for harness applications — ship, serve, and meter agent harnesses like Claude Code and OpenCode. ## Docs - [Anthropic Managed Agents](https://docs.karta.sh/api-reference/adapters/managed-agents.md): Event-sourced managed-agent sessions — post user events, stream a replayable agent.* event log, and confirm tool use. - [OpenAI Chat Completions](https://docs.karta.sh/api-reference/adapters/openai-chat-completions.md): Drive a Karta project with the classic OpenAI Chat Completions messages-array shape. - [OpenAI Responses](https://docs.karta.sh/api-reference/adapters/openai-responses.md): Drive a Karta project with the OpenAI Responses API shape, including previous_response_id continuation. - [Consumer adapters](https://docs.karta.sh/api-reference/adapters/overview.md): Talk to a Karta project with the OpenAI or Anthropic SDK you already use — same turn, re-framed into familiar wire formats. - [Authentication](https://docs.karta.sh/api-reference/authentication.md): Three credential types — API keys, session tokens, and (internal) service tokens — and where each one is valid. - [Errors](https://docs.karta.sh/api-reference/errors.md): HTTP status codes Karta returns, what each means, and how errors surface mid-stream. - [Gateway](https://docs.karta.sh/api-reference/gateway.md): Submit events into the gateway and deliver them to local participants — the substrate for multi-participant and cross-instance messaging. - [Inputs](https://docs.karta.sh/api-reference/inputs.md): Resolve an approval prompt a turn paused on — approve once, approve for the session, or deny. - [API reference](https://docs.karta.sh/api-reference/introduction.md): The Karta data plane HTTP API — sessions, streaming, gateway, and OpenAI- and Anthropic-shaped consumer adapters. - [Messages](https://docs.karta.sh/api-reference/messages.md): Send a turn into a session — accumulated JSON, or a streamed sequence of typed SSE events. - [Sessions](https://docs.karta.sh/api-reference/sessions.md): Create, fetch, and resume sessions — on the flat route family and the project route family. - [Configuration](https://docs.karta.sh/build/configuration.md): karta.jsonc — optional CLI, harness, and runtime settings that tune how your app behaves at run time. - [Defining agents](https://docs.karta.sh/build/defining-agents.md): The Markdown-with-frontmatter format for specialist agents, shared by Claude Code and OpenCode. - [karta.toml reference](https://docs.karta.sh/build/karta-toml.md): Build and deploy hints for publishing a harness application as a release. - [Project structure](https://docs.karta.sh/build/project-structure.md): Lay out a harness application file by file — the one required file, and everything that's additive. - [Skills](https://docs.karta.sh/build/skills.md): Reusable agent capabilities, defined in your harness's native skill format and discovered automatically. - [The karta CLI](https://docs.karta.sh/cli/overview.md): Run, serve, and develop harness applications locally — every karta command, with examples. - [Projects & sessions](https://docs.karta.sh/cli/projects-and-sessions.md): Register harness apps locally and inspect live sessions from the terminal. - [Agents](https://docs.karta.sh/concepts/agents.md): Specialist agents defined in your harness's native format, discovered automatically, routed and handed off at runtime. - [Architecture](https://docs.karta.sh/concepts/architecture.md): Two independently-deployed planes, a deliberate trust boundary between them, and a streaming-first request path. - [Gateway](https://docs.karta.sh/concepts/gateway.md): Unified event ingestion and fan-out delivery — in-process for a single Karta, and across instances over HTTP. - [Harness applications](https://docs.karta.sh/concepts/harness-applications.md): What you actually ship: a folder that configures an agent harness — and how Karta detects and runs it. - [Multi-tenancy](https://docs.karta.sh/concepts/multi-tenancy.md): Two isolation models matched to two deployment realities — process-isolated workspaces, and a shared server with auth-enforced org scoping. - [Core concepts](https://docs.karta.sh/concepts/overview.md): The vocabulary the rest of the docs assume — harnesses, harness applications, sessions, agents, the gateway, and releases. - [Releases](https://docs.karta.sh/concepts/releases.md): Immutable, versioned snapshots of a harness application — built once, activated by an atomic pointer flip, rolled back the same way. - [Sessions & participants](https://docs.karta.sh/concepts/sessions-and-participants.md): Multi-turn conversation handles, multi-party messaging, and per-sender attribution — without Karta storing a single message. - [Streaming events](https://docs.karta.sh/concepts/streaming-events.md): The typed event model every Karta surface is built on — text, tool use, reasoning, steps, approvals, errors, and done. - [The deploy loop](https://docs.karta.sh/deploy/deploy-loop.md): Ship → serve → consume: publish a harness application, get a project URL that speaks the session API, and drive it from a frontend. - [Releases & rollback](https://docs.karta.sh/deploy/releases-and-rollback.md): Deploy a new release and roll back to a previous one — from the CLI, from CI, and over the API. - [Karta](https://docs.karta.sh/index.md): Heroku for harness applications. Ship an agent harness like Claude Code or OpenCode, get a live URL that speaks a uniform session API — metered, multi-tenant, and billable. - [API keys](https://docs.karta.sh/platform/api-keys.md): Stripe-style kt_live_ bearer tokens — how they're shaped, scoped, validated, and kept secret. - [Audit log](https://docs.karta.sh/platform/audit-log.md): An immutable, append-only record of every material mutation — locked at both the application and database level. - [BYOK — bring your own key](https://docs.karta.sh/platform/byok.md): Use your own model-provider key, encrypted at rest, fetched per-request, and rotated with one call. - [Usage & budgets](https://docs.karta.sh/platform/usage-and-budgets.md): How Karta meters tokens and cost, enforces hard caps, and returns 402 before running over budget. - [Webhooks](https://docs.karta.sh/platform/webhooks.md): Receive signed, retried event notifications from Karta — Stripe-compatible HMAC signatures, with an SSRF-hardened delivery path. - [Quickstart](https://docs.karta.sh/quickstart.md): From an empty folder to a live, hosted agent with its own URL and chat widget — in under 10 minutes. - [Hooks & policies](https://docs.karta.sh/sdks/python/hooks-and-policies.md): React to lifecycle events, and gate messages against configurable policies. - [KartaHub](https://docs.karta.sh/sdks/python/hub.md): The multi-tenant orchestrator — one isolated workspace and Karta instance per (tenant, user). - [Karta](https://docs.karta.sh/sdks/python/karta.md): The orchestrator — construct it, discover agents, send and stream turns, register hooks, set policies. - [Python SDK](https://docs.karta.sh/sdks/python/overview.md): karta-python — embed Karta in-process, serve it over HTTP, or run it from the CLI. - [Session](https://docs.karta.sh/sdks/python/sessions.md): The multi-turn handle returned by app.session() — participants, agent handoff, send/stream, and resolving approvals. - [@karta/cli](https://docs.karta.sh/sdks/typescript/cli.md): The npm CLI for the hosted platform — authenticate, deploy releases, roll back, and stream logs. - [@karta/sdk](https://docs.karta.sh/sdks/typescript/management.md): The TypeScript client for account operations — API keys, BYOK, webhooks, usage, and billing. - [Personas & trust boundaries](https://docs.karta.sh/security/personas.md): Who Karta is for, the credential each actor holds, and the trust lines that separate them. - [Session tokens](https://docs.karta.sh/security/session-tokens.md): The short-lived, project-scoped credential your backend mints so an end user's browser can talk to a Karta project — without ever holding an API key. - [Trust & compliance](https://docs.karta.sh/security/trust.md): Encryption, authentication hardening, rate limiting, and the platform's security posture. - [Tutorial: build a support bot](https://docs.karta.sh/tutorials/support-bot.md): A complete local walkthrough — three personas, a streaming chat widget, no cloud. Operator runs Karta, a developer ships an app, an end user chats. ## Optional - [GitHub](https://github.com/karta/karta) - [Status](https://karta.sh/trust)