Documentation Core concepts

Components, explained

Long-running remote agents, reusable project Cells, and the boundaries around their work.

Product guide · implementation in progress

On this page

Status: introductory product guide. This page explains the approved architecture, not a claim that every component is implemented or qualified. See the feature milestones for current implementation status.

Cella is designed for agents that work over time on a remote PC, server, or dedicated environment under explicit permissions. The same model supports everyday development with reusable project Cells and narrower task-specific Cells. Cella separates the place where an agent works from the authority it can use. Start with Cells, then follow how the controller, isolation boundary, and communication components work together.

Looking up a name? The glossary defines the complete product vocabulary, common aliases, and supporting modules with examples and links.

What is a Cell?

A Cell is a Cella-managed, isolated execution environment. It has an identity, a role, admitted inputs, explicit permissions, resource limits, and a lifecycle. Wall creates and contains the environment; cellad coordinates its use.

A Cell is the place where a workload runs. Agent Cell, Service Cell, and Analysis Job Cell describe different roles for that environment.

For example, an Agent Cell can contain a coding agent, a private copy of source code, and build tools. A separate Service Cell can run the application that the agent needs to test. The agent does not gain access to the application's secrets simply because it can send an approved request to that application.

A Cell Record preserves the logical Cell's identity and history. A Cell Generation identifies one admitted execution boundary with fixed inputs and permissions. Changing those admitted properties requires a new generation. Its Generation Manifest records the admitted properties; Observed Status reports changing facts such as whether it is running, stopped, or quarantined.

Further reading: Cell identity and properties.

Long-running agents and everyday development

The primary use case is a remote or dedicated machine where an agent can keep working between operator visits. The operator defines the workspace, tools, service access, external actions, and budgets. The intended workflow lets the agent work within that authority, pause for a required decision, and leave inspectable state and evidence for the operator's return.

Everyday development uses the same boundaries. A developer can explicitly select an existing project Cell for another task or create a separate Cell with narrower permissions. A Cell can be useful across many development sessions; its purpose is not limited to one disposable agent invocation.

Use case What continues What stays bounded
Long-running remote agent Cell identity, authorized work, retained task state, and execution history Permissions, resource budgets, approval requirements, and each execution's authority
Everyday project development A deliberately selected Cell and eligible retained workspace or checkpoint Source bindings, tool access, service access, and delivery permissions
Focused task A separate Cell configured for a narrower purpose Its own inputs, permissions, data grants, and lifetime

What reusing a Cell means

Reuse means selecting the same logical Cell deliberately. It does not mean matching a host directory and silently restoring an old session. Each Run is an attributable execution attempt. A compatible generation may be reused when its admitted inputs remain valid; a security-relevant change to policy, source, declared runtime/tool profile, adapter, or secret bindings requires a new generation.

The retained Agent Cell keeps its workspace, scripts, permitted workspace-local tools and dependencies, conversation/context state, and task state across Runs. The agent can create scripts and execute them there. Finishing a Run or leaving the Cell does not by itself erase that state. Ordinary workspace edits and script execution are workload state; they do not rewrite the admitted manifest. A retained Cell may stop or suspend its runtime without losing permitted state.

Workspace retention and authorized continuation are explicit decisions. Checkpoints and the Work Journal preserve declared files, task state, and lineage. They do not transfer hidden model reasoning. Replacement generations receive fresh grants rather than inheriting expired Channels or approvals.

General and focused Cells

“General” and “focused” describe the scope of a Cell's work, not new Cell roles. A project Agent Cell might edit source and run local tests. A narrower Agent Cell might review a selected repository input without delivery authority. A Service Cell can run an approved test backend; an Analysis Job Cell can process an explicitly granted snapshot.

Think of an Agent Cell as a reusable work environment, similar to choosing a Python venv for a project. Cella also defines isolation, permissions, resource limits, and governed external operations. Create an environment, work in it, leave, and return later; create another when a task needs different context, dependencies, inputs, or permissions.

text
Project
  general      -> ongoing agent context, workspace, tools, and scripts
  fix-parser   -> selected inputs and focused task context
  review       -> read-only input, no delivery permission
  experiment   -> separate permitted dependencies and scripts

These names illustrate user choices, not built-in presets. Narrow scope does not imply short lifetime: a focused Cell can be reused, and a general Cell can be explicitly ephemeral. A new Cell receives only selected admitted inputs and context, with its own authority; it does not inherit another Cell's workspace, context, or permissions automatically.

A separate Service Cell is recommended for a long-running service needing its own lifecycle, restart behavior, availability, or resource budget. Ordinary scripts and local task execution remain Agent Cell work; application secrets still require an eligible non-agent runtime and an exact authorized binding.

The Cell lifecycle contract owns these rules. Checkpoints provide recovery and handoff; the repository memory index supplies selected governed knowledge rather than replacing the Cell's working context.

Cells cooperate through declared interfaces. For example, the project agent can call a test backend's named HTTP endpoint through an authorized Channel carried by Relay. This grants the exact request and bounded response, not the backend's credentials, filesystem, or other permissions.

Current Channels are defined around named Service endpoints. Arbitrary agent-to-agent messaging, remote cross-Installation routing, or shared mutable workspaces are not implied by connecting Cells. A future interface for those cases needs its own identity, protocol, policy, lifetime, and evidence contract.

These are intended product workflows. The complete long-running agent, checkpoint/resume, and daily development paths are still in development. See the feature milestones and canonical command flow for their exact boundaries.

The three Cell roles

Role Runs Workspace or data Credential boundary
Agent Cell A coding agent and its declared tools Private, writable candidate workspace No provider credentials or Project Secret values
Service Cell An approved application, task, or long-lived service Sealed revision and explicitly authorized data volumes May receive narrowly authorized application runtime secrets
Analysis Job Cell An approved, bounded analysis task Explicit data projections, such as a read-only snapshot Only the job's authorized inputs and bindings

Agent Cell

An Agent Cell runs the untrusted coding agent. The agent can edit its private workspace and use the tools and connections admitted for that task.

The intended repository workflow imports a reviewed source snapshot into Cella storage. It does not mount the live host working tree into the Cell. The agent produces a Candidate: a result that can be checked, reviewed, and deliberately selected for delivery.

Example: Codex modifies src/server.go and runs tests in its private workspace. Those edits do not silently overwrite the developer's checkout. Access to a service or a credentialed external operation requires separate authorization.

Service Cell

A Service Cell runs an approved task or application independently from the agent. Its code comes from a sealed revision or pinned artifact, and its launch behavior comes from an approved Run Target.

Example: a backend runs in a Service Cell while an Agent Cell tests its HTTP endpoint. The backend can use an authorized database secret without revealing that secret to the agent. A secret-bearing Service Cell has no agent, interactive shell, or debugger attached while its secret lease is active.

The service can continue after the agent disconnects. Updating its code or admitted settings creates a new service generation rather than letting the agent rewrite a running secret-bearing environment.

A Cella Service is the named service identity and endpoint contract. A Service Cell is a runtime that can implement that service. A Connected Service is an explicitly enrolled service outside a managed Cell; enrollment does not make its external execution Cella-contained.

Further reading: Service runtime and data.

Analysis Job Cell

An Analysis Job Cell runs a bounded task against explicitly granted data. It separates data analysis from the coding agent's workspace and from a live service's storage.

Example: an approved job reads a selected database snapshot and produces a classified report. The agent receives an authorized report artifact rather than automatic access to the raw database or the service's writable volume.

The components around a Cell

These names describe separate responsibilities. A product object such as a Channel is not another daemon, and a Cell role is not a privileged host process.

Component Responsibility Example
Cella CLI (cella) Capture user intent and present previews, approvals, sessions, and results A developer asks to inspect a Cell
Cella daemon (cellad) Coordinate policy, identities, Cells, Workstreams, and recovery Decide whether a generation may start
Cella Wall (cella-wall) Create, inspect, contain, stop, and destroy admitted runtimes Enforce an installed isolation profile
Cella Gateway (cella-gateway) Use protected Connections for authorized external operations Push an exact commit to an approved branch
Cella Relay (cella-relay) Carry authorized Channel traffic to named service endpoints Let an Agent Cell call a backend's test endpoint
Project Secret Boundary Keep application secrets outside Agent Cells and project authorized values to eligible runtimes Give one Service Cell generation its database configuration
Agent Adapter Start and observe a supported agent inside its Cell Translate an agent's lifecycle into Cella's run lifecycle
Runtime substrate Materialize the execution environment under Wall's control The initial containerd and gVisor target
macOS VM Controller Manage the dedicated Debian runtime VM on macOS Start the VM hosting the Wall stack
Cella Link Authenticate an enrolled remote controller's intent to cellad Control a remote installation from another device
Evidence system Record and verify attributable facts about the work Inspect a denied request and its matched policy
Capsule Verifier Check a selected change against its bound evidence and approval contract Verify a Change Capsule at a delivery gate

CLI and cellad: intent and coordination

The CLI is the user's command surface. cellad is the long-lived controller outside every Cell. It maintains state, evaluates policy, coordinates approvals, and asks the responsible component to carry out an authorized action.

Only enrolled cellad controls Wall, Gateway, Relay, and the Project Secret Boundary. An agent cannot obtain their control authority by calling them directly or claiming another identity in a request payload.

The Policy Engine is a responsibility within cellad. It compiles trusted policy sources into Effective Policy and evaluates exact requests. Authority components also enforce their own installed floor.

Further reading: Daemon responsibilities and lifecycle, daemon architecture, and policy hierarchy.

Wall: execution enforcement

Wall owns the privileged runtime boundary. It admits generations using installed profiles and controls isolation, lifecycle, resources, and inspection. The Wall Profile identifies the required enforcement contract.

Wall does not own GitHub integrations, provider credentials, or business approval. Its job is to enforce the admitted execution boundary.

The first runtime target uses containerd and gVisor on Debian. The sandbox technology is infrastructure beneath Cella; an alternative backend must satisfy the same required enforcement and qualification contract. A protected claim requires evidence for the exact admitted generation.

Further reading: Wall security model and protected Cell contract.

Gateway: credentialed external actions

Gateway performs typed external operations using credentials that remain outside the Agent Cell. A Connection names an approved provider identity and credential reference. An Effect is one exact external operation.

Example: the agent requests a Git push for a repository, branch, and commit. cellad evaluates policy and any required approval. Gateway then performs the authorized Effect through a Connection and returns a bounded result and receipt. The agent does not receive the reusable GitHub token.

Connections, Effects, and provider routes do not grant arbitrary internet or host access. An interrupted external operation requires reconciliation so a retry does not blindly repeat its consequence.

Further reading: Credentialed effect flow.

Relay and Channels: scoped service communication

The canonical name is Cella Relay, with executable name cella-relay.

A Channel is a directional permission to communicate with a named service endpoint. It binds the caller, destination, generation, protocol, limits, and lifetime. Relay carries the traffic allowed by that Channel.

Example: one Agent Cell may call the backend-test HTTP endpoint implemented by a Service Cell. That grant does not expose every service port, the application's filesystem, its environment variables, or its credentials.

cellad authorizes and administers Channels. Relay carries the data, while provisioned endpoints bind traffic to the admitted identities. Expired or revoked Channels must stop working; an old grant cannot silently transfer to a new agent generation.

Relay is separate from Gateway: Relay carries governed service traffic; Gateway executes credentialed external operations. Relay has no provider credential authority and is not a general host or internet proxy.

Agent CellAuthorized ChannelCella RelayNamed service endpointService Cell
Data follows the exact Channel grant. Relay does not expose the service’s secrets or filesystem.

Further reading: Why Channels and Relay are separate.

What a Channel permits

A Channel names an exact caller and destination endpoint, not an entire machine. Its contract can constrain protocol, methods or messages, request and response bounds, resources, lifetime, and revocation. Endpoint identities are bound to the admitted generations; knowing an address is not authorization.

For example, the following is an illustration of the contract, not runnable configuration or the final API:

yaml
caller: agent-cell / generation-7
destination: backend-test / generation-3
endpoint: health-http
protocol: HTTP
scope: GET /health
lifetime: current authorized lease

That grant permits the health request and its bounded response. It does not permit a different service, another port, a service filesystem read, process inspection, secret access, or an arbitrary host or internet connection.

How a request crosses the boundary

  1. An agent requests access to a named Service through its admitted request path.
  2. cellad evaluates identity, current policy, endpoint scope, limits, and any required approval, then provisions an exact Channel grant.
  3. Relay carries traffic using the provisioned data-plane identities. The agent does not call Relay's control API or configure a route itself.
  4. Evidence records the authorization and the defined traffic observations, results, limits, and gaps without exposing secret values.
  5. Expiry, revocation, or generation replacement ends that grant. A replacement Run receives fresh authorization rather than inheriting the old lease.

Declared paths include Cell-to-Cell traffic, an explicitly enrolled local service, and local-client preview. A Connected Service remains externally owned; Channel mediation does not make its runtime a protected Service Cell. If Relay is unavailable, the governed service path fails closed while admitted local workspace work can continue.

Name Carries or represents Authority boundary
Channel Bounded live traffic to a named Service endpoint cellad authorizes; Relay carries the data
Connection A logical external provider identity and credential source Gateway resolves credentials and executes a typed Effect
Link Authenticated remote operator intent The target installation's cellad remains authoritative

“Cella Relayer” is an older informal name. Use Cella Relay and cella-relay in current documentation.

Project secrets: application runtime configuration

A Project Secret Set holds explicitly imported application runtime values outside the repository ingress and every Agent Cell. The Project Secret Boundary controls their storage and projection.

A Secret Runtime Binding authorizes a specific set for an exact eligible runtime generation, target, scope, and lifetime. Application secrets are separate from the provider Connections Gateway uses for external Effects.

Example: a Service Cell receives an approved database configuration. The Agent Cell can exercise a permitted application endpoint without receiving the secret or access to the service's process memory.

Further reading: Service and secret boundaries.

Data, snapshots, and artifacts

Source, persistent application state, and analysis results have separate identities and permissions. Sharing one does not automatically share the others.

Object Purpose How access is granted
Cella Data Volume Persistent mutable application storage, independent of a source revision Explicit service ownership and storage policy; never a shared agent workspace
Data Snapshot Immutable point-in-time data with integrity and provenance Exact Data Grant for a recipient, read-only scope, limits, and expiry
Artifact Immutable bounded result such as a test report or analysis summary Exact Artifact Grant without access to the producing Cell's storage
Object Transfer Digest-verified object ingress and export Governed object identity, never caller-selected host filesystem access

Example: a Service Cell maintains a database in a Data Volume. A consistent snapshot becomes an approved Analysis Job Cell input. That job produces a bounded, classified report. An Artifact Grant lets the Agent Cell read the report without granting access to the database, job secrets, or service storage.

text
Service Cell + Data Volume
           ↓ consistent snapshot
Data Snapshot + exact Data Grant
           ↓ bounded analysis
Analysis Job Cell
           ↓ classified result
Artifact + exact Artifact Grant
           ↓ permitted read
Agent Cell

Live service communication uses Channels or a trusted query connector rather than mounting a live database file. Database-native backup or storage-consistent procedures must establish a usable snapshot; copying active files is not assumed safe.

Policy may explicitly permit an Agent Cell to read an immutable snapshot. That is a separate data-authority decision: anything given to the agent may reach its model provider. Classification, filtering, provider policy, network restrictions, limits, and expiry must therefore govern that grant. A summary is not assumed safe merely because an analysis job produced it.

Data lifecycles are explicit. Replacing application code does not implicitly replace its Data Volume, and a new runtime generation does not inherit old secret or data bindings. Service Adoption defines consistent migration and rollback boundaries; once the new service accepts writes, rollback may need data reconciliation.

Further reading: Persistent data and analysis.

Evidence, signing, and verification

Evidence records attributable lifecycle, policy, approval, execution, Channel, Effect, check, and delivery facts. Records identify the relevant generation and expose missing signals rather than imply complete visibility.

The Evidence Ledger preserves records and their ordering. Evidence signers authenticate records according to distinct producer roles. A verifier checks the required signatures, identities, policy, and completeness for a stated claim. A signature authenticates a statement; it does not by itself prove every required security property.

A Change Capsule binds a selected patch and base to its checks, policy, approvals, evidence, and protected Effects. The Capsule Verifier checks that bound result rather than accepting an approval for an unrelated or changed patch.

Further reading: Evidence signing roles.

Supporting modules and stores

These are responsibilities inside the components above, not a requirement to run a separate daemon for every row. They explain where coordination, storage, enforcement, and verification happen.

Module or store What it does
CLI Control API Carries authenticated user intent between the CLI and cellad
Cella Link Endpoint Receives intent from an enrolled remote controller
Workstream Manager Maintains the task's identity, candidates, and lifecycle
Cell Registry Retains Cell Records, immutable generation manifests, and sanitized status references
Continuity Store Retains checkpoints, declared task state, lineage, and recovery information
Agent Adapter Registry Maps supported agents to pinned runtime inputs and lifecycle definitions
Policy Engine Compiles trusted sources and evaluates requests against Effective Policy
Approval Coordinator Binds an approval to an exact request, actor, scope, and expiry
State Reconciler Compares desired state with observed runtime and Effect state after interruptions
Wall Control API Carries a closed, authenticated vocabulary from cellad to Wall
Wall Profile Store Holds installed immutable enforcement profiles and allowed runtime inputs
Wall Runtime Adapter Converts admitted profiles into fixed runtime operations
Wall Storage Adapter Creates private storage, enforces quotas, and manages snapshots and verified deletion
Wall Network Adapter Applies and inspects the admitted network topology
Wall Resource Adapter Enforces CPU, memory, process, time, and related limits
Generation Inspector Checks the actual execution boundary against the admitted controls
Runtime Interval Recorder Measures verified running intervals and lifecycle timestamps
Lifecycle Receipt Emitter Records ordered facts about privileged operations and failures
Repository Ingress Reviews source inputs and creates an immutable import object
Run Target Registry Stores approved commands, runtime inputs, bindings, and launch limits
Workspace Object Store Holds repository objects, private workspaces, checkpoints, and candidate outputs
Checkpoint Manager Seals declared state and verified object references at an explicit boundary
Change Capsule Builder Binds the selected patch to its checks, policy, approval, and evidence
Evidence Execution Recorder Records observable execution facts, results, resource events, and explicit gaps
Evidence Ledger Preserves ordered events with integrity continuity
Evidence Signer Authenticates records under the appropriate signing role
Evidence Verifier Checks signatures, schemas, hashes, identity, ordering, expiry, and revocation
Setup and Upgrade Controller Plans explicit installation, verification, activation, rollback, and removal transactions
Runtime Manifest Pins a compatible set of runtime artifacts, profiles, configuration, and their identities
Release Trust Root Defines which signed release material an Installation trusts
Image and Profile Store Retains verified immutable installation inputs
Conformance Harness Tests a runtime combination against required isolation, failure, cleanup, and drift behavior

The component architecture specifies the exact trust boundary and forbidden authority of each module. The feature milestones track which paths are integrated.

Work and data objects

These objects connect the components without granting extra authority merely because they share a Project or Workstream.

Term Plain-language meaning
Installation One authoritative Cella deployment and its enrolled components
Context CLI configuration selecting an Installation; selection alone grants no authority
Project Repository, policy, resources, services, and work grouped under one governance scope
Repository Object Reviewed source inputs imported without mounting the live host checkout
Candidate An agent-produced repository result awaiting deliberate selection or delivery
Workstream One intended change and its history across agents, Runs, and checkpoints
Run One bounded execution attempt tied to an exact Cell generation and inputs
Checkpoint Sealed workspace, task state, lineage, and references needed for authorized continuation
Work Journal Declared task state, outcomes, decisions, and handoff notes, with explicit gaps
Run Target Approved definition of the command, runtime, and inputs a service or job may execute
Check Definition / Check Result Approved test definition and its result against exact inputs
Approval An actor's authorization for an exact operation, scope, expiry, and consequence
Budget Enforced limits on resources, time, cost, output, or consequences
Intervention An attributable operator input, interruption, attachment, or responsibility transfer
Data Volume Declared persistent service storage independent of one runtime generation
Data Snapshot / Data Grant Selected data projection and permission for an exact recipient and purpose
Artifact / Artifact Grant Classified output and permission for an exact recipient to read it
Repository Delivery Review and local application of a selected candidate, or a governed external Effect
Service Adoption Planned transfer of an existing service into Cella management; no retroactive protection claim

Workstream continuity preserves declared work and evidence. It does not promise to recover an agent's hidden reasoning or make one model inherit another's private internal state.

How the components fit together

The control paths have distinct responsibilities:

Developer / Cella CLI

cellad · policy and coordination

WallCreates and contains admitted Cells

GatewayExecutes approved external Effects

RelayCarries authorized Channel traffic

Secret BoundaryProjects exact runtime secret bindings

Only enrolled cellad controls the authority components. Agents use admitted request and data paths.

For a backend bug fix, the intended user experience is:

  1. The developer selects source inputs and permissions through the CLI.
  2. cellad coordinates admission; Wall creates an Agent Cell generation.
  3. The agent edits its private candidate and runs admitted tools.
  4. An approved sealed revision starts in a separate Service Cell for testing.
  5. An authorized Channel lets the agent call the service endpoint through Relay.
  6. An approved delivery Effect goes through cellad and Gateway using a protected Connection.
  7. Evidence connects the inputs, policy decisions, checks, and consequences to the exact result the developer reviews.

This is a product example, not a runnable end-to-end tutorial today. Follow the CLI reference and feature milestones for available paths.

Local Engine, remote control, and Cloud

The Cella Engine is the intended account-free open-source trust loop. Cella Link lets an explicitly enrolled device control an Installation by sending authenticated intent to its authoritative cellad; Link does not require Cella Cloud or grant direct Wall access.

Cella Cloud is the planned organization layer for shared policy, Connections, approvals, fleet coordination, continuity, and evidence. Execution can remain local or on customer infrastructure. Cloud does not replace the local execution boundary.

The planned Cloud responsibilities are:

Component Purpose
Organization Identity and Enrollment Enroll principals, Projects, Installations, devices, and workload identities
Policy Authority Validate, sign, distribute, and revoke organization policy bundles
Capability and Approval Service Coordinate exact approvals, expiry, exceptions, and lease revocation
Connection Governance Manage approved provider identities, Effect scopes, rotation, and emergency disable
Fleet and Evidence Operations Inventory Cells, detect drift, coordinate revocation, and retain verifiable evidence
Workstream Coordination Service Coordinate shared work, handoffs, candidates, retention, and Capsule availability
Dedicated Worker Manager Optionally provision customer-scoped remote execution under the same Engine contracts

Further reading: Cella Cloud direction.

Authoritative references

This guide explains the vocabulary. The following contracts own its precise meaning and should be consulted when implementing a component:

Source: docs/concepts/components.md · Current feature milestones