You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[FEATURE]: Let built-in tools like shell and read be called from Code Mode execute #55087
I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
Built-in tools (shell, read, grep, glob, edit, write, ...) are registered with codemode: false, so tools.shell(...) inside execute fails with Unknown tool 'shell'. #39312 was closed as expected behavior, but the docs do not say why.
This blocks the main use of execute: combining calls in one step. For example, run a CLI that saves a screenshot, then read the image, in one call:
Thanks for the detailed request! In short, you're asking for built-in tools like shell, read and grep to be callable as tools.<name>(...) inside Code Mode execute, opt-in through config or per tool, with nested calls still going through the normal permission checks. That way steps like "run a CLI, then read its output file" fit in one call. You'd also like the reason for the current default documented.
Right now each tool goes either in the top-level tool list or in the Code Mode catalog, never both, and every built-in is set to top-level (codemode: false). That's why tools.shell gives Unknown tool. Changing it needs a change in core, so maintainers will consider it.
YES, I see models trip up on this sometimes, when trying to chain built-in tools alongside MCP tools. The built-in tools should act as though they are codemode: true tools.
Activity
opencode-agent commentedon Oct 13, 2026
Thanks for the detailed request! In short, you're asking for built-in tools like
shell,readandgrepto be callable astools.<name>(...)inside Code Modeexecute, opt-in through config or per tool, with nested calls still going through the normal permission checks. That way steps like "run a CLI, then read its output file" fit in one call. You'd also like the reason for the current default documented.Right now each tool goes either in the top-level tool list or in the Code Mode catalog, never both, and every built-in is set to top-level (
codemode: false). That's whytools.shellgivesUnknown tool. Changing it needs a change in core, so maintainers will consider it.Related issues:
executeexecuteskaldebane commentedon Oct 15, 2026
YES, I see models trip up on this sometimes, when trying to chain built-in tools alongside MCP tools. The built-in tools should act as though they are
codemode: truetools.