Coding Agents Supported by build-iterated-agentic-loop and design-control-loop

Both the build-iterated-agentic-loop and design-control-loop plugins support four headless coding agents—Claude Code, Codex CLI, OpenCode, and CodeLayer—through identical agent-runner template configurations.

The humanlayer/skills repository provides these two plugins to enable autonomous coding agents within GitHub Actions workflows. Both rely on the same agent-runner-templates.md reference documentation to define supported agents, required secrets, and headless CLI invocation patterns.

Supported Headless Coding Agents

According to the source code in plugins/design-control-loop/skills/design-control-loop/references/agent-runner-templates.md and its duplicate in plugins/build-iterated-agentic-loop/skills/build-iterated-agentic-loop/references/agent-runner-templates.md, the following four agents are officially supported:

  • Claude Code – Anthropic’s coding assistant. Requires the ANTHROPIC_API_KEY repository secret.
  • Codex CLI – OpenAI’s Codex model. Requires the OPENAI_API_KEY repository secret.
  • OpenCode – The open-source OpenCode framework supporting both Anthropic and OpenAI back-ends. Requires the appropriate API key secret for the selected provider.
  • CodeLayer – HumanLayer’s lightweight agent harness, generally Anthropic-backed. Requires ANTHROPIC_API_KEY and optionally GH_TOKEN for GitHub operations.

Both plugins use the same agent-selection UI and workflow steps, installing the appropriate runner commands and providing response-extraction snippets to convert agent output into PR bodies.

Configuring Agents in GitHub Actions Workflows

The agent-runner templates provide copy-paste YAML configurations for each supported agent. Below are the specific implementations for two popular options.

Claude Code Setup

To run Claude Code in a workflow step, install the CLI via npm and invoke it with the required permissions and output formatting:

- uses: actions/setup-node@v4
  with:
    node-version: 24
- run: npm install -g @anthropic-ai/claude-code
- name: Run Claude Code
  env:
    ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
  run: |
    claude -p "$PROMPT" \
      --permission-mode bypassPermissions \
      --output-format stream-json \
      --verbose \
      2>&1 | tee /tmp/agent-output.txt

CodeLayer Setup

CodeLayer uses Bun for execution and supports configurable providers and thinking modes:

- uses: oven-sh/setup-bun@v2
- name: Run CodeLayer
  env:
    ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
    GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    FORCE_COLOR: "3"
  run: |
    bunx @humanlayer/cli@latest codelayer \
      --provider anthropic \
      --model claude-opus-4-8 \
      --thinking high \
      --prompt "$PROMPT" \
      2>&1 | tee /tmp/agent-output.txt

Extracting Structured Output

Both plugins use a standard jq-based extraction pattern to parse the JSON stream and generate the final PR body from agent responses:

- name: Extract PR body
  run: |
    cat /tmp/agent-output.txt \
      | grep '^{' \
      | jq -s '[.[] | select(.type == "assistant" and .message.content)] | last | .message.content[] | select(.type == "text") | .text' -r \
      > /tmp/pr-body.md

Shared Agent-Runner Architecture

The build-iterated-agentic-loop and design-control-loop plugins share an identical reference structure. The agent-runner templates are duplicated across both plugins at the following locations:

Supporting files in the design-control-loop plugin include:

Summary

  • Both build-iterated-agentic-loop and design-control-loop support Claude Code, Codex CLI, OpenCode, and CodeLayer.
  • Each agent requires specific secrets: ANTHROPIC_API_KEY for Anthropic-based agents, OPENAI_API_KEY for OpenAI models, and GH_TOKEN for CodeLayer GitHub operations.
  • Configuration templates are identical across both plugins, located at references/agent-runner-templates.md within each plugin's skill directory.
  • Agent output extraction uses standardized jq filters to isolate the final assistant message for PR creation.

Frequently Asked Questions

Which API keys are required for each coding agent?

Claude Code and CodeLayer require ANTHROPIC_API_KEY, while Codex CLI requires OPENAI_API_KEY. OpenCode supports both providers and requires the key corresponding to your selected back-end. CodeLayer optionally uses GH_TOKEN for GitHub operations.

Can I use the same agent configuration for both plugins?

Yes. Because both build-iterated-agentic-loop and design-control-loop reference the same agent-runner-templates.md structure, YAML configuration snippets are interchangeable between the two plugins.

How does the workflow extract the final output from the agent?

The workflow pipes the agent's JSON stream output to a jq filter that selects the last assistant message with text content, extracting it to /tmp/pr-body.md for use in pull request creation.

Where are the agent runner templates located in the repository?

The templates exist at two mirrored locations: plugins/design-control-loop/skills/design-control-loop/references/agent-runner-templates.md and plugins/build-iterated-agentic-loop/skills/build-iterated-agentic-loop/references/agent-runner-templates.md. Both files contain identical agent definitions and configuration examples.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →