The open source coding agent.
OpenCode v1.1.1 overhauls permissions with granular glob-pattern rules, adds Kotlin LSP, MCP resources, per-project MCP overrides, and more.
$ git clone --branch v1.1.1 https://github.com/sst/opencode.git # already have the repo? check out this version: $ git checkout v1.1.1
{
"permission": {
"bash": {
"npm *": "allow",
"git *": "allow",
"rm *": "deny",
"*": "ask"
},
"edit": {
"*.md": "allow",
"*.ts": "ask",
"*": "deny"
}
}
} $ opencode run --variant minimal
- ›New granular
permissionconfig replacestools, supporting glob-pattern rules per tool (e.g., allownpm *, denyrm *, ask for everything else). - ›Adds Kotlin LSP integration for language-server-powered code intelligence in Kotlin projects.
- ›Adds MCP resources support, enabling models to access MCP-exposed resources.
- ›Adds per-project MCP config overrides so individual projects can customize their MCP server settings.
- ›New
POST /permission/:requestID/replyAPI endpoint for responding to permission requests programmatically.
+15 moreshow less
- ›Adds CORS whitelist support via
server.corsconfig option. - ›New
tui.session.selectAPI endpoint for TUI session navigation from plugins. - ›Adds
--variantflag to theruncommand for selecting agent variants. - ›Adds
/compactsession command to compress conversation history. - ›Adds image preview support in the desktop session viewer.
- ›New Osaka Jade theme available in TUI.
- ›Agent
stepsfield replaces deprecatedmaxStepsfor controlling agent step limits. - ›Instructions arrays are now merged across config files instead of overridden.
- ›Adds sandbox support for git worktrees, enabling work in multiple project directories simultaneously.
- ›Adds managed git worktrees support.
- ›Adds heap snapshot option to the TUI system menu for memory debugging.
- ›Assistant metadata is now included in session exports.
- ›Adds reject message support to permission dialogs for clearer user feedback.
- ›Adds escape key handling to permission dialogs for keyboard navigation.
- ›File context feature added to the desktop app.
- !The
PermissionNext.Eventstructure replacesPermission.Event: event name changed frompermission.updatedtopermission.asked;typefield renamed topermission;pattern(string) replaced bypatterns(array of strings);messagefield removed;responserenamed toreply;permissionIDrenamed torequestID; newalwaysfield added. - !Old endpoint
POST /session/:sessionID/permissions/:permissionIDis deprecated in favor ofPOST /permission/:requestID/reply. - !
GET /permissionnow returnsPermissionNext.Request[]instead ofPermission.Info[]. - !Mode and plugin globs no longer search subdirectories — only top-level files are matched.
- !Agent
toolsfield is deprecated — usepermissioninstead. - !Agent
maxStepsfield is deprecated — usestepsinstead.