hardcodedUi.autoAppPublicMarketingDevelopersPageJsxTextAgentsSkillsTools813c489d
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.
hardcodedUi.autoAppPublicMarketingDevelopersPageJsxAttrBodyAnAgentd3ac5ad4
---
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"hardcodedUi.autoAppPublicMarketingDevelopersPageJsxAttrBodyKortixShipef9c33ee
hardcodedUi.autoAppPublicMarketingDevelopersPageJsxAttrBodyEverySession6d5c7d97
hardcodedUi.autoAppPublicMarketingDevelopersPageJsxAttrBodySessionsRund6d02c3d
hardcodedUi.autoAppPublicMarketingDevelopersPageJsxTextScaffoldShipRunb35564e3
$ 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
hardcodedUi.autoAppPublicMarketingDevelopersPageJsxTextEverySessionRuns6dd000d3
hardcodedUi.autoAppPublicMarketingDevelopersPageJsxTextKortixConnectorsPut612736c1
+ 3,000 more via Pipedream
hardcodedUi.autoAppPublicMarketingDevelopersPageJsxTextBecauseEverythingIsd6715079
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.