Files
opencode-devbox/DOCKER_HUB.md
T
joakimp 896380bb9c
Validate / docs-check (push) Successful in 16s
Validate / validate-base (push) Successful in 12m25s
Validate / validate-omos (push) Successful in 16m40s
Validate / validate-with-pi (push) Successful in 14m0s
Validate / validate-omos-with-pi (push) Successful in 18m18s
Rename @mariozechner/pi-coding-agent to @earendil-works/pi-coding-agent
Pi moved to its new home at earendil-works on 2026-05-07
(https://pi.dev/news/2026/5/7/pi-has-a-new-home).

The old @mariozechner/pi-coding-agent npm package is deprecated with
the explicit message 'please use @earendil-works/pi-coding-agent
instead going forward', and the version stream has moved on (old
top-out 0.73.1; new currently 0.74.0). Anyone npm-installing the old
name today gets a deprecation warning + a stale binary, so this is
a non-optional migration before the next tagged release.

Sweep:
- Dockerfile (production single-Dockerfile path) and Dockerfile.variant
  (split-base path on main): npm install -g target updated.
- README, AGENTS, HUB_TEMPLATE: github.com/mariozechner/pi-coding-agent
  URL refs (which now 404) -> github.com/earendil-works/pi.
- DOCKER_HUB.md regenerated (5529 bytes, ~78% headroom).
- CHANGELOG Unreleased: rename entry added with migration context.

Brew install references (`brew install pi-coding-agent`) left as-is:
formula still works at 0.73.1 and a homebrew tap update is tracked
upstream at earendil-works/pi#2755.

Historical CHANGELOG entries: only github URL refs updated (the
package name was never spelled out in those entries; we're correcting
dead hyperlinks, not rewriting feature descriptions).
2026-05-09 17:58:07 +02:00

5.4 KiB

opencode-devbox

Portable AI developer environment for opencode. Debian-based, with git, SSH, Node.js, AWS CLI v2, and common dev tools pre-installed.

Designed for teams who want a reproducible coding-agent setup that runs the same on every laptop and CI runner — without forcing each developer to install Bun, Node, AWS CLI, mempalace, or maintain shell config drift across machines.

Image Variants

Tag Description
latest / vX.Y.Z Base image — opencode, Node.js, AWS CLI, dev tools
latest-omos / vX.Y.Z-omos Base + oh-my-opencode-slim multi-agent orchestration and Bun
latest-with-pi / vX.Y.Z-with-pi Base + pi as alternative/complementary harness (shares the mempalace install with opencode)
latest-omos-with-pi / vX.Y.Z-omos-with-pi OMOS + pi together

All variants support linux/amd64 and linux/arm64.

Quick Start

docker run -it --rm \
  -e ANTHROPIC_API_KEY=your-key \
  -e OPENCODE_PROVIDER=anthropic \
  -e GIT_USER_NAME="Your Name" \
  -e GIT_USER_EMAIL="you@example.com" \
  -v ~/projects:/workspace \
  -v ~/.ssh:/home/developer/.ssh:ro \
  joakimp/opencode-devbox:latest

Drops you straight into opencode with your project mounted at /workspace.

For an interactive shell first (useful for AWS SSO login, multi-harness workflows, or just bash):

docker run -it --rm \
  -e ANTHROPIC_API_KEY=your-key \
  -e OPENCODE_PROVIDER=anthropic \
  -v ~/projects:/workspace \
  -v ~/.ssh:/home/developer/.ssh:ro \
  joakimp/opencode-devbox:latest bash

Then run opencode, pi (on *-with-pi variants), or aws sso login from the shell.

For docker-compose users, the source repo provides docker-compose.yml, .env.example, and a one-liner docker compose up -d workflow with named volumes pre-wired.

What's Inside

  • opencode — primary coding-agent harness. Multi-provider (Anthropic, OpenAI, Bedrock, Google, Groq, etc.).
  • pi (in *-with-pi variants) — lightweight TUI coding-agent that coexists with opencode and shares the same mempalace install. Includes the mcp-loader extension so any local-stdio or remote streamable-HTTP MCP server (searxng, gitea, context7, …) can be added by editing ~/.pi/agent/settings.json.
  • mempalace — persistent AI memory layer (ChromaDB + SQLite). Wing/diary/knowledge-graph entries are mutually visible to opencode and pi.
  • oh-my-opencode-slim (in *-omos variants) — multi-agent orchestration on top of opencode (council, fallback chains, named agents).
  • AWS CLI v2 with SSO support, Node.js LTS, Bun (OMOS variants), uv (Python), gosu for clean UID/GID adjustment to match your host workspace.
  • MCP wrappers for mempalace pre-installed and pre-wired to both harnesses.

Authentication

The container reads provider credentials from environment variables and host-mounted config:

  • Anthropic / OpenAI / Groq / others: set OPENCODE_PROVIDER and the corresponding *_API_KEY via -e or .env.
  • AWS Bedrock (SSO): mount ~/.aws from the host, OPENCODE_PROVIDER=amazon-bedrock, then aws sso login inside the container. Tokens persist across container restarts via the host bind-mount.
  • OAuth / device-code providers: auth state lives in opencode's config, which is persisted via the devbox-opencode-config named volume.

Full Bedrock walkthrough (IAM roles, permissions, multi-account setups): see the AWS Bedrock Authentication section on gitea.

Persistence

Volume Mount Survives
devbox-opencode-config ~/.config/opencode container recreate, image rebuild
devbox-pi-config ~/.pi container recreate, image rebuild — incl. user-installed pi packages via pi install (NPM_CONFIG_PREFIX points into the volume)
devbox-palace (uncomment) ~/.mempalace container recreate, image rebuild — palace data is precious, treat as primary storage
devbox-chroma-cache ~/.cache/chroma container recreate (model cache, disposable — re-downloads in seconds)

Workspace bind-mount (/workspace) is your project directory on the host, so source code is never inside the container.

Full persistence reference, including multi-user (SIGNUM) isolation and host bind-mount alternatives: see the README on gitea.

Where to Go Next

License

MIT. See https://gitea.jordbo.se/joakimp/opencode-devbox/src/branch/main/LICENSE.


This description is generated by scripts/generate-dockerhub-md.py from a hand-maintained template. Edit the template (not this file) and regenerate.