From c90171275e9f3940fd74a6dac9bd4e39d0cf1b7f Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 3 Aug 2026 19:28:38 +0000 Subject: [PATCH 1/4] Add pi coding agent, bump glab to 1.111.0 Install the pi coding agent (@earendil-works/pi-coding-agent, from the pi monorepo) into the shared baseline of every image, alongside claude, opencode, codex and copilot. Installed with --ignore-scripts as upstream documents, and smoke-tested via `pi --version` in _testcase-common. Also bump the GitLab CLI from 1.108.0 to 1.111.0. Node 24 (active LTS), Go 1.26.5 and PHP 8.5 are already the current versions, so they stay put. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01742MRzCKzthh8R78NhJA5a --- Makefile | 1 + README.md | 4 +++- fx/Dockerfile | 5 ++++- golang/Dockerfile | 5 ++++- nodejs/Dockerfile | 5 ++++- php/Dockerfile | 5 ++++- python/Dockerfile | 5 ++++- 7 files changed, 24 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index e2aba04..4772690 100644 --- a/Makefile +++ b/Makefile @@ -103,3 +103,4 @@ _testcase-common: $(TEST_RUN) opencode --version $(TEST_RUN) codex --version $(TEST_RUN) copilot --version + $(TEST_RUN) pi --version diff --git a/README.md b/README.md index 2ba1eaf..c8ff585 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,9 @@ Every image includes: - **Base tooling:** `git`, `jq`, `ripgrep`. - **Node.js 24** with `npm` (via NodeSource). - **VCS CLIs:** GitHub CLI (`gh`) and GitLab CLI (`glab`). -- **AI CLIs:** `claude` (Claude Code), `opencode`, `codex` (`@openai/codex`), and `copilot` (`@github/copilot`). +- **AI CLIs:** `claude` (Claude Code), `opencode`, `codex` (`@openai/codex`), `copilot` + (`@github/copilot`), and `pi` — the [pi](https://pi.dev) coding agent from the + [pi monorepo](https://github.com/earendil-works/pi) (`@earendil-works/pi-coding-agent`). - **Browser automation:** `agent-browser` plus the Chrome shared libraries it needs (Chromium is installed on first `agent-browser install`). diff --git a/fx/Dockerfile b/fx/Dockerfile index 7c818f9..9d3e9dd 100644 --- a/fx/Dockerfile +++ b/fx/Dockerfile @@ -4,7 +4,7 @@ ENV DENO_INSTALL=/usr/local ENV BUN_INSTALL=/usr/local ENV NODE_VERSION=24 ENV GO_VERSION=1.26.5 -ENV GLAB_VERSION=1.108.0 +ENV GLAB_VERSION=1.111.0 ENV GOROOT=/usr/local/go ENV GOPATH=/home/coder/go ENV PATH=$GOROOT/bin:$GOPATH/bin:$PATH @@ -93,6 +93,9 @@ RUN \ chmod 0755 /usr/local/bin/opencode && \ # NPM: CODEX, COPILOT ####################################################### npm install -g @openai/codex @github/copilot && \ + # PI (coding agent from the pi monorepo) ################################### + # --ignore-scripts per upstream install docs; pi needs no lifecycle scripts. + npm install -g --ignore-scripts @earendil-works/pi-coding-agent && \ # T3CODE (browser GUI for coding agents) ################################### npm install -g t3 && \ # PNPM ###################################################################### diff --git a/golang/Dockerfile b/golang/Dockerfile index a5e0eee..8ad4858 100644 --- a/golang/Dockerfile +++ b/golang/Dockerfile @@ -2,7 +2,7 @@ FROM codercom/enterprise-base:ubuntu ENV NODE_VERSION=24 ENV GO_VERSION=1.26.5 -ENV GLAB_VERSION=1.108.0 +ENV GLAB_VERSION=1.111.0 ENV GOROOT=/usr/local/go ENV GOPATH=/home/coder/go ENV PATH=$GOROOT/bin:$GOPATH/bin:$PATH @@ -57,6 +57,9 @@ RUN \ ln -sf /home/coder/.opencode/bin/opencode /usr/local/bin/opencode && \ # NPM: CODEX, COPILOT ####################################################### npm install -g @openai/codex @github/copilot && \ + # PI (coding agent from the pi monorepo) ################################### + # --ignore-scripts per upstream install docs; pi needs no lifecycle scripts. + npm install -g --ignore-scripts @earendil-works/pi-coding-agent && \ # AGENT-BROWSER ############################################################## npm install -g agent-browser && \ runuser -u coder -- agent-browser install && \ diff --git a/nodejs/Dockerfile b/nodejs/Dockerfile index 0692eff..ab05ed2 100644 --- a/nodejs/Dockerfile +++ b/nodejs/Dockerfile @@ -3,7 +3,7 @@ FROM codercom/enterprise-base:ubuntu ENV DENO_INSTALL=/usr/local ENV BUN_INSTALL=/usr/local ENV NODE_VERSION=24 -ENV GLAB_VERSION=1.108.0 +ENV GLAB_VERSION=1.111.0 USER root @@ -53,6 +53,9 @@ RUN \ ln -sf /home/coder/.opencode/bin/opencode /usr/local/bin/opencode && \ # NPM: CODEX, COPILOT ####################################################### npm install -g @openai/codex @github/copilot && \ + # PI (coding agent from the pi monorepo) ################################### + # --ignore-scripts per upstream install docs; pi needs no lifecycle scripts. + npm install -g --ignore-scripts @earendil-works/pi-coding-agent && \ # AGENT-BROWSER ############################################################## npm install -g agent-browser && \ runuser -u coder -- agent-browser install && \ diff --git a/php/Dockerfile b/php/Dockerfile index 4d9799b..7f8f775 100644 --- a/php/Dockerfile +++ b/php/Dockerfile @@ -1,7 +1,7 @@ FROM codercom/enterprise-base:ubuntu ENV NODE_VERSION=24 -ENV GLAB_VERSION=1.108.0 +ENV GLAB_VERSION=1.111.0 USER root @@ -62,6 +62,9 @@ RUN \ ln -sf /home/coder/.opencode/bin/opencode /usr/local/bin/opencode && \ # NPM: CODEX, COPILOT ####################################################### npm install -g @openai/codex @github/copilot && \ + # PI (coding agent from the pi monorepo) ################################### + # --ignore-scripts per upstream install docs; pi needs no lifecycle scripts. + npm install -g --ignore-scripts @earendil-works/pi-coding-agent && \ # AGENT-BROWSER ############################################################## npm install -g agent-browser && \ runuser -u coder -- agent-browser install && \ diff --git a/python/Dockerfile b/python/Dockerfile index 3f66ea9..64f185c 100644 --- a/python/Dockerfile +++ b/python/Dockerfile @@ -1,7 +1,7 @@ FROM codercom/enterprise-base:ubuntu ENV NODE_VERSION=24 -ENV GLAB_VERSION=1.108.0 +ENV GLAB_VERSION=1.111.0 USER root @@ -49,6 +49,9 @@ RUN \ ln -sf /home/coder/.opencode/bin/opencode /usr/local/bin/opencode && \ # NPM: CODEX, COPILOT ####################################################### npm install -g @openai/codex @github/copilot && \ + # PI (coding agent from the pi monorepo) ################################### + # --ignore-scripts per upstream install docs; pi needs no lifecycle scripts. + npm install -g --ignore-scripts @earendil-works/pi-coding-agent && \ # AGENT-BROWSER ############################################################## npm install -g agent-browser && \ runuser -u coder -- agent-browser install && \ From 259870ab1cff60fc5d8ca91a80ac18a49226dbb5 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 3 Aug 2026 19:46:42 +0000 Subject: [PATCH 2/4] README: shorten the pi entry to match the other AI CLIs Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01742MRzCKzthh8R78NhJA5a --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index c8ff585..75077dc 100644 --- a/README.md +++ b/README.md @@ -49,8 +49,7 @@ Every image includes: - **Node.js 24** with `npm` (via NodeSource). - **VCS CLIs:** GitHub CLI (`gh`) and GitLab CLI (`glab`). - **AI CLIs:** `claude` (Claude Code), `opencode`, `codex` (`@openai/codex`), `copilot` - (`@github/copilot`), and `pi` — the [pi](https://pi.dev) coding agent from the - [pi monorepo](https://github.com/earendil-works/pi) (`@earendil-works/pi-coding-agent`). + (`@github/copilot`), and `pi` (`@earendil-works/pi-coding-agent`). - **Browser automation:** `agent-browser` plus the Chrome shared libraries it needs (Chromium is installed on first `agent-browser install`). From 9bf2da2b92f6bf82013ee2546b807ee39ad2af5e Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 3 Aug 2026 19:52:39 +0000 Subject: [PATCH 3/4] Add tmux to the base tooling of every image Smoke-tested via `tmux -V` in _testcase-common. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01742MRzCKzthh8R78NhJA5a --- Makefile | 1 + README.md | 2 +- fx/Dockerfile | 2 +- golang/Dockerfile | 2 +- nodejs/Dockerfile | 2 +- php/Dockerfile | 2 +- python/Dockerfile | 2 +- 7 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 4772690..22cab73 100644 --- a/Makefile +++ b/Makefile @@ -96,6 +96,7 @@ _testcase-t3code: .PHONY: _testcase-common _testcase-common: + $(TEST_RUN) tmux -V $(TEST_RUN) agent-browser --version $(TEST_RUN) gh --version $(TEST_RUN) glab --version diff --git a/README.md b/README.md index 75077dc..dce806c 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ one tag per template: Every image includes: -- **Base tooling:** `git`, `jq`, `ripgrep`. +- **Base tooling:** `git`, `jq`, `ripgrep`, `tmux`. - **Node.js 24** with `npm` (via NodeSource). - **VCS CLIs:** GitHub CLI (`gh`) and GitLab CLI (`glab`). - **AI CLIs:** `claude` (Claude Code), `opencode`, `codex` (`@openai/codex`), `copilot` diff --git a/fx/Dockerfile b/fx/Dockerfile index 9d3e9dd..f956676 100644 --- a/fx/Dockerfile +++ b/fx/Dockerfile @@ -40,7 +40,7 @@ RUN \ apt-get update && \ apt-get dist-upgrade -y && \ apt-get install -y --no-install-recommends \ - git jq ripgrep \ + git jq ripgrep tmux \ # Node nodejs \ # PHP diff --git a/golang/Dockerfile b/golang/Dockerfile index 8ad4858..68ec588 100644 --- a/golang/Dockerfile +++ b/golang/Dockerfile @@ -25,7 +25,7 @@ RUN \ apt-get update && \ apt-get dist-upgrade -y && \ apt-get install -y --no-install-recommends \ - git jq ripgrep nodejs gh \ + git jq ripgrep tmux nodejs gh \ # Chrome libs (agent-browser) libnspr4 libnss3 libatk-bridge2.0-0 libdrm2 libxkbcommon0 libatspi2.0-0 \ libcups2t64 libxshmfence1 libgbm1 libpango-1.0-0 libpangocairo-1.0-0 \ diff --git a/nodejs/Dockerfile b/nodejs/Dockerfile index ab05ed2..d796103 100644 --- a/nodejs/Dockerfile +++ b/nodejs/Dockerfile @@ -23,7 +23,7 @@ RUN \ apt-get update && \ apt-get dist-upgrade -y && \ apt-get install -y --no-install-recommends \ - git jq ripgrep nodejs gh \ + git jq ripgrep tmux nodejs gh \ # Chrome libs (agent-browser) libnspr4 libnss3 libatk-bridge2.0-0 libdrm2 libxkbcommon0 libatspi2.0-0 \ libcups2t64 libxshmfence1 libgbm1 libpango-1.0-0 libpangocairo-1.0-0 \ diff --git a/php/Dockerfile b/php/Dockerfile index 7f8f775..fc1f886 100644 --- a/php/Dockerfile +++ b/php/Dockerfile @@ -23,7 +23,7 @@ RUN \ apt-get update && \ apt-get dist-upgrade -y && \ apt-get install -y --no-install-recommends \ - git jq ripgrep nodejs \ + git jq ripgrep tmux nodejs \ # PHP php8.5-cli php8.5-common php8.5-curl php8.5-gd php8.5-imap php8.5-intl \ php8.5-mailparse php8.5-mbstring php8.5-mysql php8.5-pgsql php8.5-phpdbg \ diff --git a/python/Dockerfile b/python/Dockerfile index 64f185c..40a1366 100644 --- a/python/Dockerfile +++ b/python/Dockerfile @@ -21,7 +21,7 @@ RUN \ apt-get update && \ apt-get dist-upgrade -y && \ apt-get install -y --no-install-recommends \ - git jq ripgrep nodejs gh \ + git jq ripgrep tmux nodejs gh \ # Python python3 python3-pip python3-venv \ # Chrome libs (agent-browser) From 03bcc39ff18d761c4acc7e1fa5b3eed517599eb2 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 3 Aug 2026 19:53:49 +0000 Subject: [PATCH 4/4] Trim the pi install comment to a plain section header Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01742MRzCKzthh8R78NhJA5a --- fx/Dockerfile | 3 +-- golang/Dockerfile | 3 +-- nodejs/Dockerfile | 3 +-- php/Dockerfile | 3 +-- python/Dockerfile | 3 +-- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/fx/Dockerfile b/fx/Dockerfile index f956676..10a4ccc 100644 --- a/fx/Dockerfile +++ b/fx/Dockerfile @@ -93,8 +93,7 @@ RUN \ chmod 0755 /usr/local/bin/opencode && \ # NPM: CODEX, COPILOT ####################################################### npm install -g @openai/codex @github/copilot && \ - # PI (coding agent from the pi monorepo) ################################### - # --ignore-scripts per upstream install docs; pi needs no lifecycle scripts. + # PI ######################################################################## npm install -g --ignore-scripts @earendil-works/pi-coding-agent && \ # T3CODE (browser GUI for coding agents) ################################### npm install -g t3 && \ diff --git a/golang/Dockerfile b/golang/Dockerfile index 68ec588..85c7d9c 100644 --- a/golang/Dockerfile +++ b/golang/Dockerfile @@ -57,8 +57,7 @@ RUN \ ln -sf /home/coder/.opencode/bin/opencode /usr/local/bin/opencode && \ # NPM: CODEX, COPILOT ####################################################### npm install -g @openai/codex @github/copilot && \ - # PI (coding agent from the pi monorepo) ################################### - # --ignore-scripts per upstream install docs; pi needs no lifecycle scripts. + # PI ######################################################################## npm install -g --ignore-scripts @earendil-works/pi-coding-agent && \ # AGENT-BROWSER ############################################################## npm install -g agent-browser && \ diff --git a/nodejs/Dockerfile b/nodejs/Dockerfile index d796103..8324331 100644 --- a/nodejs/Dockerfile +++ b/nodejs/Dockerfile @@ -53,8 +53,7 @@ RUN \ ln -sf /home/coder/.opencode/bin/opencode /usr/local/bin/opencode && \ # NPM: CODEX, COPILOT ####################################################### npm install -g @openai/codex @github/copilot && \ - # PI (coding agent from the pi monorepo) ################################### - # --ignore-scripts per upstream install docs; pi needs no lifecycle scripts. + # PI ######################################################################## npm install -g --ignore-scripts @earendil-works/pi-coding-agent && \ # AGENT-BROWSER ############################################################## npm install -g agent-browser && \ diff --git a/php/Dockerfile b/php/Dockerfile index fc1f886..2cd7139 100644 --- a/php/Dockerfile +++ b/php/Dockerfile @@ -62,8 +62,7 @@ RUN \ ln -sf /home/coder/.opencode/bin/opencode /usr/local/bin/opencode && \ # NPM: CODEX, COPILOT ####################################################### npm install -g @openai/codex @github/copilot && \ - # PI (coding agent from the pi monorepo) ################################### - # --ignore-scripts per upstream install docs; pi needs no lifecycle scripts. + # PI ######################################################################## npm install -g --ignore-scripts @earendil-works/pi-coding-agent && \ # AGENT-BROWSER ############################################################## npm install -g agent-browser && \ diff --git a/python/Dockerfile b/python/Dockerfile index 40a1366..2a83f00 100644 --- a/python/Dockerfile +++ b/python/Dockerfile @@ -49,8 +49,7 @@ RUN \ ln -sf /home/coder/.opencode/bin/opencode /usr/local/bin/opencode && \ # NPM: CODEX, COPILOT ####################################################### npm install -g @openai/codex @github/copilot && \ - # PI (coding agent from the pi monorepo) ################################### - # --ignore-scripts per upstream install docs; pi needs no lifecycle scripts. + # PI ######################################################################## npm install -g --ignore-scripts @earendil-works/pi-coding-agent && \ # AGENT-BROWSER ############################################################## npm install -g agent-browser && \