One kortix.toml. One Git repo.
Your entire AI workforce, as code.

hardcodedUi.autoAppPublicMarketingDevelopersPageJsxTextAgentsSkillsTools813c489d

$ curl -fsSL https://kortix.com/install | bash
Read the docs
the repo is the product
acme-ops/
kortix.toml
.kortix/
opencode/
agents/
support-triage.md
skills/
ticket-triage/
tools/
web_search.ts
Dockerfile
kortix.tomldeclare it once
name = "acme-ops"

[sandbox]
image = ".kortix/Dockerfile"

[[agents]]
name   = "support-triage"
model  = "anthropic/claude-opus-4-8"
skills = ["ticket-triage", "kortix-memory"]

[[triggers]]
type     = "cron"
schedule = "0 8 * * *"
agent    = "support-triage"

[connectors]
slack  = true
linear = true
kortix
$
The thesis

The coding-agent loop, for real work

Describe intent, an agent edits files, you review the diff. Kortix runs that same loop for support, ops, and research.

Agents are sandboxes

Every agent runs in its own disposable cloud VM, on its own git branch. Spin up thousands in parallel — nothing is shared between runs.

Work is code

Agents, skills, triggers, connectors and policies are plain files in one repo. Diff them, review them in a change request, roll them back.

You own the stack

Open and source-available. Self-host the exact same stack, bring your own runtime and model keys. No black box, no lock-in.

The loop

From curl to production

One repo, one config, one command. The whole path, top to bottom.

01

Install & scaffold

One line installs the CLI. kortix init scaffolds kortix.toml and .kortix/, wired to your coding agent.

$ curl -fsSL https://kortix.com/install | bash
init
kortix init
kortix.toml
.kortix/opencode/
02

Build it locally, like code

hardcodedUi.autoAppPublicMarketingDevelopersPageJsxAttrBodyAnAgentd3ac5ad4

support.md
---
description: Acme's support agent. Resolves tickets end to end.
mode: primary
model: anthropic/claude-opus-4-8
tools:
  lookup_order: true
---

You are Acme's support agent. Resolve customer tickets
end to end, with full product and order context.

Issue refunds under $500 on your own. Anything higher
goes to a human for approval.
03

Declare the project in one manifest

kortix.toml holds secrets, sandbox images, triggers, connectors, and channels. Versioned from the first commit.

kortix.toml
kortix_version = 1

[project]
name = "acme"

# the OpenCode runtime config dir
[opencode]
config_dir = ".kortix/opencode"

# a trigger runs itself, on a schedule
[[triggers]]
slug = "daily-digest"
type = "cron"
agent = "research"
cron = "0 0 9 * * 1-5"
prompt = "Summarize yesterday across Slack & Linear"

# connect a tool's API as agent tools
[[connectors]]
slug = "stripe"
provider = "http"
base_url = "https://api.stripe.com"

# answer where your team works
[[channels]]
platform = "slack"
agent = "support"
04

Ship it

hardcodedUi.autoAppPublicMarketingDevelopersPageJsxAttrBodyKortixShipef9c33ee

kortix ship
kortix ship
committed & pushed tomain
secrets synced · sandbox built
live — triggers & channels running
05

It runs as a fleet of sandboxes

hardcodedUi.autoAppPublicMarketingDevelopersPageJsxAttrBodyEverySession6d5c7d97

main ──────●────────●────────●────▶
├─ session 1f3a sandbox ─╮
├─ session 9b22 sandbox ─┤ change
├─ session 4e07 sandbox ─┤ requests
└─ … ×1000 sandboxes ─╯
review → merge → main
06

Bring your own runtime & model

hardcodedUi.autoAppPublicMarketingDevelopersPageJsxAttrBodySessionsRund6d02c3d

$ kortix providers login anthropic
using your own key(byo)
# or point at any runtime / model
$ kortix providers set --model opus-4.8
$ kortix providers set --model gpt-5
One CLI

The whole lifecycle, one CLI

hardcodedUi.autoAppPublicMarketingDevelopersPageJsxTextScaffoldShipRunb35564e3

Scaffold & ship

$ kortix init

Scaffold kortix.toml + .kortix/

$ kortix ship

Commit, push, link & go live

$ kortix validate

Type-check your manifest

Run & talk

$ kortix sessions

Spawn & manage sandbox sessions

$ kortix chat

Talk to a session's agent

$ kortix files

Browse the repo, diffs & branches

Automate

$ kortix triggers

Cron & webhook automations

$ kortix channels

Connect Slack & chat surfaces

Connect

$ kortix connectors

Wire up 3,000+ tools

$ kortix secrets

Manage encrypted secrets

$ kortix env

Pull / push as dotenv

Review

$ kortix cr

Open, review & merge change requests

$ kortix access

Invite, grant & revoke access

Operate

$ kortix self-host

Run your own Kortix cloud

$ kortix hosts use

Switch cloud ↔ local

$ kortix providers

Bring your own model keys

Full CLI reference
Scale

1 session = 1 sandbox = 1 branch

hardcodedUi.autoAppPublicMarketingDevelopersPageJsxTextEverySessionRuns6dd000d3

  • Anything worth keeping comes back as a change request — and merges into main
  • Main is always the source of truth: every agent action is auditable Git history
  • It’s all Git under the hood — branch, diff, review, merge
  • The same Kortix CLI runs inside every sandbox — so running locally and in the cloud is identical
  • Isolated compute per session; one runaway agent can’t touch another
git log --graph
* c7e2 CR #84 merged (main)
|\
| * s_7f2a triage 14 tickets
| * s_3c1d build board deck
| * s_9a04 draft outreach
|/
* a1f3 baseline (main)
… millions of branches, one source of truth
Connectors

Every tool, behind one interface

hardcodedUi.autoAppPublicMarketingDevelopersPageJsxTextKortixConnectorsPut612736c1

  • 3,000+ one-click apps via Pipedream — OAuth handled for you
  • Or bring any MCP, OpenAPI, GraphQL or HTTP endpoint — same interface
  • Credentials live server-side and never reach the sandbox
  • Agents hold one scoped Kortix token; connect once, shared org-wide, self-healing
connectors · request path
AppMCPOpenAPIGraphQLHTTP
sandboxagent runtime
only a scoped token leaves the box
KORTIX_TOKEN
Kortix Executorconnect proxy · gateway
SlackSlack
GitHubGitHub
SalesforceSalesforce
NotionNotion
StripeStripe
LinearLinear

+ 3,000 more via Pipedream

It's all code

A platform that improves itself

hardcodedUi.autoAppPublicMarketingDevelopersPageJsxTextBecauseEverythingIsd6715079

Everything is files

Agents, skills, tools, connectors and schedules live in the repo. Edit in your IDE, in the web UI, or let an agent edit them.

Agents edit themselves

Describe a change and an agent ships it — referencing what already exists, reusing patterns, opening a PR you review.

Skills, git-backed and invisible

Non-devs publish skills as markdown; Kortix handles the branch, PR and merge behind the scenes. Versioned, reviewable, auditable.

Self-healing integrations

When a token expires or a service blips, Kortix refreshes it or asks you to reconnect in plain language — never a cryptic error.

Quality gates built in

Type checks, lint, docs validation and dedup run before anything merges, so a fast-moving, agent-written codebase stays coherent.

Every feature is a conversation

The UI is a reference, not a requirement. Anything you can do in a menu, you can do with a message.

Start building

Ship your first internal agent

Install the CLI, run kortix init, and deploy the agent you already use.
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
kortix
Kortix – The AI Command Center for Your Company