Environment schema reference
Complete environment examples and field reference.
For an introduction and setup instructions, see Environments.
Environment files live under .ellipsis/ on the default branch. Set ellipsis.kind: environment and give the environment a unique name.
Node.js project
Dependencies are cached independently of TypeScript source. Compilation is cached for the requested source revision. Each session checks that the dependency directory exists before the agent starts or resumes.
Python project
The agent can run /sandbox/api-repo/.venv/bin/python with the project's dependencies.
Multiple repositories
Both repositories are available under /sandbox/. A repository's owner defaults to the account; set it explicitly when needed.
Stored secrets
Store NPM_TOKEN through Environments > Secrets or PUT /v1/secrets. Reference its name without putting the value in git.
This assumes the repository's npm configuration reads NPM_TOKEN from the environment. The secret is available to setup and the session. Do not write its value into a cached file.
A missing stored secret fails the session. Stored values cannot be read back through the dashboard or API.
System tools
Install system tools in build_base using sudo. Ellipsis supplies the managed toolchain.
MCP tools for Codex
Codex sessions can use connected Slack and Linear integrations, custom stdio servers, and remote streamable HTTP servers. Built-in integrations follow their inclusion settings; listing a name opts into an integration configured for explicit inclusion.
The session receives Linear tools when the integration is connected and tools from your HTTP server. Replace the example URL with your server and store TOOLS_TOKEN in your account's secrets. ${NAME} references resolve at session start; a missing secret fails the session.
For a server that runs inside the sandbox, replace url and headers with command, optional args, and optional env. Install its executable through build_base. An MCP server that cannot initialize fails the Codex turn.
Fields
| Field | Values and behavior |
|---|---|
ellipsis.kind | Required environment |
ellipsis.name | Unique environment name |
repositories | List of name, optional owner, and optional ref |
variables | List of name and optional plaintext value; omit value to use a stored secret |
hooks.build_base | Script or {run, inputs}; builds the reusable dependency base |
hooks.build_base.inputs | Exact repository-qualified files; omit for all source, or use [] for no source |
hooks.after_checkout | Script or {run}; prepares the requested revision before saving its sandbox |
hooks.before_start | Script or {run}; runs before a session starts or resumes |
compute.cpu | 2 to 32 vCPUs; default 2 |
compute.memory | 4096MB to 64GB; default 4096MB |
compute.timeout | 60 seconds to 1 hour; default 1 hour |
mcp_servers | Built-in names or custom stdio/HTTP servers for Codex |
See Setup and hooks for cache behavior, script limits, and migrating legacy hooks.
Memory accepts MB or GB. Timeout accepts s, m, and h, including combinations such as 1h30m; the total must stay within the allowed range.
Inline environments
Use the same fields directly in an automation's session.environment. Omit the environment's ellipsis block: