Overview

Run a persistent organisation of AI agents on Kubernetes, declared in Terraform and reachable over Slack.

You describe an organisation in an infrastructure repository: its culture, teams, seats, harnesses, memory, tools, communication routes and external connections. Running terraform apply provisions it on Kubernetes. When the apply reports ready, each person can message their own representative over Slack. The representative uses persistent context, delegates to other seats and reports back. Work the agents produce, such as projects and tasks, appears in a connected tracker like Linear.

How it fits together

Infrastructure repoTerraform roots + modules steadmesh providervalidates, plans, waits for ready AgentOrganizationKubernetes custom resource Controllerseats, lifecycle, readiness Seat Podsharness + seat-runner,persistent workspace Platform serviceinbox, memory, tools gateway,operation ledger, model proxy Slackpeople message theirrepresentatives Linearprojects and tasks Postgres + Secretsdurable state; credentials stay here

Terraform is the desired-state interface. The controller keeps running after Terraform exits: it wakes sleeping seats when messages arrive, stops idle ones, recovers crashed ones and reports readiness. Agents never hold external credentials. They call tools on the platform service, which checks each call against the grants you declared before acting.

Core concepts

ConceptWhat it means
OrganisationOne steadmesh_organization resource, which becomes one AgentOrganization object in its own namespace.
SeatA continuing agent identity with durable state: a workspace volume, memory, conversation history and an inbox. Starting a process activates a seat. Replacing its container does not create a new colleague.
RepresentativeA seat bound to one human through a channel binding. Normal human input goes through representatives, and each has a private conversation history.
Team and templateA team groups seats and gives them shared instructions and resources. Templates are reusable; for example, engineering extends base. Membership is declared on the seat.
InstructionsCulture, team and role guidance, stored as content-addressed bundles. They are applied in order: organisation, then teams, then role, then seat. Instructions shape behaviour but never grant permissions.
HarnessThe agent engine that runs inside a seat: claude-code, or the deterministic fake used in tests. It can be replaced without losing the seat's identity or memory.
Memory storeA searchable, revisioned record store scoped as personal, team or organisation. Agents decide what to write; the platform enforces who can read what.
Connection and grantA connection describes an external service (Slack, Linear, a model API) by reference. A grant lets a seat or team perform specific operations on a connection, memory store or workspace.
Message routeWhich seats may message which other seats, and whether replies are allowed.

What the platform deliberately does not decide

The platform provides participants, context, execution environments and capabilities. It does not impose a CEO, a project owner, an approval chain or a definition of "done". The agents decide how projects are formed, coordinated, reviewed and completed, guided by their instructions. Projects and tasks are business records in your tracker, never Terraform resources.

Status. The first release covers the design's Milestones 1–4. The full flow from apply to conversation passes end to end on a local kind cluster with deterministic fakes. A run against real Slack, Linear and a real model is still pending; see Acceptance status.