# Custom install scripts This directory supplies the ready-made `python` and `dotnet` scripts. They are not reserved: modify, replace, or remove them like any other script. Place other trusted executable install scripts here and add the desired file names to `AGENTCI_INSTALL_SCRIPTS`. Compose mounts the directory read-only at `/etc/agentci/install-scripts`. Executable files run directly; files without executable mode run as POSIX shell scripts through `/bin/sh` so bind mounts do not depend on host file-mode preservation. Scripts run from the cloned repository with a sanitized environment. They receive: - `DEV_TOOLS_DIR`: persistent, writable tool storage at `/var/lib/agentci/dev-tools` - `PATH`: `$DEV_TOOLS_DIR/bin` followed by the service path - `PYTHON_VERSION` and `DOTNET_CHANNEL`: configured built-in runtime versions `DEV_TOOLS_DIR` is shared by jobs through the `agentci_data` volume. Put downloaded SDK/runtime files beneath it and install command wrappers or symlinks into `$DEV_TOOLS_DIR/bin`; that `bin` directory is prepended to implementation agents' `PATH`. Environment changes made by a script do not persist into implementation turns. The supplied `dotnet` wrapper keeps the SDK itself in `DEV_TOOLS_DIR` and places writable CLI state and NuGet caches under `DEV_TOOLS_DIR/runtime/dotnet`. OpenCode's own home is deliberately read-only so it cannot be used to persist global agent configuration. The configured scripts run in list order after the repository is cloned (or an existing agent PR branch is synchronized) and before the first implementation turn for `implement`, `iterate`, and `fix`. They do not rerun between implementation and review-revision turns within one job. Scripts must be idempotent and must not expect AgentCI or Gitea credentials.