### Highlights
- **Persistent Desktop Terminals**: Desktop terminals now belong to the session, survive server restarts with their scrollback, and stay synchronized with the TUI and other windows. Renamed terminals also keep their names across restarts. ([#60346](https://github.com/anomalyco/opencode/pull/60346))
- **Publish Interactive Artifacts**: Enable `"experimental": { "artifacts": true }` in `opencode.json` to let agents publish, update, and serve HTML or static artifacts through the built-in local provider or plugin-provided storage. ([#60351](https://github.com/anomalyco/opencode/pull/60351))
- **Guided Claude Agent Setup**: Select **Claude Agent** from the provider picker to copy `claude auth login`, install Claude Code, and verify the connection before continuing to model selection. ([#60603](https://github.com/anomalyco/opencode/pull/60603))
- **Choose a Base Branch Quickly**: While creating a worktree, open **Choose base branch** with `⌘⌥.` on macOS or `Ctrl+Alt+.` on Windows and Linux. The command is also available in the command palette and Settings › Shortcuts. ([#60579](https://github.com/anomalyco/opencode/pull/60579))
### Core
#### Improvements
- Added opt-in artifacts with `artifact_create`, `artifact_read`, `artifact_update`, and `artifact_delete`, including a built-in local static-file provider. ([#60351](https://github.com/anomalyco/opencode/pull/60351))
- Made enabled schedules run under `opencode serve` and coordinated multiple server processes so a schedule fires only once. Schedules remain opt-in through `experimental.schedules`. ([#60478](https://github.com/anomalyco/opencode/pull/60478))
- Raised OpenCode Go limits for DeepSeek V4.1 Flash. ([#60625](https://github.com/anomalyco/opencode/pull/60625))
#### Bug fixes
- Allowed user, project, and remote configuration to override Console-supplied provider names, limits, variants, settings, and headers. ([#60597](https://github.com/anomalyco/opencode/issues/60597))
- Kept local OpenCode service requests out of environment-configured proxies. ([#60441](https://github.com/anomalyco/opencode/pull/60441))
- Replaced Claude Code’s misleading `/login` instruction with `claude auth login`. Thanks [@Tarquinen](https://github.com/Tarquinen). ([#60592](https://github.com/anomalyco/opencode/pull/60592))
### TUI
#### Bug fixes
- Preserved prompt cursor styles applied by plugins when themes or unrelated prompt state change. ([#60599](https://github.com/anomalyco/opencode/pull/60599))
- Added missing right padding to edit and patch diffs. ([#60614](https://github.com/anomalyco/opencode/pull/60614))
- Extended the vertical session-tab activity pulse across the full tab width. ([#60338](https://github.com/anomalyco/opencode/pull/60338))
### Desktop
#### Improvements
- Moved terminals to persistent session PTYs shared with the TUI and other windows, with restored scrollback, server-side renaming, and restart persistence. ([#60346](https://github.com/anomalyco/opencode/pull/60346))
- Added guided Claude Agent installation, sign-in, connection checking, and recovery from **Needs sign-in**. ([#60603](https://github.com/anomalyco/opencode/pull/60603))
- Added **Choose base branch** to the command palette and shortcuts, bound to `⌘⌥.` or `Ctrl+Alt+.`. ([#60579](https://github.com/anomalyco/opencode/pull/60579))
- Simplified the session location popover and made long paths easier to read. ([#60492](https://github.com/anomalyco/opencode/pull/60492))
#### Bug fixes
- Kept terminal tab clicks and rename fields attached to the intended tab. ([#60645](https://github.com/anomalyco/opencode/pull/60645))
- Listed matching commands before sessions in command-palette search. ([#60616](https://github.com/anomalyco/opencode/pull/60616))
- Restored copying user messages from an open actions menu. ([#60576](https://github.com/anomalyco/opencode/pull/60576))
- Reduced repeated work and allocations while streaming Markdown, especially in long sessions. ([#60549](https://github.com/anomalyco/opencode/pull/60549), [#60562](https://github.com/anomalyco/opencode/pull/60562), [#60577](https://github.com/anomalyco/opencode/pull/60577))
### SDK
#### Improvements
- Added `client.experimental.artifacts.providers`, `list`, `create`, `get`, `update`, `delete`, and `view`. ([#60351](https://github.com/anomalyco/opencode/pull/60351))
- Extended `client.experimental.persistentPty.update` to rename terminals or clear a user title, and exposed `userTitle` plus `persistent-pty.updated` events. ([#60329](https://github.com/anomalyco/opencode/pull/60329))
### Extensions
#### Improvements
- Added `ctx.experimental.artifact.transform(...)` to Effect and Promise plugins for registering artifact providers, capabilities, prompts, and the default provider. ([#60351](https://github.com/anomalyco/opencode/pull/60351))