OpenCode v1.17: MCP Resources, OAuth Fix, –mini Mode OpenCode v1.17.10, released June 24, adds MCP resources and resource templates, fixes OAuth callback failures in WSL and container setups, and introduces a --mini CLI mode for scripting. The update closes long-standing GitHub issues and makes OpenCode spec-compliant for MCP, while the headless mode enables use in CI pipelines and shell scripts. OpenCode v1.17.10, released June 24, closes three long-standing gaps in one shot: the agent harness now implements MCP resources and resource templates https://opencode.ai/docs/mcp-servers/ — a spec feature that was missing since launch — fixes the OAuth callback failures that have been breaking WSL and container setups for months, and ships a --mini CLI mode that finally makes OpenCode useful in scripts and CI pipelines. These are not cosmetic changes. Each one was sitting in the GitHub issue tracker https://github.com/anomalyco/opencode/releases as a named blocker. MCP Resources: OpenCode Is Now Spec-Compliant Before v1.17, OpenCode implemented exactly half of the MCP spec: tools. Specifically, it handled tools/call — actions the agent invokes. What it did not implement was resources: the other half of MCP that covers readable content. Resources are URIs pointing to files, documents, database results, or any structured data a server wants to expose. GitHub Issue 15535 https://github.com/anomalyco/opencode/issues/15535 , opened months ago and voted up consistently, asked for exactly this. v1.17 ships resources/list and resources/read . More importantly, it adds resource template support — parameterized URI patterns that let servers expose dynamic data sources. A GitHub MCP server can now expose a template like github://repos/{owner}/{repo}/contents/{path} . OpenCode instantiates the template with variables from the session context and fetches the matching resource on demand. That is meaningfully different from a static tool call: it gives the agent a query interface to arbitrary data, not just a fixed function signature. The implementation includes proper access control — template tools are hidden when the user has denied access — and URI uniqueness enforcement to prevent collisions when multiple MCP servers expose resources with the same names. Both details matter in multi-server setups, which are increasingly common in production configurations. The OAuth Fix Everyone Was Waiting For The OAuth callback problem had accumulated a pile of GitHub issues: 9081 WSL2 https://github.com/anomalyco/opencode/issues/9081 , 16893 remote re-authentication , 17822 token overwritten after callback , 21454 non-localhost URLs , and 21702 token not refreshed in active sessions . The pattern was consistent: the callback listener would bind on IPv6 ::1 , the browser would redirect to IPv4 127.0.0.1 , and the two would fail to connect. The fix is three words in the changelog: “bound to IPv4 loopback.” If you have been seeing “connection refused” when authenticating MCP servers in WSL2, Docker, or devcontainers, this is the fix. Upgrade to v1.17.10 or v1.17.11 released June 26 and the OAuth flow should complete without manual intervention. No config changes needed. –mini Mode: Use OpenCode in Your Scripts OpenCode’s TUI is impressive — but it’s also the reason you cannot drop it cleanly into a shell script or GitHub Actions step. The terminal interface assumes an interactive session. --mini removes that assumption. With the flag, OpenCode runs the prompt, returns output, and exits. No interface rendering, no session management overhead. In a GitHub Actions workflow - name: Security review run: opencode --mini "scan this diff for hardcoded credentials: $ git diff HEAD~1 " Pre-commit hook opencode --mini "check staged files for common security anti-patterns" Quick one-off task opencode --mini "write unit tests for $ cat src/utils.ts " This is what makes an AI coding agent a composable Unix tool rather than a walled-off IDE feature. OpenCode is the only major agent harness with a first-class headless mode that works from a single flag. Backward Compatibility and What Else Landed v1.17.10 also restores legacy MCP tool names — broken in some earlier 1.17.x builds — restores v1 account config loading, and fixes OpenAI-compatible providers that were rejecting MCP tool schemas. If you held off upgrading due to compatibility concerns, those regressions are resolved. There is also internal scaffolding for plugin/model/provider v2. It is not user-facing yet, but it signals a more significant architectural release coming. How to Upgrade npm i -g opencode-ai@latest or opencode upgrade The full changelog is at opencode.ai/changelog https://opencode.ai/changelog . If you use MCP servers with resource endpoints, v1.17 is not optional — prior versions silently ignore everything those servers expose beyond tool calls. OpenCode crossed Claude Code in GitHub stars five days ago. The v1.17 release is part of why: the project is moving fast, and MCP resource support is a genuine differentiator against every other coding agent that still treats MCP as a tool-only interface.