> ## Documentation Index
> Fetch the complete documentation index at: https://cli-docs.relai.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Compatibility

> RELAI is in beta and framework-agnostic. Here's what your project needs and how init verifies optional integration capabilities.

RELAI works best with Python, TypeScript, and Go agent projects that can run locally and are committed to [git](https://git-scm.com/). TypeScript and Go agents are supported experimentally.

## Compatible projects

Before running `relai init`, make sure that:

* the project is a [git](https://git-scm.com/) repository with at least one commit.
* the project has a clear agent entrypoint, function, command, graph, or framework object.
* local path dependencies may point outside the repo snapshot RELAI uploads during compatibility analysis, as long as they are clearly declared in repo-visible dependency metadata and remain available in your local environment for later init/runtime steps.
* runtime secrets come from environment variables or local env files, not committed source.
* the behavior you want to test can run without a production-only hosted boundary.

### Python agents

* the RELAI simulator virtual environment can run [Python 3.11 or newer](https://www.python.org/downloads/).
* dependencies are declared in files such as `pyproject.toml`, `requirements.txt`, `uv.lock`, `poetry.lock`, `setup.py`, `setup.cfg`, `Pipfile`, `pdm.lock`, or Conda environment files.

### TypeScript agents (experimental)

* [Node.js 20 or newer](https://nodejs.org/) is available on `PATH`.
* dependencies and scripts are declared in `package.json` and, where applicable, the project’s package-manager lockfile.
* the project’s package manager — `npm`, `pnpm`, Yarn, or Bun — is available on `PATH`.

### Go agents (experimental)

* [Go 1.24.4 or newer](https://go.dev/dl/) is available on `PATH`.
* dependencies are declared in `go.mod` and, where applicable, `go.sum`.

## Frameworks

RELAI is framework-agnostic. During init it resolves the project's exact
dependencies and generates a project-owned adapter instead of selecting a
maintained framework recipe. Every adapter must support end-to-end turns.
Named targets, tool overrides, tool events, and framework-native components are
optional capabilities and are enabled only when init can verify them locally.

Opaque or hosted frameworks can still support end-to-end simulation when the
project exposes a runnable boundary. If init cannot expose a required boundary
within its permissions, it explains the application change needed to continue.

## Limits on file sizes and arguments

| Item                                                               | Limit  |
| ------------------------------------------------------------------ | ------ |
| Learning environment prompt                                        | 8 KB   |
| Learning environment feedback                                      | 32 KB  |
| Learning environment log file                                      | 160 KB |
| Evaluator prompt                                                   | 8 KB   |
| Markdown memory file                                               | 16 KB  |
| Simulation artifact upload file                                    | 100 KB |
| Selected learning environments per simulate or optimize invocation | 1000   |
| Optimizer `--total-rollouts`                                       | 1000   |
| Optimizer `--batch-size`                                           | 10     |
