Add OpenCode Devcontainer Feature #1
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
1. High-Level Summary
What changed: A new devcontainer feature called "opencode" has been added
to the collection, enabling automated installation of the OpenCode CLI (an
open source coding agent) in development containers.
Why it changed: This addition expands the devcontainer features collection
to include OpenCode, allowing developers to easily provision development
environments with the OpenCode coding agent pre-installed via a simple
feature declaration.
2. Detailed Technical Breakdown
2.1 Behavior & Execution Flow
When a devcontainer includes this feature, the installation script:
ca-certificates,curl)https://opencode.ai-yflag ensures non-interactive installation2.2 Key Modifications
New files added:
src/opencode/devcontainer-feature.json- Feature manifest definingmetadata, version (0.0.1), and configurable options
src/opencode/install.sh- Shell script handling dependency installationand OpenCode CLI setup
src/opencode/README.md- Documentation with usage examples and optionstest/opencode/scenarios.json- Empty test scenarios configurationtest/opencode/test.sh- Verification test checking CLI availabilityCI pipeline updates:
opencodeto the feature matrix in both test and release jobswithin
.github/workflows/ci.yaml2.3 Design Considerations
features (atlas, starship) with identical file organization
ca-certificatesandcurlasprerequisites, keeping the footprint small
versionoption defaulting to "latest",though the installer script currently ignores non-latest versions
common-utilsviainstallsAfterto ensure base utilities are available2.4 Assumptions & Edge Cases
apt-get, limiting support to Debian-baseddistributions
VERSIONvariable is unset when "latest"but the curl command doesn't pass any version parameter to the installer
CLI" which should read "Install OpenCode CLI"
opecode:1instead ofopencode:13. Impact Assessment
Functionality:
Adds a new installable feature to the devcontainer collection, expanding
available tooling options for developers.
Performance:
No impact on existing features. Installation adds minimal overhead (two small
packages plus the OpenCode binary).
Reliability & correctness:
The test verifies basic CLI availability by checking help output. The empty
scenarios.jsonsuggests no additional test scenarios are configured.Security:
Executes a remote script via
curl | shpattern. Users implicitly trustthe
opencode.aidomain and its HTTPS certificate chain.Developer experience & maintainability:
Follows established patterns in the repository, making maintenance
straightforward. CI integration ensures the feature is tested against
Debian and Ubuntu base images.
Users or downstream systems:
Developers can now add OpenCode to devcontainers with a single feature
declaration, streamlining environment setup for teams using this coding agent.