Skip to main content
Deploy your agent - from the dashboard, a folder upload, a git push, or your CI - and the result is a stable agent endpoint something can talk to, at agent.karta.sh/<org>/<agent>. Each session through that endpoint resolves to the right durable karta: one per user, one or more virtual employees, one per backend job, or another id you choose.

What “deploy” means here

A deploy does two things: it publishes a new, immutable, versioned release of your agent - the skills, tools, sub-agents, and context files - and it makes that release available to the durable kartas behind the agent’s path. The harness (Claude Code, OpenCode, DeepAgents, Goose, Codex CLI, or another supported runtime) is the runtime inside each isolated run environment; the release is what it loads. “Going live” is pointing the agent’s active marker at the new release so the next session starts on it. That framing drives the properties you want:

Immutable, versioned

Every publish produces v1, v2, and so on, tied to a commit SHA. The published artifact for a version is never overwritten.

Atomic activation

Going live is a current_release pointer flip - so rollback is a flip back.

Zero-interruption cutover

In-flight sessions finish on their release; the next session gets the new one. No forced disconnects, no Karta redeploy.

Preview per PR

A pull request records its own ephemeral, auto-expiring preview release.

Native harness layout

The package is the harness’s own layout; the only Karta-specific file is an optional karta.toml for build hints.

Stable agent path

The first publish assigns a durable slug. New releases change the code behind agent.karta.sh/<org>/<agent> - never the slug.

Choose a deploy mode

In a multi-agent repo, Karta builds each folder whose karta.toml has deploy = true.

The end-to-end loop

1

Prepare the agent

Author and test the agent in your own repo, harness, model setup, and evaluation loop. Use karta dev when you want to exercise the same session API and approval surface Karta serves in production.
2

Deploy

Run karta deploy - on first run it provisions the agent, assigns its slug, and wires the karta git remote; thereafter git push karta main is the transparent equivalent. Build progress streams back in the output. A plain folder uploads instead of pushing. If the repo holds multiple agents, one deploy builds every agent whose karta.toml sets deploy = true, each from its own subdirectory. See the CI example.
3

Karta builds

Karta allocates the next version and materializes the artifact, building it from your karta.toml - a Dockerfile, a buildpack runtime, or the file tree run directly - without translating the project out of the harness’s native format.
4

Activate

On a successful production build, Karta flips current_release atomically and records an audit event. A PR build becomes a time-boxed preview instead.
5

Serve & consume

The agent path speaks the session API - create a session, send, stream. The caller supplies or derives the karta id, Karta resumes that durable workspace, attaches an isolated runtime for the turn, and streams the harness events back through the same agent UX.
6

Roll back if needed

Flip current_release back to a prior release; the next session reverts. The path is unaffected. See Releases & rollback.

Why a fixed session protocol

A web app exposes whatever routes its developer invents; every Karta agent exposes the same session protocol. That’s deliberate - a fixed API is why one chat widget can talk to any Karta agent, and why a hosted agent and a local harness session are interchangeable from a client’s point of view. What an agent ships is agent behavior, not custom endpoints.