> opencode.ai is the source of truth for OpenCode, the open source coding agent, including its apps, install commands, docs and releases. The current version is OpenCode v2.
> Cite the canonical page, https://opencode.ai/changelog/v1.1.1, not this Markdown file. For an index of the site, see https://opencode.ai/llms.txt.

# `"allow"` - automatically approve

2026-01-04 · v1.1.1

## Improvements

- **Granular Permissions with Object Syntax:** `"deny"` - automatically reject
- **Granular Permissions with Object Syntax:** `"ask"` - prompt the user for approval
- **Breaking Changes for SDK Users:** `Updated`: `{ id, type, pattern, sessionID, messageID, callID, message, metadata, time }`
- **Breaking Changes for SDK Users:** `Replied`: `{ sessionID, permissionID, response }`
- **Breaking Changes for SDK Users:** `Asked`: `{ id, sessionID, permission, patterns, metadata, always, tool: { messageID, callID } }`
- **Breaking Changes for SDK Users:** `Replied`: `{ sessionID, requestID, reply }`
- **Breaking Changes for SDK Users:** Event name changed from `permission.updated` to `permission.asked`
- **Breaking Changes for SDK Users:** `type` renamed to `permission`
- **Breaking Changes for SDK Users:** `pattern` is now `patterns` (array of strings)
- **Breaking Changes for SDK Users:** `message` field removed
- **Breaking Changes for SDK Users:** `response` renamed to `reply`
- **Breaking Changes for SDK Users:** `permissionID` renamed to `requestID`
- **Breaking Changes for SDK Users:** New `always` field contains patterns that would be approved for future requests if user selects "always"
- **Server Changes:** New endpoint: `POST /permission/:requestID/reply` for responding to permission requests
- **Server Changes:** Old endpoint `POST /session/:sessionID/permissions/:permissionID` is now deprecated
- **Server Changes:** `GET /permission` now returns `PermissionNext.Request[]` instead of `Permission.Info[]`
- **Server Changes:** Added CORS whitelist support via `server.cors` config option
- **Server Changes:** Added Content-Type headers for proxied static assets
- **Server Changes:** mDNS service name now includes port for uniqueness
- **Other Changes:** Agent `tools` field is deprecated - use `permission` instead
- **Other Changes:** Agent `maxSteps` is deprecated - use `steps` instead
- **Other Changes:** Unknown agent properties are now collected into `options`
- **Other Changes:** Mode and plugin globs no longer search subdirectories (simplified to top-level only)
- **Core:** Add development scripts for better debugging workflow in TUI
- **Core:** Ensure @opencode-ai/plugin exists only on first run
- **Core:** Add MCP resources support ([@paoloricciuti](https://github.com/paoloricciuti))
- **Core:** Initialize config in worktree
- **Core:** Prioritize free GPT-5-mini for small model in GitHub Copilot
- **Core:** Remove hardcoded .env read block and use new permissions model instead
- **Core:** Prevent duplicate plugin function initialization ([@ShpetimA](https://github.com/ShpetimA))
- **Core:** Update GitHub Copilot model priority list
- **Core:** Add variant field to chat message input
- **Core:** Update AGENTS.md documentation ([@aryasaatvik](https://github.com/aryasaatvik))
- **Core:** Fixed dependency installation and git worktree branch creation
- **Core:** Fixed an issue in the codebase
- **Core:** Add sandbox support for git worktrees to allow working in multiple directories per project
- **Core:** Add timeout to MCP client connection calls ([@RhysSullivan](https://github.com/RhysSullivan))
- **Core:** Add per-project MCP config overrides ([@jknlsn](https://github.com/jknlsn))
- **Core:** Improve root detection for Gradle multi-project builds in Kotlin language server ([@JBou](https://github.com/JBou))
- **Core:** Improve plugin loading to handle builtin plugin failures gracefully
- **Core:** Add reject message support to permission dialogs for better user feedback
- **Core:** Wrap queued user messages with reminder to stay on track
- **Core:** Add managed git worktrees
- **Core:** Upgrade OpenTUI to v0.1.68 using GPA
- **Core:** Add escape key handling to permission dialogs for better keyboard navigation
- **Core:** Add TUI session selection API endpoint for navigation ([@code-yeongyu](https://github.com/code-yeongyu))
- **Core:** Add Kotlin LSP integration ([@tjg184](https://github.com/tjg184))
- **Core:** Merge instructions arrays across config files instead of overriding them ([@elithrar](https://github.com/elithrar))
- **Core:** Add variant support for minimal mode
- **Core:** Fix Cloudflare AI Gateway SDK chat undefined error ([@englishm](https://github.com/englishm))
- **Core:** Handle NotFoundError for non-shared sessions in sync ([@Hona](https://github.com/Hona))
- **Core:** Improve plugin loading to handle builtin plugin failures gracefully
- **Core:** Update CI configuration
- **Core:** Add reload functionality and improve lazy utility with reset capability
- **Core:** Remove memory leak fixes documentation after implementation
- **Core:** Fix memory leaks in session management and improve permission error handling
- **Core:** Fix TUI permission tests for new evaluate function signature
- **Core:** Improve permission error handling and evaluation logic in TUI
- **Core:** Ignore
- **Core:** Add assistant metadata to session export ([@dmmulroy](https://github.com/dmmulroy))
- **Core:** Ensure new permissions changes work for special case bash commands like rm, cd, etc
- **Core:** Rework permission system
- **Core:** Remove outdated Haiku filter for GitHub Copilot ([@alcpereira](https://github.com/alcpereira))
- **Core:** Make install dependencies non-blocking
- **Core:** Use --no-cache flag when behind proxy to prevent connection hangs
- **Core:** Check for context overflow mid-turn in finish-step ([@aryasaatvik](https://github.com/aryasaatvik))
- **Core:** Display error if invalid agent is used in a command ([@Leka74](https://github.com/Leka74))
- **Core:** Add Content-Type headers for proxied static assets ([@monotykamary](https://github.com/monotykamary))
- **Terminal:** Add missing theme list keybind in TUI ([@aspiers](https://github.com/aspiers))
- **Terminal:** Handle duplicate PR creation when agent creates PR ([@elithrar](https://github.com/elithrar))
- **Terminal:** Fix system theme diff highlighting in TUI
- **Terminal:** Add --variant flag to run command ([@shuv1337](https://github.com/shuv1337))
- **Terminal:** Remove OpenRouter provider from priority list
- **Terminal:** Make LSP status icon muted when no LSPs are active ([@itsrainingmani](https://github.com/itsrainingmani))
- **Terminal:** Make MCP status icon muted when no MCP servers are enabled ([@itsrainingmani](https://github.com/itsrainingmani))
- **Terminal:** Pass attach directory to SDK client in TUI ([@shuv1337](https://github.com/shuv1337))
- **Terminal:** Handle actions/checkout v6 credential storage change ([@elithrar](https://github.com/elithrar))
- **Terminal:** Use Bun.sleep instead of Promise with setTimeout ([@edlsh](https://github.com/edlsh))
- **Terminal:** Add Osaka Jade theme ([@st-eez](https://github.com/st-eez))
- **Terminal:** Add heap snapshot option to system menu for debugging memory usage
- **Terminal:** Fixed Windows fallback for "less" command in session list ([@itsrainingmani](https://github.com/itsrainingmani))
- **Terminal:** Fix import command regex to properly handle file paths
- **Terminal:** Fix stats command day calculation and time filtering
- **Desktop:** Fix scroll position restoration in app
- **Desktop:** Don't override Ctrl+A on Windows
- **Desktop:** Improve auto-scroll behaviors in the application
- **Desktop:** Fixed editing projects in desktop application ([@dbpolito](https://github.com/dbpolito))
- **Desktop:** Update server URL normalization to retain path ([@OpeOginni](https://github.com/OpeOginni))
- **Desktop:** Add image preview support in session viewer ([@shuv1337](https://github.com/shuv1337))
- **Desktop:** Add /compact session command to compress conversation history
- **Desktop:** Adjust window drag region layout for desktop application
- **Desktop:** Relax request timeouts
- **Desktop:** Properly decode session ID for permission context in desktop app ([@OpeOginni](https://github.com/OpeOginni))
- **Desktop:** Work in progress on application features
- **Desktop:** Improve application startup time
- **Desktop:** Add work in progress desktop functionality
- **Desktop:** Add file context feature to app
- **Desktop:** Improve desktop window resize handle ([@dbpolito](https://github.com/dbpolito))

Released in [v1.1.1](https://github.com/anomalyco/opencode/releases/tag/v1.1.1)

Newer: [Fix permission rule matching to use permission field instead of pattern field](https://opencode.ai/changelog/v1.1.2) (v1.1.2)

Older: [Add Windows support for PTY and cross-platform build scripts in desktop application](https://opencode.ai/changelog/v1.0.223) (v1.0.223)

[All updates](https://opencode.ai/changelog)

---

If something here is wrong or missing, open an issue at https://github.com/anomalyco/opencode/issues.
