OpenCode 1.17.19 — The Baseline Snapshot#

Published on July 14, 2026

Part of the OpenCode Version Tracker series. | Repository

This is the first tracked version of OpenCode, the open-source terminal coding agent from SST (sst/opencode). The installed build is 1.17.19, read from the source at tag v1.17.19 on July 14, 2026. There is no prior version on record, so there is nothing to diff yet.

The Numbers#

SurfaceCount at v1.17.19
Environment variables (OPENCODE_*)120
Experimental env vars (OPENCODE_EXPERIMENTAL*)20
Experimental config / API keys (experimental.*)37
Source files under packages/3011

Environment Variables, Grouped#

The 120 variables cluster into clear subsystems.

GroupRepresentative VariablesWhat It Configures
Server and self-hostingOPENCODE_SERVER_DIST, OPENCODE_SERVER_USERNAME, OPENCODE_SERVER_PASSWORD, OPENCODE_PORT, OPENCODE_BASE_URL, OPENCODE_DEPLOYMENT_TARGETOpenCode runs as a server. You can host it yourself and guard it with basic auth.
Hosted storageOPENCODE_STORAGE_ADAPTER, OPENCODE_STORAGE_BUCKET, OPENCODE_STORAGE_REGION, OPENCODE_STORAGE_ACCOUNT_ID, OPENCODE_STORAGE_ACCESS_KEY_ID, OPENCODE_STORAGE_SECRET_ACCESS_KEYAn S3-compatible object store backs sessions and shared state.
Console and control planeOPENCODE_CONSOLE_TOKEN, OPENCODE_PROJECT_ID, OPENCODE_WORKSPACE_IDA hosted console with organizations and projects sits above the local CLI.
Claude Code interopOPENCODE_DISABLE_CLAUDE_CODE, OPENCODE_DISABLE_CLAUDE_CODE_PROMPT, OPENCODE_DISABLE_CLAUDE_CODE_SKILLSOpenCode reads Claude Code's project config, prompt, and skills by default. These three variables turn that off.
Skills and pluginsOPENCODE_DISABLE_EXTERNAL_SKILLS, OPENCODE_SKILL_PATTERN, OPENCODE_DISABLE_DEFAULT_PLUGINSSkills and plugins are first-class, loadable, and filterable.
Language serversOPENCODE_DISABLE_LSP_DOWNLOADOpenCode downloads language servers so the agent has real code intelligence.
Model catalogOPENCODE_MODELS_DEV, OPENCODE_MODELS_URL, OPENCODE_MODELS_PATH, OPENCODE_DISABLE_MODELS_FETCHModels load from the models.dev catalog at runtime, not from a baked-in list.
Web searchOPENCODE_WEBSEARCH_PROVIDER, OPENCODE_ENABLE_EXAWeb search is pluggable. Exa is a supported provider.
Performance instrumentationOPENCODE_PERFORMANCE, OPENCODE_PERFORMANCE_TRACE_DIR, OPENCODE_SHOW_TTFD, OPENCODE_AUTO_HEAP_SNAPSHOT, OPENCODE_FAST_BOOTStartup and runtime tracing is built in. SHOW_TTFD reports time to first draw for the terminal UI.
Record and replayOPENCODE_RECORDED_SCENARIO, OPENCODE_RECORD_ANTHROPIC_API_KEY, OPENCODE_RECORD_OPENAI_API_KEY, OPENCODE_HTTPAPI_EXERCISE_DB, and many OPENCODE_TEST_* varsA record/replay harness captures provider traffic for deterministic tests.

Experimental Flags#

Twenty variables begin with OPENCODE_EXPERIMENTAL. These gate features that exist in the source but are not on by default.

FlagLikely Purpose
OPENCODE_EXPERIMENTAL_BACKGROUND_SUBAGENTSSubagents that run in the background while the main session continues.
OPENCODE_EXPERIMENTAL_PARALLEL (with OPENCODE_ENABLE_PARALLEL)Parallel execution of agent work rather than one step at a time.
OPENCODE_EXPERIMENTAL_WORKSPACESA workspaces subsystem. The config API below shows create, list, sync, and warp methods behind it.
OPENCODE_EXPERIMENTAL_NATIVE_LLMA native model runtime inside OpenCode.
OPENCODE_EXPERIMENTAL_CODE_MODE, OPENCODE_EXPERIMENTAL_PLAN_MODEDistinct operating modes for editing versus planning.
OPENCODE_EXPERIMENTAL_LSP_TOOL, OPENCODE_EXPERIMENTAL_LSP_TYExpose the language server to the agent as a callable tool. LSP_TY likely targets the ty type checker.
OPENCODE_EXPERIMENTAL_EVENT_SYSTEM, OPENCODE_EXPERIMENTAL_WEBSOCKETSA real-time event transport between the server and its clients.
OPENCODE_EXPERIMENTAL_OXFMTAn experimental code formatter.
OPENCODE_EXPERIMENTAL_REFERENCESCode reference tracking for the agent.
OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAXA tunable cap on model output tokens.

Beyond these, a second tier of OPENCODE_ENABLE_* gates (ENABLE_EXA, ENABLE_QUESTION_TOOL, ENABLE_EXPERIMENTAL_MODELS) turns individual features on without the full experimental prefix.

The Experimental Config API#

The source also exposes 37 experimental.* keys. Most are server API methods that map to the cloud layer OpenCode is building.

Method familyWhat it does
experimental.workspace.* (create, list, remove, status, syncList, warp)Manage remote workspaces, including sync and a "warp" action.
experimental.console.* (get, listOrgs, switchOrg)Read the hosted console and switch between organizations.
experimental.controlPlane.moveSessionMove a running session between machines or orgs.
experimental.projectCopy.* (create, generateName, refresh, remove)Clone and manage server-side copies of a project.
experimental.chat.messages.transform, experimental.chat.system.transformHooks that rewrite messages and the system prompt before a request.
experimental.provider.small_modelA separate small, cheap model role alongside the main model.
experimental_repairToolCallAuto-repair malformed tool calls from the model.

Models#

The model list in the source holds over 150 literals, including test and placeholder entries such as claude-haiku-fake-model and gpt-test. This is not a curated set. OpenCode mirrors the models.dev catalog at runtime, so the list reflects that catalog plus fixtures. It spans Anthropic, OpenAI, Google, and local gpt-oss models. Model changes here carry low signal on their own and only matter when a release note calls one out.

What the Source Shape Shows#

OpenCode is one TypeScript monorepo. Nearly all of it, 3011 files, lives under packages/. Smaller directories tell the rest of the story: infra/ (8 files) means the project ships its own cloud infrastructure definitions, which fits SST, the company behind the SST framework. sdks/ (2) means client SDKs are published for the server API. The .opencode/ directory (4 files) means the project runs OpenCode on itself. A nix/ directory covers reproducible packaging.

This Release (1.17.19)#

Version 1.17.19 is a bug-fix release. The Core fixes are provider auth and reasoning details plus one console fix: OpenAI pro reasoning support, xAI Responses now default to no server-side storage, OAuth for Luna Responses Lite, Codex context limits applied to GPT-5.6 over OAuth, and a switch to another org after logging out of the console. The TUI now forwards CLI environment variables to its worker process, which confirms the terminal UI runs as a separate worker. Most of the notes are Desktop work: a new interface is under active redesign next to the old one, with per-prompt model selection in the composer, a reworked review panel, and middle-click to open sessions in new tabs. Two community contributors landed changes this release.

What This Baseline Tells Us#

OpenCode is server-first and multi-surface. One server can drive a terminal UI, a desktop app, an embedded web UI, and external editors through the Agent Client Protocol (OPENCODE_ACP_PROFILE, with Zed integration in OPENCODE_ZED_DB). Claude Code, Codex CLI, and Gemini CLI are terminal-first single binaries. OpenCode treats the terminal as one client of many.

The project is provider-agnostic by design. Models come from the models.dev catalog rather than a fixed vendor list, so Anthropic, OpenAI, and Google models sit side by side. The closed harnesses each ship from a single vendor. OpenCode's bet is breadth.

SST is building a paid cloud layer around the open-source core. The console with organizations, workspaces with sync and warp, a control plane that moves sessions, S3-backed storage, and project copies are all present in the surface. The open-source agent is the client. The hosted orgs, workspaces, and storage are the product on top. OpenCode also reads Claude Code's config and skills by default, a migration on-ramp for users already invested in the incumbent.

This is the reference point. From the next tracked version on, this post supplies the numbers to diff against: which env vars appear or disappear, which experimental flags graduate to defaults, which experimental.* methods stabilize, and, once a tag-to-tag diff exists, commit velocity and contributor count. As of v1.17.19, the count to remember is 120 environment variables, 20 of them experimental.

This analysis is based on publicly available open-source code and release metadata, conducted for educational and research purposes. All trademarks and software referenced belong to their respective owners.