Agents, skills, tools, connectors, schedules — all just files in a repo. Edit them in your IDE, run them locally, ship to the cloud with one command. Open source, self-hostable, yours.
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 = trueDescribe 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.
One repo, one config, one command. The whole path, top to bottom.
One line installs the CLI. kortix init scaffolds kortix.toml and .kortix/, wired to your coding agent.
An agent is markdown — a persona, its model, and its tools. Skills are folders it loads on demand. Edit them by hand, or describe what you want and let your coding agent write them.
---
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.kortix.toml holds secrets, sandbox images, triggers, connectors, and channels. Versioned from the first commit.
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"kortix ship commits, pushes, builds the sandbox, and prompts for missing secrets. Triggers and channels go live immediately — no separate infra to stand up.
Every session is its own VM on its own branch, booting the runtime and your repo. Spawn thousands in parallel — zero interference. A change request is the only way work reaches main, so everything is reviewable and reversible.
Sessions run on an open runtime. Bring your own keys — Anthropic, OpenAI, local — or use Kortix compute. Nothing about the runtime is hidden.
Scaffold, ship, run, automate, connect and review — one CLI does it all. The same binary is pre-authenticated inside every sandbox, so agents drive Kortix with the exact commands you do.
$ kortix initScaffold kortix.toml + .kortix/
$ kortix shipCommit, push, link & go live
$ kortix validateType-check your manifest
$ kortix sessionsSpawn & manage sandbox sessions
$ kortix chatTalk to a session's agent
$ kortix filesBrowse the repo, diffs & branches
$ kortix triggersCron & webhook automations
$ kortix channelsConnect Slack & chat surfaces
$ kortix connectorsWire up 3,000+ tools
$ kortix secretsManage encrypted secrets
$ kortix envPull / push as dotenv
$ kortix crOpen, review & merge change requests
$ kortix accessInvite, grant & revoke access
$ kortix self-hostRun your own Kortix cloud
$ kortix hosts useSwitch cloud ↔ local
$ kortix providersBring your own model keys
Every session runs in its own isolated sandbox — real, isolated compute — on its own Git branch off main. Spin up millions in parallel; nothing collides.
Kortix connectors put 3,000+ apps — plus any MCP, OpenAPI, GraphQL or raw HTTP endpoint — behind a single Executor interface your agents call like any other tool.
+ 3,000 more via Pipedream
Because everything is code in a repo, the system can read its own blueprint, extend itself, and stay healthy as it grows. 100% extensible, controllable, self-hostable — nothing is a black box.
Agents, skills, tools, connectors and schedules live in the repo. Edit in your IDE, in the web UI, or let an agent edit them.
Describe a change and an agent ships it — referencing what already exists, reusing patterns, opening a PR you review.
Non-devs publish skills as markdown; Kortix handles the branch, PR and merge behind the scenes. Versioned, reviewable, auditable.
When a token expires or a service blips, Kortix refreshes it or asks you to reconnect in plain language — never a cryptic error.
Type checks, lint, docs validation and dedup run before anything merges, so a fast-moving, agent-written codebase stays coherent.
The UI is a reference, not a requirement. Anything you can do in a menu, you can do with a message.