Scope
Base ref: origin/main
Source ref: opencode/dev
Theme id: opencode-tools
Commits mapped: 68
Date span: 2026-01-20 to 2026-02-13
Theme Summary
Tool execution model, skill integration, and MCP interactions.
Mapping Rule
Commits are assigned to one issue by dominant touched-path prefix (most matched files in commit; ties resolved by longest prefix then fixed theme order).
Top Path Hotspots
packages/opencode/src/plugin/codex.ts (9)
packages/opencode/src/skill/skill.ts (8)
packages/opencode/src/plugin/index.ts (8)
packages/opencode/src/acp/agent.ts (7)
packages/opencode/src/plugin/copilot.ts (6)
packages/opencode/src/tool/task.ts (6)
packages/opencode/src/tool/apply_patch.ts (5)
packages/opencode/src/tool/registry.ts (5)
packages/opencode/src/tool/read.ts (5)
packages/opencode/src/mcp/index.ts (4)
Commits
733226de chore: generate
74bd52e8 fix: ensure apply patch tool emits edited events
8f62d4a5 fix(mcp): register OAuth callback before opening browser (fix(mcp): register OAuth callback before opening browser anomalyco/opencode#9646 )
e8b0a65c feat: Support ACP audience by mapping to ignore and synthetic (feat: Support ACP audience by mapping to ignore and synthetic anomalyco/opencode#9593 )
19fe3e26 mark subagent sessions as agent initiated to ensure they dont count against quota (got the ok from copilot team)
2049af4d chore: generate
301e74d9 fix: Persist loaded model and mode on ACP session load (fix: Persist loaded model and mode on ACP session load anomalyco/opencode#9829 )
ab3d412a tweak: adjust skill tool description to make it more clear which skills are available
c89f6e7a add chat.headers hook, adjust codex and copilot plugins to use it
d9f0287d tweak: add back todo list tools for openai models
3b7c347b tweak: bash tool, ensure cat will trigger external_directory perm
3eaf6f3b fix(ui): show file path in apply_patch request permission screen (fix(ui): show file path in apply_patch request permission screen anomalyco/opencode#10079 )
e4286ae7 fix(codex): write refresh tokens to openai auth ([BUG] OpenAI OAuth token refresh incorrectly writes tokens under 'codex' auth key (#10011) anomalyco/opencode#10010 ) (fix(codex): write refresh tokens to openai auth (#10010) anomalyco/opencode#10011 )
fc0210c2 fix(acp): rename setSessionModel to unstable_setSessionModel (fix(acp): rename setSessionModel to unstable_setSessionModel anomalyco/opencode#9940 )
29cebd73 feat(mcp log): print mcp stderr to opencode log file (feat(mcp log): print mcp stderr to opencode log file anomalyco/opencode#9982 )
1d09343f fix: allow gpt-5.1-codex model in codex auth pluginFixes (fix: allow gpt-5.1-codex model in codex auth pluginFixes anomalyco/opencode#10181 )
4173adf5 feat(tasks): Add model info as part of metadata (feat(tasks): Add model info as part of metadata anomalyco/opencode#10307 )
b978ca11 fix: retry webfetch with simple UA on 403 (fix: retry webfetch with simple UA on 403 anomalyco/opencode#10328 )
e2d8310b chore: generate
f4cf3f49 fix(web): construct apply_patch metadata before requesting permission (fix(web): construct apply_patch metadata before requesting permission anomalyco/opencode#10422 )
021d9d10 fix(app): reactive file tree
45b09c14 tweak: when using messages api for copilot, attach anthropic beta headers
a8c18dba fix(core): expose Instance.directory to custom tools
1f931384 feat(core): add worktree to plugin tool context
898118ba feat: support headless authentication for chatgpt/codex (feat: support headless authentication for chatgpt/codex anomalyco/opencode#10890 )
026b3cc8 bump plugin version
4d2696e0 tweak: add ctx.abort to grep tool
5a0b3ee6 fix: ensure copilot plugin properly sets headers for new messages api
63f5669e fix(opencode): ensure unsub(PartUpdated) is always called in TaskTool (fix(opencode): ensure unsub(PartUpdated) is always called in TaskTool anomalyco/opencode#9992 )
8798a77a bump: plugins
92eb9828 fix: undo change that used anthropic messages endpoint for anthropic models on copilot due to ratelimiting issues, go back to completions endpoint instead
9a8da20a chore: generate
45ec3105 feat: support config skill registration (feat: support config skill registration anomalyco/opencode#9640 )
75166a19 fix: use ?? to prevent args being undefined for mcp server in some cases (fix: use ?? to prevent args being undefined for mcp server in some cases anomalyco/opencode#11203 )
e5b33f8a fix(opencode): add AbortSignal support to Ripgrep.files() and GlobTool (fix(opencode): add AbortSignal support to Ripgrep.files() and GlobTool anomalyco/opencode#10833 )
fdd484d2 feat: expose acp thinking variants (feat: expose acp thinking variants anomalyco/opencode#9064 )
612b656d fix: adjust resolve parts so that when messages with multiple @ references occur, the tool calls are properly ordered
c0e71c42 fix: don't --follow by default for grep and other things using ripgrep (fix: don't --follow by default for grep and other things using ripgrep anomalyco/opencode#11415 )
e7ff7143 fix: handle redirected_statement treesitter node in bash permissions (fix: handle redirected_statement treesitter node in bash permissions anomalyco/opencode#6737 )
81ac41e0 feat: make skills invokable as slash commands in the TUI (feat: make skills invokable as slash commands in the TUI anomalyco/opencode#11390 )
83d0e48e tui: fix task status to show current tool state from message store
aa6b552c Revert pr that was mistakenly merged (Revert pr that was mistakenly merged anomalyco/opencode#11844 )
17e62b05 feat: add support for reading skills from .agents/skills directories (feat: add support for reading skills from .agents/skills directories anomalyco/opencode#11842 )
39753296 feat: improve skills, better prompting, fix permission asks after invoking skills, ensure agent knows where scripts/resources are (feat: improve skills, better prompting, fix permission asks after invoking skills, ensure agent knows where scripts/resources are anomalyco/opencode#11737 )
93e06027 fix: prevent memory leaks from AbortController closures (fix: prevent memory leaks from AbortController closures anomalyco/opencode#12024 )
a68fedd4 chore: adjust way skill dirs are whitelisted (chore: adjust way skill dirs are whitelisted anomalyco/opencode#12026 )
556adad6 fix: wait for dependencies before loading custom tools and plugins (fix: wait for dependencies before loading custom tools and plugins anomalyco/opencode#12227 )
09a0e921 fix(plugin): user plugins override built-in plugins for same provider (fix(plugin): user plugins override built-in plugins for same provider anomalyco/opencode#12361 )
1824db13 tweak: load user plugins after builtin (tweak: load user plugins after builtin anomalyco/opencode#12373 )
36637b3b chore: rm hardcoded conditional that was used for testing (chore: rm hardcoded conditional that was used for testing anomalyco/opencode#12371 )
47f00d23 enable 5.3 codex
64e2bf8b tweak: adjust task tool description/input to alleviate tool call failures that sometimes occured w/ gpt models (tweak: adjust task tool description/input to alleviate tool call failures that sometimes occured w/ gpt models anomalyco/opencode#12214 )
9ff423be senior engineer senior engineering
b5511958 tweak: move codex 5.3 model definition to the plugin so that models.dev doesnt have to show unsupported model for others (tweak: move codex 5.3 model definition to the plugin so that models.dev doesnt have to show unsupported model for others anomalyco/opencode#12344 )
fba5a79c fix: ensure that github copilot plugin properly sets headers when used in other clients than tui (fix: ensure that github copilot plugin properly sets headers when used in other clients than tui anomalyco/opencode#12316 )
266de27a feat(skill): add skill discovery from URLs via well-known RFC
9497cfdf fix(app): don't rely on metadata.summary in task tool render (fix(app): don't rely on metadata.summary in task tool render anomalyco/opencode#12497 )
c35bd398 tui: parallelize skill downloads for faster loading
53298145 fix: add directory parameter to plugin client for multi-project support (fix: add directory parameter to plugin client for multi-project support anomalyco/opencode#11344 )
56b340b5 fix(opencode): ACP File write should create the file if it doesn't exist (fix(opencode): ACP File write should create the file if it doesn't exist anomalyco/opencode#12854 )
d9b4535d chore: generate
006d673e tweak: make read tool offset 1 indexed instead of 0 to avoid confusion that could be caused by line #s being 1 based (tweak: make read tool offset 1 indexed instead of 0 to avoid confusion that could be caused by line #s being 1 based anomalyco/opencode#13198 )
3befd0c6 tweak: use promise all for mcp listTools calls (tweak: use promise all for mcp listTools calls anomalyco/opencode#13229 )
6b4d617d feat: adjust read tool so that it can handle dirs too (feat: adjust read tool so that it can handle dirs too anomalyco/opencode#13090 )
624dd94b tweak: tool outputs to be more llm friendly (tweak: tool outputs to be more llm friendly anomalyco/opencode#13269 )
ba54cee5 feat(tool): return image attachments from webfetch (feat(tool): return image attachments from webfetch anomalyco/opencode#13331 )
e6e9c15d improve codex model list
1608565c feat(hook): add tool.definition hook for plugins to modify tool description and parameters (feat(hook): add tool.definition hook for plugins to modify tool description and parameters anomalyco/opencode#4956 )
Acceptance Checklist
Scope
origin/mainopencode/devopencode-tools2026-01-20to2026-02-13Theme Summary
Tool execution model, skill integration, and MCP interactions.
Mapping Rule
Commits are assigned to one issue by dominant touched-path prefix (most matched files in commit; ties resolved by longest prefix then fixed theme order).
Top Path Hotspots
packages/opencode/src/plugin/codex.ts(9)packages/opencode/src/skill/skill.ts(8)packages/opencode/src/plugin/index.ts(8)packages/opencode/src/acp/agent.ts(7)packages/opencode/src/plugin/copilot.ts(6)packages/opencode/src/tool/task.ts(6)packages/opencode/src/tool/apply_patch.ts(5)packages/opencode/src/tool/registry.ts(5)packages/opencode/src/tool/read.ts(5)packages/opencode/src/mcp/index.ts(4)Commits
733226dechore: generate74bd52e8fix: ensure apply patch tool emits edited events8f62d4a5fix(mcp): register OAuth callback before opening browser (fix(mcp): register OAuth callback before opening browser anomalyco/opencode#9646)e8b0a65cfeat: Support ACP audience by mapping to ignore and synthetic (feat: Support ACP audience by mapping to ignore and synthetic anomalyco/opencode#9593)19fe3e26mark subagent sessions as agent initiated to ensure they dont count against quota (got the ok from copilot team)2049af4dchore: generate301e74d9fix: Persist loaded model and mode on ACP session load (fix: Persist loaded model and mode on ACP session load anomalyco/opencode#9829)ab3d412atweak: adjust skill tool description to make it more clear which skills are availablec89f6e7aadd chat.headers hook, adjust codex and copilot plugins to use itd9f0287dtweak: add back todo list tools for openai models3b7c347btweak: bash tool, ensure cat will trigger external_directory perm3eaf6f3bfix(ui): show file path in apply_patch request permission screen (fix(ui): show file path in apply_patch request permission screen anomalyco/opencode#10079)e4286ae7fix(codex): write refresh tokens to openai auth ([BUG] OpenAI OAuth token refresh incorrectly writes tokens under 'codex' auth key (#10011) anomalyco/opencode#10010) (fix(codex): write refresh tokens to openai auth (#10010) anomalyco/opencode#10011)fc0210c2fix(acp): rename setSessionModel to unstable_setSessionModel (fix(acp): rename setSessionModel to unstable_setSessionModel anomalyco/opencode#9940)29cebd73feat(mcp log): print mcp stderr to opencode log file (feat(mcp log): print mcp stderr to opencode log file anomalyco/opencode#9982)1d09343ffix: allow gpt-5.1-codex model in codex auth pluginFixes (fix: allow gpt-5.1-codex model in codex auth pluginFixes anomalyco/opencode#10181)4173adf5feat(tasks): Add model info as part of metadata (feat(tasks): Add model info as part of metadata anomalyco/opencode#10307)b978ca11fix: retry webfetch with simple UA on 403 (fix: retry webfetch with simple UA on 403 anomalyco/opencode#10328)e2d8310bchore: generatef4cf3f49fix(web): construct apply_patch metadata before requesting permission (fix(web): construct apply_patch metadata before requesting permission anomalyco/opencode#10422)021d9d10fix(app): reactive file tree45b09c14tweak: when using messages api for copilot, attach anthropic beta headersa8c18dbafix(core): expose Instance.directory to custom tools1f931384feat(core): add worktree to plugin tool context898118bafeat: support headless authentication for chatgpt/codex (feat: support headless authentication for chatgpt/codex anomalyco/opencode#10890)026b3cc8bump plugin version4d2696e0tweak: add ctx.abort to grep tool5a0b3ee6fix: ensure copilot plugin properly sets headers for new messages api63f5669efix(opencode): ensure unsub(PartUpdated) is always called in TaskTool (fix(opencode): ensure unsub(PartUpdated) is always called in TaskTool anomalyco/opencode#9992)8798a77abump: plugins92eb9828fix: undo change that used anthropic messages endpoint for anthropic models on copilot due to ratelimiting issues, go back to completions endpoint instead9a8da20achore: generate45ec3105feat: support config skill registration (feat: support config skill registration anomalyco/opencode#9640)75166a19fix: use ?? to prevent args being undefined for mcp server in some cases (fix: use ?? to prevent args being undefined for mcp server in some cases anomalyco/opencode#11203)e5b33f8afix(opencode): addAbortSignalsupport toRipgrep.files()andGlobTool(fix(opencode): addAbortSignalsupport toRipgrep.files()andGlobToolanomalyco/opencode#10833)fdd484d2feat: expose acp thinking variants (feat: expose acp thinking variants anomalyco/opencode#9064)612b656dfix: adjust resolve parts so that when messages with multiple @ references occur, the tool calls are properly orderedc0e71c42fix: don't --follow by default for grep and other things using ripgrep (fix: don't --follow by default for grep and other things using ripgrep anomalyco/opencode#11415)e7ff7143fix: handle redirected_statement treesitter node in bash permissions (fix: handle redirected_statement treesitter node in bash permissions anomalyco/opencode#6737)81ac41e0feat: make skills invokable as slash commands in the TUI (feat: make skills invokable as slash commands in the TUI anomalyco/opencode#11390)83d0e48etui: fix task status to show current tool state from message storeaa6b552cRevert pr that was mistakenly merged (Revert pr that was mistakenly merged anomalyco/opencode#11844)17e62b05feat: add support for reading skills from .agents/skills directories (feat: add support for reading skills from .agents/skills directories anomalyco/opencode#11842)39753296feat: improve skills, better prompting, fix permission asks after invoking skills, ensure agent knows where scripts/resources are (feat: improve skills, better prompting, fix permission asks after invoking skills, ensure agent knows where scripts/resources are anomalyco/opencode#11737)93e06027fix: prevent memory leaks from AbortController closures (fix: prevent memory leaks from AbortController closures anomalyco/opencode#12024)a68fedd4chore: adjust way skill dirs are whitelisted (chore: adjust way skill dirs are whitelisted anomalyco/opencode#12026)556adad6fix: wait for dependencies before loading custom tools and plugins (fix: wait for dependencies before loading custom tools and plugins anomalyco/opencode#12227)09a0e921fix(plugin): user plugins override built-in plugins for same provider (fix(plugin): user plugins override built-in plugins for same provider anomalyco/opencode#12361)1824db13tweak: load user plugins after builtin (tweak: load user plugins after builtin anomalyco/opencode#12373)36637b3bchore: rm hardcoded conditional that was used for testing (chore: rm hardcoded conditional that was used for testing anomalyco/opencode#12371)47f00d23enable 5.3 codex64e2bf8btweak: adjust task tool description/input to alleviate tool call failures that sometimes occured w/ gpt models (tweak: adjust task tool description/input to alleviate tool call failures that sometimes occured w/ gpt models anomalyco/opencode#12214)9ff423besenior engineer senior engineeringb5511958tweak: move codex 5.3 model definition to the plugin so that models.dev doesnt have to show unsupported model for others (tweak: move codex 5.3 model definition to the plugin so that models.dev doesnt have to show unsupported model for others anomalyco/opencode#12344)fba5a79cfix: ensure that github copilot plugin properly sets headers when used in other clients than tui (fix: ensure that github copilot plugin properly sets headers when used in other clients than tui anomalyco/opencode#12316)266de27afeat(skill): add skill discovery from URLs via well-known RFC9497cfdffix(app): don't rely on metadata.summary in task tool render (fix(app): don't rely on metadata.summary in task tool render anomalyco/opencode#12497)c35bd398tui: parallelize skill downloads for faster loading53298145fix: add directory parameter to plugin client for multi-project support (fix: add directory parameter to plugin client for multi-project support anomalyco/opencode#11344)56b340b5fix(opencode): ACP File write should create the file if it doesn't exist (fix(opencode): ACP File write should create the file if it doesn't exist anomalyco/opencode#12854)d9b4535dchore: generate006d673etweak: make read tool offset 1 indexed instead of 0 to avoid confusion that could be caused by line #s being 1 based (tweak: make read tool offset 1 indexed instead of 0 to avoid confusion that could be caused by line #s being 1 based anomalyco/opencode#13198)3befd0c6tweak: use promise all for mcp listTools calls (tweak: use promise all for mcp listTools calls anomalyco/opencode#13229)6b4d617dfeat: adjust read tool so that it can handle dirs too (feat: adjust read tool so that it can handle dirs too anomalyco/opencode#13090)624dd94btweak: tool outputs to be more llm friendly (tweak: tool outputs to be more llm friendly anomalyco/opencode#13269)ba54cee5feat(tool): return image attachments from webfetch (feat(tool): return image attachments from webfetch anomalyco/opencode#13331)e6e9c15dimprove codex model list1608565cfeat(hook): add tool.definition hook for plugins to modify tool description and parameters (feat(hook): add tool.definition hook for plugins to modify tool description and parameters anomalyco/opencode#4956)Acceptance Checklist