Install
openclaw skills install @eohmig/migrate-to-buildsTest that a Cloud Agent environment will work with prebuilt environment builds and recommend any required changes. Use when the user wants to migrate to builds, test build compatibility, or follow the Builds page setup-agent flow.
openclaw skills install @eohmig/migrate-to-buildsUse this skill when the user wants to test that the current Cloud Agent environment will work with environment builds, or asks to migrate to builds. Do not enable builds yourself; the user enables them on the environment page after review.
| Workflow | Reference |
|---|---|
| Migrate an existing environment to builds | Migrate an environment to builds |
Read Migrate an environment to builds and follow it. Call environment-info first when available so the reference can classify repository-managed vs DB-managed configuration.
A Cloud Agent starts in an isolated remote machine. Its environment has two layers:
install refreshes project dependencies and generated state. start and terminals then start services needed while the agent works.With environment builds, install creates the baseline snapshot and is not rerun when a new pod boots from that build. Per-pod initialization therefore belongs in start or terminals. Without a build, setup may run install while preparing the agent.
Environment changes normally affect newly started agents. Do not imply that editing configuration rebuilds or migrates an already-running agent.
Codex resolves environment configuration in this order:
.cursor/environment.json from the repository revision used to start the agent.The first available source wins. Prefer the Cloud Agent environment-info tool when available; otherwise inspect the repository and explain what cannot be confirmed.
Classify each setup action by the lifetime of the state it creates:
| Location | Use it for | Expected behavior |
|---|---|---|
install | Durable repository setup tied to checked-out source: package installation, compilation, code generation, and local configuration that can be recreated. | Runs after source is available and may run again after changes or against cached state. It must be idempotent, non-interactive, and terminate successfully. No process started here should be expected to survive into a later boot. |
start | Per-boot runtime initialization: starting system daemons, restoring ephemeral service state, or launching a supervised/background service required whenever the machine starts. | Runs every time the environment starts. It must tolerate restarts, avoid duplicate processes, and reach a clear success or failure state. |
terminals | Long-running foreground processes the agent should see, inspect, restart, or read logs from: development servers, watchers, and workers. | Runs as named tmux-backed processes after startup. Commands may remain active for the lifetime of the environment. |
A development server does not belong in install: cached setup or a snapshot may preserve its files but not its process, and a foreground server can prevent installation from completing. Put it in terminals when the agent benefits from visible logs and direct restarts. Use start when a startup script launches or reconciles the service under a process manager, confirms readiness, and then returns.
When environment setup hangs, behaves differently after a snapshot, or loses services between agents:
install launches a server, watcher, worker, Docker daemon, or other process that must still be running later, move that responsibility to start or terminals.start repeatedly installs packages, compiles the repository, or regenerates source-derived files, move that responsibility to install.Typical signals:
install.install and its process was not part of durable state.start.environment.json, Dockerfiles, committed scripts, logs, or chat output. Use supported environment secrets or build-secret mechanisms.Lead with the outcome. Include only the sections relevant to the request:
When mentioning an environment or build ID in chat, use a markdown hyperlink whose link text is the ID — never a bare ID:
[<environmentPublicId>](https://cursor.com/dashboard/cloud-agents/environments/e/<environmentPublicId>)[<buildId>](https://cursor.com/dashboard/cloud-agents/builds/<buildId>)Prefer the environment url from environment-info when present; otherwise construct the environment link with the format above. Do not append #builds — build settings and the builds list live on the default environment detail page.