Code Mode Extension
The Code Mode extension enables Code Mode, a programmatic approach for interacting with MCP tools.
The Code Mode extension is an MCP server that exposes three meta-tools. When Code Mode is enabled, the LLM writes JavaScript code that goose executes using a Deno-based runtime called Port of Context to discover tools, learn their interfaces, and call them programmatically.
This helps manage context window usage more efficiently when multiple extensions are enabled and when performing workflows with multiple tool calls.
Configuration
This is a built-in platform extension. Platform extensions provide core functionality and are used within goose just like external MCP server extensions.
- goose Desktop
- goose CLI
- Click the button in the top-left to open the sidebar
- Click
Extensionsin the sidebar - Toggle
Code Modeon
- Run the
configurecommand:
goose configure
- Choose to
Toggle Extensions
┌ goose-configure
│
◇ What would you like to configure?
│ Toggle Extensions
│
◆ Enable extensions: (use "space" to toggle and "enter" to submit)
│ ● code_execution
└ Extension settings updated successfully
Example Usage
In this example, we'll ask goose to compile a report that requires multiple tool calls.
goose Prompt
Create a LOG.md file with the current git branch, last 3 commits, and the version from package.json
goose Output
I'll help you create a LOG.md file with the git branch, last 3 commits, and version from package.json. Let me gather all this information in one operation.
Execute Code code: import { shell, text_editor } from "developer" ...
Let me check the package.json path first:
Execute Code code: import { shell, text_editor } from "developer" ...
Perfect! I've created the LOG.md file with:
- ✅ Current git branch
- ✅ Last 3 commits (with hash, message, author, and relative time)
- ✅ Version from ui/desktop/package.json
The file has been saved to the root directory as LOG.md.