Skip to content

feat(opencode): add installer for AI coding assistant#1063

Open
ogormans-deptstack wants to merge 5 commits intowebinstall:mainfrom
ogormans-deptstack:feat-opencode-v2
Open

feat(opencode): add installer for AI coding assistant#1063
ogormans-deptstack wants to merge 5 commits intowebinstall:mainfrom
ogormans-deptstack:feat-opencode-v2

Conversation

@ogormans-deptstack
Copy link
Copy Markdown

Summary

Add installer for opencode - an open-source AI coding assistant with terminal UI.

This PR addresses feedback from #1062 (which was closed) by:

  • Using anomalyco/opencode (124K stars, actively maintained) as the homepage
  • Pointing to the active fork instead of archived opencode-ai/opencode repository
  • Submitting opencode and crush as separate PRs as requested

Changes

  • opencode/releases.js - fetches from anomalyco/opencode, filters CLI-only binaries
  • opencode/install.sh - POSIX shell installer (bare binary pattern)
  • opencode/install.ps1 - Windows PowerShell support
  • opencode/README.md - comprehensive cheat sheet with transparent Ollama integration (clearly marked as optional)

Testing

  • node opencode/releases.js - returns filtered CLI binaries
  • shellcheck opencode/install.sh - passes
  • shfmt formatting - compliant

Related

Key Features

  • Multi-provider LLM support (Anthropic, OpenAI, Google, local Ollama)
  • Terminal-based TUI with file editing and shell access
  • Plugin system (oh-my-opencode) for multi-agent workflows
  • Optional local model support via Ollama (clearly documented)

Adds opencode (anomalyco/opencode) - the open source coding agent.

Changes from closed PR webinstall#1062:
- Points to anomalyco/opencode (active fork, 124K stars) instead of
  archived opencode-ai/opencode
- README clarifies Ollama integration as optional (not hidden)
- Adds Windows support (install.ps1)
- Filters CLI binaries only (excludes desktop/electron/baseline/musl)

Homepage: https://github.com/anomalyco/opencode
License: Apache-2.0
@coolaj86
Copy link
Copy Markdown
Member

Thank you. I will be bringing this in.

Add comprehensive agent-focused documentation including:
- When to use opencode vs alternatives
- Multi-provider configuration guide
- Plugin system (oh-my-opencode) setup
- Local model integration with Ollama
- Common workflows and integration patterns
- Comparison table with Cursor and GitHub Copilot

Proactive addition based on crush PR feedback.
@ogormans-deptstack
Copy link
Copy Markdown
Author

✅ Proactively added opencode/SKILL.md following the SKILL.md pattern requested in PR #1064.

Includes comprehensive agent-focused documentation:

  • When to use opencode vs alternatives (Cursor, GitHub Copilot)
  • Multi-provider LLM configuration
  • Plugin system (oh-my-opencode) setup and agent configuration
  • Local model integration with Ollama
  • Common coding workflows
  • Git and testing framework integration
  • Troubleshooting guide

Ready for review! 🚀

@ogormans-deptstack
Copy link
Copy Markdown
Author

Thank you. I will be bringing this in.

thanks for all your work, great to finally contribute back

Comment thread opencode/releases.js
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For some reason, releases.js fetches the .yml files too from the release assets. Try applying a filter to skip those.

And why is musl builds getting filtered out? Webi handles both gnu and musl releases.

- Remove .yml/.yaml file filtering (auto-update manifests)
- Include musl builds (webi handles both gnu and musl)
- Addresses feedback from @detox-24
@ogormans-deptstack
Copy link
Copy Markdown
Author

Fixed in commit 38f16f3

Thanks @detox-24 for the excellent feedback!

Changes:

  • Removed .yml/.yaml file filtering to skip auto-update manifests
  • Included musl builds (webi handles both gnu and musl variants)

The releases.js now correctly filters out the YAML manifest files while preserving all binary archives including musl variants. Tested locally - working as expected! 🚀

- releases.js: fix dead code path — github.js flattens to asset entries,
  not nested release.assets. Rewrote to filter all.releases directly.
  Now correctly returns only CLI binaries (excludes desktop/electron apps,
  .yml manifests, .json metadata, baseline builds, packages, signatures).
- install.ps1: clean up uppercase IF→if, remove TODO comment, fix
  indentation to match _example/install.ps1 template exactly.
- install.sh: simplify pkg_get_current_version (remove unnecessary cut).
- README.md: rewrite to webi cheat-sheet style (~100 lines). Riff on
  oh-my-opencode's config simplicity — one plugin line, providers, done.
- SKILL.md: trim from 268→110 lines, apply prettier formatting.
- test/install.sh: add opencode to all 3 test manifest lists.

Testing:
- releases.js: verified 10 normalized releases (darwin/linux/windows,
  arm64/amd64, including musl variants)
- install.ps1: Docker test (pwsh alpine + real Windows zip) ALL PASSED
- shellcheck: clean
- shfmt: compliant
- prettier: formatted
- releases.js: filter out musl builds (-musl suffix) to prevent
  normalizer duplicate key collisions — both musl and gnu map to the
  same os/arch, causing ambiguous release selection on Linux
- install.sh: add chmod a+x after moving binary (matches bat/install.sh
  pattern, ensures execute permission regardless of archive format)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants