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.

karta.toml is an optional file at the root of your harness application. It’s not needed to run locally — it’s read when the app is published as a release, to tell the builder how to run your app.

Example

karta.toml
# Karta deploy manifest.
# `entry_point` is the module:attribute exposing the Karta instance.
entry_point = "app:app"
buildpack = "python"
This is the manifest from the support-bot tutorial: the data plane imports app from app.py to obtain the Karta instance, and the python buildpack tells the builder to synthesize a Python runtime image.

Keys

entry_point
string
The module:attribute that exposes your Karta instance — e.g. app:app means “import app from app.py.” Used by the runtime to load your application.
buildpack
string
The buildpack to synthesize a runtime image from — e.g. python. When present, the builder classifies the release as buildpack and generates a minimal Dockerfile. Omit it (and ship no Dockerfile) to run the file tree directly via file_copy.

Build-kind resolution

The builder picks one of three strategies, in order:
SignalBuild kindWhat happens
A Dockerfile in the repodockerfileBuild the image from your Dockerfile.
buildpack = "…" in karta.tomlbuildpackSynthesize a minimal Dockerfile for that runtime.
neitherfile_copyRun the extracted file tree directly (no image).
Image builds (kaniko spawn + registry push) are currently stubbed; buildpack and dockerfile releases fall back to file_copy execution until image builds are enabled. Detection and the deterministic image_ref are real. See Releases.
The release tarball is validated on materialization — karta.toml is parsed, and the archive is guarded against oversized payloads, too many members, and path traversal before extraction.
Don’t confuse karta.toml (deploy/build hints) with karta.jsonc (CLI, harness, and runtime settings). They serve different stages: karta.toml is for publishing; karta.jsonc is for how the app behaves when it runs.