Auto-updating the OpenCode Web image, with oh-my-openagent installed and integrated automatically.
10K+
opencode-oh-my-openagent is a Docker image for running OpenCode Web. Fetch the latest OpenCode and Oh My OpenAgent at any time, and have them plugin integrated automatically.
On every container start/restart, it can automatically:
oh-my-openagent plugin is present in OpenCode configThis gives you a reproducible, persistent, and low-maintenance runtime.
OPENCODE_AUTO_UPDATE=true)OMO_AUTO_INSTALL=true)oh-my-openagent) in opencode.jsonAt container startup (entrypoint.sh), the image:
opencode.json if it does not existoh-my-openagent) into config if missing| Variable | Default | Description | Example |
|---|---|---|---|
OPENCODE_AUTO_UPDATE | true | Auto install/update OpenCode on startup. | true |
OMO_AUTO_INSTALL | true | Auto install/update Oh My OpenAgent on startup. | true |
OMO_FORCE_REINSTALL | false | Force reinstall Oh My OpenAgent on every startup. | false |
OMO_INSTALL_ARGS | --no-tui --claude=no --openai=no --gemini=no --copilot=no --opencode-zen=no --zai-coding-plan=no --opencode-go=no --kimi-for-coding=no --vercel-ai-gateway=no --skip-auth | Installer arguments passed to bunx oh-my-opencode@latest install. | --no-tui --skip-auth |
OPENCODE_HOSTNAME | 0.0.0.0 | Host address for opencode web. | 0.0.0.0 |
OPENCODE_PORT | 4096 | Port for opencode web and container mapping. | 4096 |
OPENCODE_MDNS | false | Enable mDNS announcement (--mdns). | true |
OPENCODE_MDNS_DOMAIN | (empty) | Custom mDNS domain (--mdns-domain). | local |
OPENCODE_CORS | (empty) | Comma-separated CORS origins; converted to multiple --cors flags. | https://a.com,https://b.com |
OPENCODE_LOG_LEVEL | (empty) | Set runtime log level (--log-level). | info |
OPENCODE_PRINT_LOGS | false | Print logs to stdout (--print-logs). | true |
OPENCODE_SERVER_USERNAME | (empty) | Optional server auth username (if supported by runtime/env wiring). | admin |
OPENCODE_SERVER_PASSWORD | (empty) | Optional server auth password (if supported by runtime/env wiring). | strong-password |
./opencode-config → /root/.config/opencode./opencode-data → /root/.local/share/opencode./omo → /root/.omoOptions:
./opencode-state → /root/.local/state/opencode./opencode-cache → /root/.cache/opencode./opencode-bin → /root/.opencode/bin./workspace → /workspace/root/.opencode/bin is where the binary files are stored. When this directory is persisted, the behavior depends on environment OPENCODE_AUTO_UPDATE:
OPENCODE_AUTO_UPDATE is true: it automatically checks for the latest opencode version, and updates if your local version differs.OPENCODE_AUTO_UPDATE is false: it does not check versions, does not download opencode, and always uses the local version. You can remain on a specific version and manually import the binary.If this directory is NOT persisted, the container will download the opencode binary every time it starts.
Oh My OpenAgent uses OpenCode Zen’s free GPT-5-Nano model by default.
The model ID is: opencode/gpt-5-nano.
The configuration file for Oh My OpenAgent is located at:
./omo/omo.jsonc
Inside the container, the path is:
/root/omo/omo.jsonc
services:
opencode-oh-my-openagent:
image: 0xspica/opencode-oh-my-openagent
container_name: opencode-oh-my-openagent
restart: unless-stopped
ports:
- "4096:4096"
environment:
OPENCODE_AUTO_UPDATE: "true"
OMO_AUTO_INSTALL: "true"
OMO_FORCE_REINSTALL: "false"
volumes:
- ./opencode-config:/root/.config/opencode
- ./opencode-data:/root/.local/share/opencode
- ./omo:/root/.omo
- ./workspace:/workspace
Content type
Image
Digest
sha256:9fb58581c…
Size
120.6 MB
Last updated
3 months ago
docker pull 0xspica/opencode-oh-my-openagent