Release · CLI · Agents

VibePod CLI 0.19: Project overlays, Herdr integration, port publishing, and Jcode

VibePod 0.19.0 lets a project extend its agent images with a committed Dockerfile fragment, reports live agent state to herdr panes, publishes container ports straight from per-agent config, and adds Jcode to the agent matrix.

2026-07-31 · Release · CLI · Agents

Project overlays: extend agent images from the repo

A project can now extend the agent image it runs in — extra apt packages, language toolchains, CLIs — by committing a FROM-less Dockerfile fragment under .vibepod/overlay/. A shared fragment applies to every agent; a per-agent fragment like .vibepod/overlay/claude/Dockerfile wins for that agent.

# .vibepod/overlay/Dockerfile — no FROM line
RUN apt-get update && apt-get install -y --no-install-recommends jq \
    && rm -rf /var/lib/apt/lists/*
COPY requirements.txt /tmp/requirements.txt
RUN pip install -r /tmp/requirements.txt

On vp run (and vp task create) the fragment is appended to the agent's base image and built as a workspace-local, content-addressed image. Unchanged overlays never rebuild, switching branches just switches images, and a newer base image rebuilds the overlay on top. The overlay directory is the build context, so fragments can COPY files committed next to them — the whole team shares the environment. Opt out with --no-overlay, force a clean rebuild with --rebuild-overlay, or set agents.<agent>.overlay: false.

Herdr integration: live agent state in your multiplexer

herdr is a terminal multiplexer for coding agents. When vp run starts inside a herdr pane, VibePod detects it automatically, mounts the herdr socket into the container, forwards HERDR_* variables, and injects a lifecycle integration into the agent's config directory. The agent then shows up in herdr with a vp:<agent> identity and live working / blocked / idle state.

Built-in state reporting ships for Claude, Codex, Copilot, OpenCode, Pi, and Tau; other agents still appear with pane identity and initial state. No setup is needed, custom agents can be wired through herdr.integrations in the config, vp doctor herdr diagnoses the whole chain, and --no-herdr or herdr: false opts out.

Publish container ports

Agent containers can now publish ports to the host using docker run -p syntax, validated up front:

agents:
  claude:
    ports:
      - "8000:8000"
      - "127.0.0.1:5173:5173"

That makes dev servers started by an agent reachable from the host browser without leaving the container's isolation model.

Jcode joins the agent matrix

Jcode is 1jehuang's resource-focused terminal coding agent written in Rust and shipped as a single static binary. It talks to Anthropic, OpenAI (including the Codex subscription), Gemini, GitHub Copilot, OpenRouter, Azure, Ollama, LM Studio, and custom OpenAI-compatible endpoints. Start it with the full name or the new vp j shortcut:

vp run jcode
vp j
vp run jcode -- login --provider claude

Credentials, configuration, MCP servers, and session history persist under ~/.config/vibepod/agents/jcode/ and survive container restarts. OAuth logins support --no-browser for the containerized flow, and API keys can be injected via agents.jcode.env.

Release details

Related links