Envd

The native daemon that exposes files, commands, processes, and ports over the Environment Interaction Protocol.

Envd (a13n-envd) serves the Environment Interaction Protocol (EIP) over stdio, HTTP(S), or an outbound reverse WebSocket connection.

Connect agents through Harness Environment Providers, or use the Python EIP client directly.

Choose your path

SituationStart here
Using the terminal productHarness UI execution permissions
Trying a local EIP Environment without a modelLocal Envd example
Installing a matching native executableInstallation
Running an Agent development containerSandbox image
Operating your own daemon or EIP transportConfiguration and transports
Diagnosing access or missing methodsOuter security and troubleshooting
Connecting through an Environment ProviderRemote Envd
Implementing an EIP client or ProviderPython EIP client
Managing sessions, retained output, and uncertain resultsSessions and output

What it provides

  • Read, write, search, and transfer files.
  • Run commands, send input, read output, and stop processes.
  • Check operation results, cancel work, and inspect failures.
  • Discover available operations for each platform and configuration.

One daemon serves a Device and multiple independent Sessions. Each Session owns its operations, processes, retained output, transfers and evidence. Working directory is a default, not an access boundary. Mutually untrusted workloads need separate Host-enforced outer boundaries; EIP Sessions are not tenant isolation.

Try Local Envd

The repository's Environment Provider example exercises file operations through a private Envd Device without a model, cloud account, or server. From the repository root:

cargo build --locked --package a13n-envd
cd examples/environment-provider
uv sync --locked
uv run environment-provider-example local_envd \
  --executable ../../target/debug/a13n-envd

The example owns its workspace, starts a private daemon over stdio, creates one Session for its adapter, and verifies that closing the adapter preserves the workspace. The Host runtime closes the daemon afterward. For Agent integration, supply a fresh Local Envd adapter to Harness with DynamicEnvironmentCapability; Harness integration shows that boundary. A Host can reuse its LocalEnvdProviderRuntime across adapters, but each adapter opens an independent Session.

Configure LocalEnvdLaunchConfiguration on that runtime when you need execution identity, Sandbox grants, egress mode, executable roots, shell profiles, or limits. Envd manages Session workers; the Host owns outer container or VM isolation. See execution boundaries and Session credential references.

Lifecycle and ownership

Device discovery opens no Session. Session preparation checks fixed cwd, required methods and readiness. Cancellation or failure of one adapter cannot close a healthy shared Device. See daemon lifecycle.

Reference topics

TopicGuide
Build the matching binaryBuild the matching binary
Install a published binaryInstall a published binary
Isolation behaviorIsolation behavior
Minimal standalone configurationMinimal standalone configuration
Enable commandsEnable commands
Carrier profilesCarrier profiles
Validate from this repositoryValidate from this repository
TroubleshootingTroubleshooting
ReferencesReferences

On this page