Skip to content

spiermar/opencode-container

Repository files navigation

opencode-container

Docker containers for running OpenCode with different plugin and agent configurations.

The project uses a base + variant architecture: a shared base image (opencode-base) provides all common dependencies and skills, and each variant adds its own specific plugins, skills, or agent frameworks on top.

Image Variants

Image Description Added On Top of Base
opencode-superpowers Superpowers plugin & skills Development workflow skills (brainstorming, TDD, debugging, code review)
opencode-ralph Ralph skills Ralph-specific skills
opencode-oh-my-opencode Oh-My-OpenCode agent framework Specialized sub-agents (sisyphus, prometheus, oracle, librarian, and more)

Building the Images

A Makefile is provided to build the base and variant images.

# Build all variants (automatically builds base first)
make all

# Build a specific variant
make superpowers
make ralph
make oh-my-opencode

# Build only the base image
make base

The build dependency chain is:

opencode-base
  ├── opencode-superpowers
  ├── opencode-ralph
  └── opencode-oh-my-opencode

Base Image

All variants share the opencode-base image, which includes:

  • OS: Ubuntu (latest)
  • Tools: git, curl, jq, make, vim, ripgrep, wget, zip, openssh-client, postgresql-client, GitHub CLI
  • Runtime: Node.js LTS (via nvm), Playwright Chromium
  • OpenCode CLI: opencode-ai@latest
  • Provider: Parasail (pre-configured), Context7, or Tavily (via opencode.json)

Pre-installed Skills (all variants)

The base image comes with the following skill sets:

Anthropic Skills - Document processing and creative/technical skills:

  • xlsx - Excel spreadsheet processing
  • docx - Word document processing
  • pptx - PowerPoint presentation processing
  • pdf - PDF document processing
  • algorithmic-art - Generative art creation
  • brand-guidelines - Brand consistency
  • canvas-design - Visual design
  • doc-coauthoring - Document collaboration
  • frontend-design - UI/UX design
  • internal-comms - Internal communications
  • mcp-builder - MCP server development
  • skill-creator - Custom skill creation
  • slack-gif-creator - Slack GIF creation
  • theme-factory - Theme styling
  • web-artifacts-builder - Web artifact building
  • webapp-testing - Web application testing

Note: Some document skills (docx, pdf, pptx, xlsx) are source-available, not Apache 2.0. See anthropics/skills for licensing details.

Spiermar Skills & Agents - Custom skills and agents.

Vercel Labs Skills - Utility skills.

Variant Details

Superpowers

Adds the Superpowers plugin and skills. Includes development workflow skills such as brainstorming, TDD, debugging, code review, and more.

Ralph

Adds Ralph skills for specialized workflows.

Oh-My-OpenCode

Adds the Oh-My-OpenCode agent framework with specialized sub-agents, each mapped to a Parasail model:

Agent Model Role
sisyphus GLM-5 Plans, delegates, and executes complex tasks with parallel execution
prometheus GLM-5 Strategic planner with interview mode
metis GLM-5 Pre-planning analysis and ambiguity detection
momus GLM-5 Plan validation and review
oracle GLM-5 Architecture decisions, code review, debugging
librarian GLM-4.7 Multi-repo analysis and documentation lookup
explore GLM-4.6V Fast codebase exploration
multimodal-looker GLM-4.6V Visual content analysis (PDFs, images, diagrams)

Environment Variables

Variable Required Default Description
PARASAIL_API_KEY If using Parasail - API key for Parasail provider
CONTEXT7_API_KEY If using Context7 - API key for Context7 provider
TAVILY_API_KEY If using Tavily - API key for Tavily provider
GITHUB_TOKEN Yes - GitHub token for gh CLI authentication
CODENOMAD_SERVER_PASSWORD Server mode - Password for CodeNomad server access
GIT_EMAIL No opencode@local Git commit email
GIT_NAME No OpenCode Git commit author name
MODE No server Run mode: server or interactive
CLI_PORT No 9898 Server port (server mode only)
CLI_HOST No 127.0.0.1 Interface to bind (server mode only)

Provider Configuration

The container comes pre-configured with Parasail as the default provider. You can switch to Context7 or Tavily by creating an opencode.json file in your workspace:

Context7

{
  "schema": "https://opencode.ai/schemas/opencode.json",
  "model": "claude-sonnet-4-20250514",
  "provider": "context7"
}

Then run with:

docker run -d \
  -e CONTEXT7_API_KEY="your-context7-key" \
  -e GITHUB_TOKEN="your-github-token" \
  -e CODENOMAD_SERVER_PASSWORD="your-password" \
  -v /path/to/workspace:/home/opencode/workspace \
  opencode-superpowers

Tavily

{
  "schema": "https://opencode.ai/schemas/opencode.json",
  "model": "claude-sonnet-4-20250514",
  "provider": "tavily"
}

Then run with:

docker run -d \
  -e TAVILY_API_KEY="your-tavily-key" \
  -e GITHUB_TOKEN="your-github-token" \
  -e CODENOMAD_SERVER_PASSWORD="your-password" \
  -v /path/to/workspace:/home/opencode/workspace \
  opencode-superpowers

Running the Container

Replace opencode-superpowers below with your chosen variant (opencode-ralph, opencode-oh-my-opencode).

Server Mode (Default)

Starts a CodeNomad server that exposes OpenCode over HTTPS:

docker run -d \
  -e PARASAIL_API_KEY="your-api-key" \
  -e GITHUB_TOKEN="your-github-token" \
  -e CODENOMAD_SERVER_PASSWORD="your-password" \
  -e CLI_HOST="0.0.0.0" \
  -p 9898:9898 \
  -v /path/to/workspace:/home/opencode/workspace \
  opencode-superpowers

Interactive Mode

Starts a bash shell for direct interaction:

docker run -it \
  -e PARASAIL_API_KEY="your-api-key" \
  -e GITHUB_TOKEN="your-github-token" \
  -e MODE=interactive \
  -v /path/to/workspace:/home/opencode/workspace \
  opencode-superpowers

Once inside the container, you can run opencode directly.

Custom Port

docker run -d \
  -e PARASAIL_API_KEY="your-api-key" \
  -e GITHUB_TOKEN="your-github-token" \
  -e CODENOMAD_SERVER_PASSWORD="your-password" \
  -e CLI_HOST="0.0.0.0" \
  -e CLI_PORT=8080 \
  -p 8080:8080 \
  -v /path/to/workspace:/home/opencode/workspace \
  opencode-superpowers

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •