releases

Preconfig 0.2 Sets Up Machines for Claude Code, Codex, Ona and Devin From the Same Spec

Five targets covered the platforms that were reading setup files when preconfig started: dev containers, GitHub Copilot, Cursor, cloud-init and a plain script. Since then the agent platforms people actually use have moved on. Version 0.2 adds four more, written from each platform’s own documentation as it stood on November 4, 2026.

The first thing the documentation showed is that the four don’t work alike. Ona and Devin read a file from the repository. Claude Code and Codex keep a machine’s setup in their own settings, so a spec can’t simply be compiled into a file they pick up. Each target does what its platform allows.

targets: [claude-code, codex, ona, devin]

Claude Code

A repository reaches a Claude Code cloud session through .claude/settings.json, and that file can hold a hook that runs when a session starts. preconfig adds one, merged into the settings file a team already has, so its own permissions and hooks stay. The hook runs a small script that does nothing on a developer’s own machine. In a cloud session it sets up the machine and the project once for each version of the setup script, starts PostgreSQL and Redis every session (a session keeps its files but not its running processes), and hands the project’s environment variables to Claude’s later commands.

This one ran for real. The session that built 0.2 was itself a Claude Code cloud session, so the hook’s command ran there on the orders-api sample. The first try failed: Claude Code’s image makes python3 Python 3.13, and the spec asks for 3.12. preconfig’s setup script now points python3 at Ubuntu’s own 3.12 when that is the version asked for. After the fix, the first session start set up Python, PostgreSQL, Redis and the project in 15 seconds, the next start took no time at all, and the four tests passed. When a step fails, the hook tells Claude which step and shows the end of its log, so the agent doesn’t start work on a half-built machine without knowing it.

Codex

Codex works the setup out with you in its own settings and records it there. No file in a repository configures it. The codex target writes .preconfig/codex.md instead: what goes in the install script, the start step for the services, the ready check, the environment variables, how to hold the secrets and which hosts setup needs to reach. It also covers Codex’s legacy environments, where secrets reach only the setup script and are gone before the tests run.

Ona and Devin

Ona, the company that was Gitpod, builds its environments from the dev container preconfig already writes and reads tasks from .ona/config.yaml. The ona target adds the ready check there. Ona’s documentation requires every Docker Compose service to use the host’s network, so with Ona on, the dev container’s services move there too.

Devin builds a snapshot from .devin/blueprint.yaml once it’s synced in Devin’s settings. The devin target puts the machine setup in initialize, the project setup in maintenance, and, because nothing runs when a Devin session starts, the services and the ready check in the knowledge Devin reads.

preconfig check reads all of these files and flags what the platforms would reject or ignore: a task Ona can’t run, a blueprint step with both run and uses, an Ona config hidden behind an older file name, an old .gitpod.yml.

What Isn’t Proven Yet

Claude Code is the only one of the four where preconfig’s setup has run. Codex, Ona and Devin are written and checked against their documented formats; Ona’s command-line tool validates dev containers but not its tasks file, and Devin publishes no validator. Running each on its own platform is next.

Two independent reviews of the new targets found 18 problems before the release. The biggest: the project’s environment variables would have gone into the settings file that local sessions read too, and Devin’s environment lines broke on any value with a space or a quote. Both were fixed, with tests.

Existing projects see no change: a spec that lists no targets still writes the original five. Download 0.2 for Linux, macOS or Windows.