> ## 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.

# Bring your own - subsystem options

> Every subsystem has a managed option and a bring-your-own path: harness, model, tools, surfaces, deploy pipeline, observability, identity, and brand.

Karta ships a managed option for every subsystem of the platform, with a
bring-your-own path next to it. Use the managed option to get to production
fast; bring your own where your stack, contracts, or compliance require it.
This page maps each subsystem to its documentation.

## Build

| Subsystem       | Managed option                         | Bring your own                                                                                                                                                  | Docs                                                                                                                                      |
| --------------- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| Agent           | Start from a template                  | Any agent folder in a supported harness format; Karta runs it as-is                                                                                             | [Agent structure](/build/agent-structure)                                                                                                 |
| Harness         | Curated, readiness-gated versions      | Choose Claude Code, OpenCode, DeepAgents, Goose, or Codex CLI; your harness config ships in your folder                                                         | [Supported harnesses](/build/supported-harnesses)                                                                                         |
| Model           | Platform models on Karta's key         | Your own provider key (BYOK) across `anthropic`, `openai`, `bedrock`, `vertex`, `openrouter`, `xai`, `google`; custom OpenAI-compatible endpoints and model IDs | [BYOK](/platform/byok)                                                                                                                    |
| Tools           | -                                      | Your MCP servers and tools, declared inside the agent folder with credentials as agent environment variables                                                    | [Agent structure](/build/agent-structure), [Skills](/build/skills)                                                                        |
| Surfaces        | Hosted chat page and embeddable widget | Your own frontend over the session API, the React SDK, or the OpenAI-compatible adapters                                                                        | [Widget quickstart](/sdks/widget/quickstart), [Headless React](/sdks/widget/headless-react), [Adapters](/api-reference/adapters/overview) |
| Deploy pipeline | `karta deploy` and `git push karta`    | Your own CI publishing releases; every deploy is a versioned release with rollback                                                                              | [Deploy loop](/deploy/deploy-loop), [Releases and rollback](/deploy/releases-and-rollback)                                                |

## Run

| Subsystem     | Managed option                     | Bring your own                                    | Docs                                             |
| ------------- | ---------------------------------- | ------------------------------------------------- | ------------------------------------------------ |
| Observability | Console traces view for every org  | OpenTelemetry GenAI export to your own backend    | [Observability](/platform/observability)         |
| Audit         | Immutable audit log in the console | API and CSV export into your own tooling          | [Audit log](/platform/audit-log)                 |
| Spend control | Budgets with hard enforcement      | Per-end-user and per-organization caps you define | [Usage and budgets](/platform/usage-and-budgets) |
| Cloud         | Karta Cloud                        | Run the data plane in your own AWS account        | [BYOC](/enterprise/byoc)                         |

## Serve your users

| Subsystem         | Managed option                       | Bring your own                                                                                                                          | Docs                                                                                 |
| ----------------- | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| End-user identity | Anonymous sessions with a public key | Your app asserts who the user is with backend-minted session tokens or verified embed identity; each user gets their own agent instance | [Widget identity](/sdks/widget/identity), [Session tokens](/security/session-tokens) |
| Brand             | Theme presets                        | Full visual and structural theming per embed key, matched to your product                                                               | [Theming](/sdks/widget/theming)                                                      |
| Metering          | Usage rolled up per organization     | Usage attributed per end user, so you can see and package what every user costs                                                         | [Usage and budgets](/platform/usage-and-budgets)                                     |

## What stays constant

Whatever you swap, four things hold: each agent instance keeps its durable
[workspace and memory](/concepts/instances-and-memory) across sessions and
releases; [sessions and participants](/concepts/sessions-and-participants)
behave the same on every harness; every deploy is a versioned
[release](/concepts/releases) with rollback; and
[tenancy boundaries](/concepts/multi-tenancy) do not move. Swapping a
subsystem never costs an instance its files, memory, or history.

For subsystems not listed here, contact
[hello@karta.sh](mailto:hello@karta.sh).
