Repository navigation
Publish a cross-platform npm installer for OpenCode Team #47
Description
Area
Distribution / installation / package / CI
Problem
Installation currently starts with cloning the repository and running a platform-specific script. The existing package.json is private and primarily supports the documentation toolchain.
Native Windows support is proposed in #44, but users would still have different Bash/PowerShell entry points. A published npm package could provide one versioned command-line interface across Windows, macOS, and Linux, with simpler installation and updates.
Proposal
Package the team assets and a Node.js CLI for explicit install, check, update/reinstall, and uninstall operations. For example, npx <package-name>@<version> install or a globally installed CLI; the final package name and command design should be agreed before publishing.
Use a shared implementation for filesystem/configuration behavior and keep platform-specific handling behind it. End users should not need Ruby or the documentation dependencies to install the team.
An npm CLI does not itself remove Windows symlink privilege requirements. Explicitly decide whether installed releases copy managed assets, use links, or support both release installation and an opt-in linked developer mode, and document how updates/uninstall track ownership.
Acceptance criteria
- Define the package name, supported Node.js versions, public CLI commands, and versioning/release policy.
- Ship all required agents, commands, skills,
team.yaml, and global instructions. - The same documented CLI works on Windows, macOS, and Linux without requiring users to run Bash/PowerShell installer scripts.
- Installation is explicit; adding the npm dependency alone does not silently change global OpenCode configuration.
- Repeated installs and updates are safe, and check reports the installed version/status.
- Respect the default OpenCode config directory and
OPENCODE_CONFIG_DIR. - Preserve local/external user entries and provider/model settings; uninstall removes only package-managed assets.
- Document copy/link semantics and Windows-specific privileges accurately.
- Test the actual
npm packartifact in a clean environment on all three platforms, including paths with spaces and install/check/update/uninstall. - Add a reproducible release workflow and transition instructions for existing git-clone installations.
- Distinguish installing this team package from installing/authenticating the OpenCode runtime.
Alternatives considered
Keep separate shell installers; wrap those installers from npm; or implement the small shared installer directly in Node.js. A wrapper alone would retain the shell requirements this proposal aims to simplify.
Compatibility
Complement #42/#44 rather than blocking the Windows fix. Coordinate supported OpenCode majors with the separate v2 compatibility work. Publishing the first package should follow an agreed release policy, not happen implicitly as part of implementation.
Activity