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.
kortix_version: 2
project:
name: acme-ops
sandbox:
image: .kortix/Dockerfile
agents:
support-triage:
connectors: [slack, linear]
skills: [ticket-triage, kortix-memory]
triggers:
- type: cron
schedule: "0 8 * * *"
agent: support-triage
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 source. 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.yaml 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.yaml holds secrets, sandbox images, triggers, connectors, and channels. Versioned from the first commit.
kortix_version: 2
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 infrastructure to set up.
Every session is its own VM on its own branch, booting the runtime and your repo. Spawn thousands in parallel with 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, or 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 use.
$ kortix initScaffold kortix.yaml + .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. Start millions in parallel; nothing collides.
Kortix connectors put 3,000+ apps — plus any MCP, OpenAPI, GraphQL, or raw HTTP endpoint — behind one Executor interface that 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. It is 100% extensible, controllable, and 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.