> ## Documentation Index
> Fetch the complete documentation index at: https://allhandsai-cookbook-sync.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Contributing

> Contribute to Agent Canvas development.

Agent Canvas is open source. To work on it from source:

1. Clone the repo and install dependencies:
   ```bash theme={null}
   git clone https://github.com/OpenHands/OpenHands.git
   cd OpenHands
   npm install
   ```

2. Start the full development stack:
   ```bash theme={null}
   npm run dev
   ```

For development workflows, environment variables, testing, and advanced configuration, see the [Development Guide](https://github.com/OpenHands/OpenHands/blob/main/docs/DEVELOPMENT.md) in the repository.

## Docker Conversation Runtime Settings

When running Agent Canvas locally via the `dev-safe.mjs` launcher, Canvas can forward conversation-runtime settings to its bundled Agent Server. This enables `OH_CONVERSATION_RUNTIME=docker`, which runs each conversation in an isolated Docker container instead of the default local process runtime.

Canvas forwards these settings only when the operator explicitly sets them. Unset values remain absent so Agent Server defaults stay authoritative.

| Environment Variable | Type | Launcher Default | Description |
| - | - | - | - |
| `OH_CONVERSATION_RUNTIME` | string | unset | Conversation runtime type. Set to `docker` to run conversations in Docker containers. |
| `OH_CONVERSATION_IMAGE` | string | unset | Docker image to use for conversation containers. |
| `OH_CONVERSATION_CONTAINER_MEMORY` | string | unset | Memory limit for conversation containers (e.g., `2g`). |
| `OH_CONVERSATION_CONTAINER_CPUS` | string | unset | CPU limit for conversation containers. |
| `OH_CONVERSATION_CONTAINER_PIDS_LIMIT` | string | unset | PID limit for conversation containers. |
| `OH_CONVERSATION_CONTAINER_STARTUP_TIMEOUT` | string | unset | Startup timeout for conversation containers (seconds). |

These variables are specific to Canvas's `dev-safe.mjs` launcher and are forwarded to the bundled Agent Server process. Docker provisioning and setting interpretation are handled by Agent Server.

These settings select the conversation runtime. For tool-only container isolation using `OH_EXECUTION_*`, see [Isolate Tool Execution with Docker](/openhands/usage/agent-canvas/backend-setup/docker-execution).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.